Baudrate, Datenframe

Gast #49461
Lesenswert?

Hallo zusammen,
wer weiß an was für Stellen man drehen muss um die richtige
Baudrate meines UART einzustellen?
Ich arbeite mit dem ATmega32 MC und habe folgendes Problem:

Auf meinem Board hab ich einen Quarz mit 8Mhz (+ 2 Kondensatoren)
angeschlossen.
In meinem Programm hab ich die Baudrate (9600 baud) eingestellt, siehe
nachfolgendem Sourcecode:

ldi mp,0x33;entspr. dez. 51 -> bei 8Mhz clk 9600baud
out UBRRL,mp
ldi mp,0x00
out UBRRH,mp

Jetzt müsste ich doch eine Baudrate von 9600baud haben oder?

An meinen Empfangsprogramm für meine serielle Schnittstelle kann
ich die Empfangsbaudrate einstellen, stelle ich sie auf 9600baud
ein, kommt nur Quatsch raus, er synchronisiert also nicht richtig.
Stell ich hingegen die Baudrate von 2600baud ein wird mein von MC
gesendetes Datenbyte einwandfrei gelesen.

Wo liegt mein Fehler ? Ich hab doch eine Clk von 8Mhz oder ?
Oder wird die Quarzfrequenz nochmal runtergeteilt?

Ich arbeite im asynchronen Übertragungsprotokoll,(Defaultwert 1 Stopbit
bereits eingestellt)
Aber wie sieht gesamter Datenframe aus ?


Wer weiß hier weiter bin jeder Hilfestellung dankbar

Viele Grüße
Peter
Gast #49463
Lesenswert?

Ah, daran könnte es liegen

Kannst du mit sagen was mit der Start up time z.B
18 CK +4ms (CKSEL=0111 SUT=01) gemeint ist ?
Sorry für die dumme FRage arbeite aber erst seit kurzem mit der UART..
Meint man damit die Zeit die vergeht nach dem Reset also 18Zyklen +4ms
bis dann was geschieht ?

1 Zyklus dauert doch 1/8MHz oder?

Danke für Deine Hilfe
Gast #49465
Lesenswert?

Bei mir ist folgendes Eingestellt nach der autom. initialisieren des
Devices:
Ext.Crystal/Resonator High Frequ.;Start-up time:16K CK+64ms (CKSEL=1111
SUT=11)

Was heist das, was ist eine "hohe" Freq. was sind 16K.. bzw. SUT=11 ?

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