Forum: Mikrocontroller und Digitale Elektronik UART (RS232) klappt nicht


von Peter (Gast)


Angehängte Dateien:

Lesenswert?

Hey Leute!

Ich will mich ein wenig mit µC-Programmierung befassen.. in letzter Zeit 
habe ich mich an UART versucht. Könnt ihr vielleicht mal einen Blick 
über meinen C-Code werfen? Das wäre super. Bin etwas ratlos. Wenn ich µC 
und PC miteinander verbinde -- im HyperTerminal kommt nix an! Liegt's 
eventuell an der Baudrate / Frequenz (bzw. am prozentualen Fehler)? Ich 
verwende den internen 8 MHz Takt beim Atmega8. :(

Danke euch!

von gast (Gast)


Lesenswert?

dass gar nix ankommt klingt zwar komisch, aber bitte schau dir erst 
diesen Artikel an:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART
Da ist ein kurzer Absatz der mit roter, fetter Schrift ("WICHTIGER 
HINWEIS!") beginnt!
"Auf Grund permanent wiederkehrender Nachfrage sei hier..."

von Hefebrot (Gast)


Lesenswert?

Ein UART nimmt man immer folgewndermassen in Betrieb :
-repetitives Senden eines Characters vom Controller zB 0x62 und messen 
mit dem Oszilloskop.
-Senden einses Strings zum Hyperterminal.
-Echo eines Characters, der vom PC kommt.

von Falk B. (falk)


Lesenswert?

@ gast (Gast)

>Da ist ein kurzer Absatz der mit roter, fetter Schrift ("WICHTIGER
>HINWEIS!") beginnt!
>"Auf Grund permanent wiederkehrender Nachfrage sei hier..."

Vielleicht muss er noch grösser sein. Und blinken. Und Sirensound dazu 
abspielen. Oder vieleicht ein Rap-Video? Grandmaster RC-O into the Mike 
Proz aint cool man!!!! Natürlich optisch zielgruppengerecht mit T*****en 
hinterlegt ;-)

Huch, wo bin ich?

MFG
Falk

von Karl H. (kbuchegg)


Lesenswert?

Wenn gar nichts ankommt, dann könnte es auch ein
Hardware Problem sein.
Eine fehlerhafte Baudrate erkennt man meist daran, dass
am Terminal unsinnige Zeichen erscheinen. Wenn aber gar
nichts ankommt, dann würde ich mal die ganze Verkabelung
testen.

Einfacher Test:
Nimm den Prozessor aus dem Sockel. Verbinde im Sockel
den Tx Pin mit dem Rx Pin durch eine Drahtbrücke.
Wenn du jetzt im Hyperterminal Tasten drückst, dann
laufen die durchs Kabel, durch den Pegelwandler (Max232)
zum µC Sockel. Dort dann über deine Drahtbrücke und
ab gehts in die Gegenrichtung zurück zum PC.

Siehst du mit der Drahtbrücke immer noch keine Zeichen,
dann hast du ein Hardwareproblem. Untersuche mal ob
dein Kabel korrekt ist (gekreuzt - nicht gekreuzt)

PS: Im Hyperterminal muss die 'Flusssteuerung' auf 'keine'
stehen.

von Falk B. (falk)


Lesenswert?


von Peter (Gast)


Lesenswert?

So hab den Takt mal auf den externen Quarz gelegt. Kommt leider immer 
noch nix an. Braucht man jetzt ein Nullmodemkabel oder ein "normales" 
Kabel? Laut Tutorial darf's ja KEIN Nullmodemkabel sein. Hatte ich aber 
dran (okay es war Selbstbau, aber sollte trotzdem gehen). Verstehe ich 
aber auch nicht warum das nicht geht. Allerdings tut's ein "normales" 
Kabel auch nicht. Es kommt wirklich rein gar nichts an. Ein Oszi hab ich 
leider auch nicht zur Hand! ;)

>Nimm den Prozessor aus dem Sockel. Verbinde im Sockel
>den Tx Pin mit dem Rx Pin durch eine Drahtbrücke.
Das werd ich glaub ich gleich mal probieren!

Im Quellcode hat wohl auch noch ein
1
#define F_CPU 8000000
gefehlt.

Danke euch allen soweit.

von Peter (Gast)


Lesenswert?

>>Nimm den Prozessor aus dem Sockel. Verbinde im Sockel
>>den Tx Pin mit dem Rx Pin durch eine Drahtbrücke.
>Das werd ich glaub ich gleich mal probieren!

Ja das klappt! Also kann ich den MAX232 als Fehlerquelle schon mal 
ausschließen, richtig? Bleiben eigentlich nur noch Verkabelung und 
Software, oder?

von Karl H. (kbuchegg)


Lesenswert?

Peter wrote:
>>>Nimm den Prozessor aus dem Sockel. Verbinde im Sockel
>>>den Tx Pin mit dem Rx Pin durch eine Drahtbrücke.
>>Das werd ich glaub ich gleich mal probieren!
>
> Ja das klappt! Also kann ich den MAX232 als Fehlerquelle schon mal
> ausschließen, richtig? Bleiben eigentlich nur noch Verkabelung und
> Software, oder?

Wenn das klappt, kannst du auch die Verkabelung ausschliessen.

Aber Vorsicht!
Hast du am PC das sog. lokale Echo abgeschaltet? Nicht dass du
die getippten Zeichen siehst, weil die lokal am PC ge-echot (blödes
Wort) werden.
Gegentest: Du tippst - Zeichen erscheinen. Du tippst weiter und
ziehst das Kabel ab - Zeichen bleiben aus.

Wenn das so ist, dann ist tatsächlich alles in Ordnung.

Wenn das so ist, dann hast du noch einen Fehler im µC.
Die häufigste Ursache ist nach wie vor: Quarz ist zwar am µC drann,
aber der µC arbeitet immer noch mit internem Takt.

Wenn du das ausschliessen kannst: Dann hast du einen Programmfehler.

von Peter (Gast)


Lesenswert?

>Wenn das klappt, kannst du auch die Verkabelung ausschliessen.
Autsch... Ich war wohl grad nicht ganz bei der Sache! :D

>Wenn das so ist, dann ist tatsächlich alles in Ordnung.
Jopp, kein Echo. :)

Danke dir. Werde mich weiter mit dem Problem befassen und ggf. 
berichten.

von Peter (Gast)


Lesenswert?

Okay. Muss an meinem C-Code liegen. Hab das Assembler-Code-Beispiel aus 
der Wiki genommen und das funktioniert.

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.