Forum: Mikrocontroller und Digitale Elektronik Baudrate, Datenframe


von Peter (Gast)


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

von Matthias (Gast)


Lesenswert?

Hi

Fusebits für den externen Quarz richtig gesetzt?


Matthias

von Peter (Gast)


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

von Matthias (Gast)


Lesenswert?

Hi

Genau das ist damit gemeint. Ein Zyklus dauert bei 8 MHz 125ns.

Matthias

von Peter (Gast)


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 ?

von Matthias (Gast)


Lesenswert?

Hi

wie wärs wenn du das einfach mal im Datenblatt nachschaust?

High-Frequ. beginnt IIRC bei 3MHz.

SUT sind die Fuses für die Start-Up-Time.
16K sind 16*10^3=16000

Matthias

von Peter (Gast)


Lesenswert?

Na gut hast ja recht aber trotzdem löst das mein Problem noch nicht...

von Peter (Gast)


Lesenswert?

Weiß keiner Rat ??
DATENFRAME bzw. BAUDRATE ???

von Uwe (Gast)


Lesenswert?

Hi!
UBRR= 51 entspricht 2400 Baud bei 2MHz. Irgendwas stimmt also mit
deinem Takt nicht. Suche doch mal richtig, ist bestimmt ein
Schusselfehler oder so.

MFG Uwe

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.