Forum: Mikrocontroller und Digitale Elektronik Atmega162 Baudrate Problem


von Sebastian (Gast)


Lesenswert?

Hallo.

Mein ATmega162 soll eigentlich bei 9600 Baud Zeichen auf der 
UART-Schnittstelle ausgeben. Beim Hyperterminal muss man jedoch 19200 
Baud einstellen, damit was ankommt.

Der AVR wird mit dem internen Oszillator bei 4MHz betrieben.

Wer hat noch einen Tipp für mich?



Sebastian

von holger (Gast)


Lesenswert?

>Der AVR wird mit dem internen Oszillator bei 4MHz betrieben.

Nimm besser einen Quarz.

>Wer hat noch einen Tipp für mich?

Lies das Datenblatt und stell die Baudrate richtig ein.

von Udo (Gast)


Lesenswert?

die CKDIV8 Fuse gesetzt ? Sollte nicht gesetzt sein.

von Sebastian (Gast)


Lesenswert?

Die Baudrate ist mit ziemlicher Sicherheit richtig eingestellt, da ich 
sowohl den Codegenerator vom Codevision als auch den openavr-Code 
ausprobiert habe und beide den gleichen Fehler erzeugen.

von holger (Gast)


Lesenswert?

>Die Baudrate ist mit ziemlicher Sicherheit richtig eingestellt

Dann läuft dein uC mit 8MHz und nicht mit 4MHz.

von Εrnst B. (ernst)


Lesenswert?

Schau dir mal im dissassemblierten Code an, auf was die 
Baudraten-Register gesetzt werden.
Das mit den Tabellen im Datenblatt vergleichen.
Wenn die tatsächlich stimmen, ist die µC-Frequenz falsch.
Also falsche CLKDIV-Fuse, stark verstelltes OSCAL-Register etc...
Ansonsten=>Baudraten-Quarz nehmen wenns funktionieren soll.

von Sebastian (Gast)


Lesenswert?

Die Fusebits sind das Problem.

von Sebastian (Gast)


Lesenswert?

Der kann nur 8Mhz intern erzeugen. Ergibt dann meine doppelte Baudrate.

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.