Hallo, Ich arbeite mit dem UART eines LPC2387, dabei möchte ich eine Baudrate von 2Mbit/s erreichen. Dies lässt sich nur einstellen mit den Fractional-Registern, da es sich um eine „ungerade“ Baudrate handelt. Der Sender sendet auch mit dieser Baudrate (mit Oszi gemessen). Gesendet wird jede Sekunde ein Byte (Ziffern von 0-9). Allerdings kommen beim Empfänger falsche Werte an und es wird durchgehend ein „framingError“ und eine „error in RX“ erkannt. Sender und Empfänger haben die gleiche UART Konfiguration, die Hardware ist auch dieselbe (auch schon umgedreht). Die Kommunikation funktioniert ohne den fractionaldevider bei 2,55Mbit/s problemlos. Mit fractionaldevider funktioniert die Kommunikation z.B. bei 0.5Mbit/s, nicht aber bei 1Mbit/s. Interessant ist auch was erkannt wird: gesendet empfangen 110000 1100000 110001 1100001 110010 1100010 110011 1100011 110100 1100100 110101 1100101 110110 1100110 110111 1100111 111000 1111000 111001 1111001 Es handelt sich um den UART1, er arbeitet mit einer Frequenz von 36MHz, ich habe allerdings auch schon 72MHz ausprobiert --> gleiches Problem. Meine errechneten Werte für die Register sind: DLM=0, DLL=1, Divaddval=1, Mulval=8 Alle andere Peripherie (außer Timer0 und UART0 sind abgeschaltet). Ich habe schon versucht, das Stopbit von 1 auf 2 zu setzen, hat allerdings nichts geändert. NXP schreibt auf meine Anfrage leider nur, dass es am framing error liegt, aber wie kann ich diesen beheben? Würde es was nützen, wenn ich am Empfänger mit Autobaud arbeite? Ich wäre dankbar für Denkanstöße… Liebe Grüße Florian
Okay, Problem zwar nicht gelöst, aber wenn mal jemand das selbe Problem haben sollte, im Datenblatt gibt es eine sehr kurze Passage: Important: If the fractional divider is active (DIVADDVAL > 0) and DLM = 0, the value of the DLL register must be 3 or greater. (UM23xx Seite 450 of 706)
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.