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
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
Hi Genau das ist damit gemeint. Ein Zyklus dauert bei 8 MHz 125ns. Matthias
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 ?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.