Forum: Mikrocontroller und Digitale Elektronik Baudrate vs. Bitlänge


von Torsten B. (torty)


Lesenswert?

Guten Morgen

Hier mal wieder eine Frage aus dem Bereich "Das Problem liegt zwischen 
den Ohren des Users"

Ich nutze einen ATMega16 auf einem STK500 und betreibe in dort mit einer 
Frequenz von fosc = 3.6864 MHz.

Ich möchte die USART nutzen und habe in das UBRR einen Wert von 23 
eingetragen, um eine Übertragungsgeschwindigkeit von 9600 Baud 
einzustellen.

Auf einer der zahlreichen Fehlersuchen habe ich mal meinen Oszi an den 
Tx Pin des AVRs angeschlossen und den Mega immer wieder ein 0b10101010 
senden lassen. Erwartungsgemäß konnte ich auf dem Schirm ein 
Rechtecksignal messen, bei dem ein Bit jedoch eine Länge von ca. 370 us 
hatte. Man ließt aber allenthalben, dass ein Bit bei 9600 Baud nur 104 
us lang ist.

Kann mir das jemand erklären ?

Danke
Torsten

von Uwe N. (ulegan)


Lesenswert?

Fusesfalschgesetzt.
Dein Board läuft mit internem Oszillator auf 1MHz.

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


Lesenswert?

> Man ließt aber allenthalben, dass ein Bit bei 9600 Baud nur 104 us
Das kann man sogar ausrechnen: 1/9600 = 104,1666 us

Und der interne Oszillator läuft daher mit
(104/370) * 3,6864 MHz = 1,0378 MHz
Also noch gut innerhalb der Spec ;-)

von Torsten B. (torty)


Lesenswert?

Danke für die schnelle Hilfe, aber ich dachte, dass ich den internen 
Oszillator gegen den Takt vom STK500 ausgetauscht.

Könnt Ihr mir noch schnell sagen, was ich tun muss, damit der Mega vom 
Board getacktet wird ?
hab das System zwar gerade nicht zur Hand, aber ich meine das 
entsprechende Fuse Bit gesetzt zu haben "Ext. Crystal/Resonator High 
Freq.; Start-up time: 16K CK + 64 ms"

Muss ich noch etwas auf dem Board umstecken ?

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.