LPC23xx UART fractional devider framing error

Gast #2065445
Lesenswert?
• ▲
▼
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
Gast #2068688
Lesenswert?
• ▲
▼
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)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.