Forum: Mikrocontroller und Digitale Elektronik Serielle Verbindung HR20 (ATMega169) mit PC


von Christian R. (christianra)


Lesenswert?

Hallo,

Nach diversen verzweifelten Versuchen, wende ich mich als absoluten 
Neuling nun an dieses Forum, mit der bitte um Hilfe/Denkanstöße:

Ich versuche eine serielle Kommunikation mit meinem HR20 Thermostat 
aufzubauen, gemäß der Anleitung:
http://wiki.carluccio.de/images/e/e1/Hr20-analyse.pdf
Mein Ziel ist es erstmal lediglich den Versionsstring beim Einschalten 
des Geräts in der Terminal-Emulation zu bekommen.
Jedoch gelingt mir das leider weder mit Windows (keinerlei Anzeige) noch 
mit Linux.

Unter Linux kann ich immerhin eine Ausgabe erkennen, sie entspricht 
jedoch nicht dem, was ich erwarte (HR20 SW Version 204 vom 08. Mar. 2006 
12:00 HW Version 2):
1
stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb -ixon -icanon
2
3
root@testpc:~# cat /dev/ttyS1
4
ZXXXXX+X
5
ZXXXXXXZXXXXX+XZXXXXXX+ZXXXXXX+ZXXXX+X
(Das X entspricht hierbei irgendeinem beliebigen Sonderzeichen)

Im Prinzip besteht bei mir die Verbindung zw. PC und HR20 (also dem 
ATMega169) aus 3 Leitungen:
1
PC:                    HR20:
2
GND <-------------->   GND
3
TXD <-------------->   RXD
4
RXD <-------------->   TXD

Um die High/Low Pegal zu erreichen habe ich den HR20 statt mit den 2 x 
1.5V Batterien mit einem 5V Netzteil versorgt. Meines erachtens sollte 
das kein Problem sein.
Liege ich da falsch?

Grüße
Christian

von Alexander L. (linuxleuser)


Lesenswert?

Ja, da liegst du falsch.
Nach dem RS232 Standard wird ein Pegel von +/- 10V benötigt.
schau dir mal des Datenblatt zum MAX232 IC an. Genau sowas brauchst du 
damit das was du vor hast gelingen kann. (Gibts auch für 3,3V...)

von Alexander L. (linuxleuser)


Lesenswert?

Hab mir gerade die Spezifikation für V.24 bzw RS232C nochmal genauer 
angeschaut:
logisch 1: -3V bis -15V
logisch 0: +3V bis +15V

üblich sind die erwähnten +/- 10V

von katastrophenheinz (Gast)


Lesenswert?

lt. carluccio beinhaltet die Hr20-Hardware auch einen Spannungsregler,
d.h. 5V vorn nutzen gar nichts.

Wie mein Vorredner bereits sagte, weder 5V noch 3V3 ist 
RS232-kompatibel.
Probiers mal hiermit:
https://www.sparkfun.com/products/9873

von Alexander L. (linuxleuser)


Lesenswert?

Ja FTDI ist natürlich auch ne Möglichkeit, wenn USB in Frage kommt.

von Christian R. (christianra)


Lesenswert?

Vielen Dank für den Hinweis.
Ich muß jetzt trotzdem nochmal nachfragen:

Ich versteh das nicht ganz:
-Laut Wikipedia http://en.wikipedia.org/wiki/RS-232
ist 5 Volt föllig ausreichend:
1
Valid signals are either in the range of +3 to +15 volts or the range -3 to -15 volts; the range between -3 to +3 volts is not a valid RS-232 level
-Nach meinen Messungen kommen durchaus 5V an auch auf der Datenleitung 
an.
-Unter Linux sehe ich ja auch Daten ankommen. Wenn der Pegel nicht 
ausreicht, dürften doch hier keine Daten ankommen.
Ich hatte jetzt eher vermutet, dass es eine Einstellung ist (Datenbits, 
Stopbits, Baudrate usw.) weshalb "Müll" ankommt.

Grüße
Christian

von katastrophenheinz (Gast)


Lesenswert?

ein gültiger ein gültiger Signalpegel ist > +3V, der andere gültige 
Signalpegel ist < -3V. Wo sollen die negativen Volts herkommen?

von Alexander L. (linuxleuser)


Lesenswert?

Also ich kenn "HR20" nicht.
Aber wenn ich mal davon ausgehe dass bei dem Ding nur die RX und TX Pins 
des ATMega herausgeführt sind, dann kommen da logisch 0 = 0V und logisch 
1 = 5V raus.

Aber wie du selbst schon festgestellt hast, sind 0V kein gültiges RS232 
Signal.

Du MUSST negative Spannungen von mehr als -3V hinbekommen, um eine 1 
darzustellen.

Aber: für den Fall dass du einen USB Adapter benutzt, da sind meist die 
erwähnten FTDI Chips drin, wenn du also das Ding zu sonst nichts 
brauchst (Kostet ja nur 2..3 €), dann zerleg es einfach und mach die 
Pegelwandler raus. Der FTDI benutzt am Eingang nämlich wieder TTL Pegel.

von Lötlackl *. (pappnase) Benutzerseite


Lesenswert?

Alexander Leuser schrieb:
> logisch 1: -3V bis -15V
> logisch 0: +3V bis +15V

Ich tippe auf invertierte Pegel.
Entweder Du gönnst Dir einen MAX232 oder 2 Inverter.
PC-Schnittstellen kommen zumeist auch mit 0V->logisch 1 zurecht.

von Christian R. (christianra)


Lesenswert?

Beste Dank, habs kapiert und komme jetzt weiter :-)

Grüße
Christian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.