AVR USART 1,8 x langsamer :-(

#1395768
Lesenswert?

Hallo zusammen,
am STK600 laufen meine AVRs (getestet habe ich MEGA16 sowie 2560) über 
USART mit ca. 5200 b/s anstatt mit den voreingestellten 9600 b/s :-(

Die Baudrate ist in UBRRH/L richtig gesetzt (laut Datenblatt sowie nach 
den zahlreichen Beispielen im Netz). Da ich unter Eclipse mit GCC 
programmiere, wird die FOSC in Projekteingeschaften eingestellt und 
nicht im Code. Dort habe ich sie auf 1843200 Hz gesetzt.

Geflasht wird mit AVRStudio, wo der externe Oszillator auf 1843200 Hz 
eingestellt wird und die uP Fuse auf irgendein ExtClock gesetzt wird. Am 
STK600 ist der CLK-Umschalter auch auf ExtClock gestellt.

Das Programm soll nur das empfangene Zeichen zurück ans Hyperterminal 
über COM1 schicken. Der PC/Hyperterminal ist auf 9600 8N1 eingestellt 
und laut Oszi sind die vom PC versandten Daten OK. ABER, die Daten, die 
der Mikroprozessor verschickt, laufen nur mit ca. 5200 b/s. Der Faktor 
ist hier genau 1,8..., was mich vermuten lässt, dass der uP denkt, mit 
1,8432 MHz zu laufen, läuft aber nur mit 1,0 MHz. Wo kann ich es 
nachprüfen?

Die Daten, die der uP empfängt, entsprechen den versandten auch nicht 
immer richtig, da es zur fehlerhaften Erkennung kommt, vermutlich durch 
die falsche USART Frequenz.

Wenn ich unter Eclipse schreibe
"#DEFINE FOSC 1843200", bekomme ich ein Warning, dass die Konstante 
schonmal definiert wurde, also es wird wohl doch das übernommen, was man 
in den Project Properties setzt.

Bitte um eure Troubleshooting Tipps
Karel

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren