Forum: Mikrocontroller und Digitale Elektronik USART Systematische Fehlersuche?


von Torsten O. (Gast)


Lesenswert?

G' Morgen, ich bin noch einer der versucht Daten eines Controllers an 
den PC bzw. Laptop via RS232 zu senden.

Ich habe mir dazu die Schaltung aus dem Tutorial aufgebaut und den 
Quelltext an meinen ATMega48 angepasst. Meine Einstellungen sind : 
8MHz, 9600, 8 Datenbits, 1 Stopbit, keine Parität.

Ich habe eine reale Baudrate von 9603 ermitteln, insofern sollte es da 
keine Schwierigkeiten geben. So, nun mal zu meinem Problem. Ich habe das 
Gefühl das rein gar nichts am Laptop ankommt. Ich habe innerhalb von 
drei bis vier Stunden testen lediglich mal zwei Zeichen empfangen, ich 
denke aber eher, dass das Zufall war - wo immer die auch herkommen 
mögen.

Gibt es denn eine Möglichkeit das komplette System Stück für Stück zu 
auf Fehler zu prüfen? Denn der (vielleicht sogar die) Fehler können ja 
vielfältig und überall stecken, in der Hardware, in der Software oder 
sogar am Laptop selber (wobei die Verbindungseinstellungen stimmen 
sollten).

Kann da irgendjemand Tipps geben? Vielen Dank im voraus.


lg Torsten

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Gibt es denn eine Möglichkeit das komplette System Stück für Stück zu
> auf Fehler zu prüfen?
Empfangsseite uC:
Erst mal die Hardware-Ebene auf Funktion überprüfen. Mit dem Oszilloskop 
am RX-Pin kontrollieren, ob auch tatsächlich Zeichen mit den 
eingestllten Parametern ankommen.
Dann das empfangene Zeichen auf einem 8-bit-Port (am besten mit LEDs) 
ausgeben. Passt das Bitmuster?

Sendeseite uC:
Immer das selbe Zeichen mit einer Pause dazwischen ausgeben. Mit einem 
Oszilloskop am TX-Pin messen, ob es tatsächlich mit den eingestellten 
Parametern abgeschickt wird.
Den Empfang mit einem vertrauenserweckenden Programm (nicht Hyperterm, 
besser HTERM oder OCConsole) am PC kontrollieren.

Wenn das klappt:
Mit dem Terminalprogramm ein Zeichen versenden, dieses mit dem uC 
empfangen und gleich wieder absenden. Ohne lokales Echo muß am PC jetzt 
jedes eingetippte Zeichen im Terminal erscheinen.

von Felix N. (time2ride)


Lesenswert?

Hi,

teste doch erst mal die Hardware Schritt für Schritt. Nimm ein 
TerminalProgramm (HTerm) und verbinde erst mal direkt an deinem 
USB-RS232 Wandler (wenn vorhanden) sonst direkt an der RS232 
Schnittstelle des PC den RX und TX Pin (Pinbelegung: z.B. Wikipedia: 
RS232) und sende ein paar Zeichen. Wenn das geht, mache das gleiche 
hinter deinem RS323-TTL Pegelwandler (meist MAX232), wenn das auch geht, 
weist du zumindest dass deine Hardware geht.
Wenn dann noch Fehler auftreten liegt es an der SW.

von Oliver (Gast)


Lesenswert?

>...Quelltext an meinen ATMega48 angepasst

Und der ist garantiert fehlerfrei? Zeig doch mal. Und wie genau sieht 
deine Schaltung aus? Spannungsversorgung am Max232 nicht vergessen?

Ansonsten, wie die Vorredner schon sagten, messen. Wenn du kein Oszi 
hast, tut es auf der 5V-Seite auch die Soundkarte vom PC mit ein paar 
Vorwiderständen.

Oliver

von Falk B. (falk)


Lesenswert?


von Torsten O. (Gast)


Lesenswert?

Danke für die vielen Tipps. Ich habe jetzt mal laut Checkliste die 
beiden Leitungen Tout und Rin verbunden und die Hardware mit einem 
Terminalprogramm getestet. Das "Test" was ich sende kommt auch als 
"Test" wieder an - Schlussfolgerung :  Hardware okay würde ich sagen.

Ich glaube ich schaue mir mal die Sache mit der externen Taktung an, von 
wegen stabil und instabil.


lg Torsten

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.