LPC2148 Baudratengleichung

Ich bin etwas verwirrt über die Baudraten-Berechnungsgleichung von LPC2148

Im Datenblatt steht Gleichung

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Aber in jedem Tutorial, das ich finden konnte

Gleichung ist

Geben Sie hier die Bildbeschreibung ein

Die zweite Gleichung stellt die erforderliche Baudrate ein.

Übersehe ich etwas?

Tutorials, die ich überprüft habe

  1. Link1
  2. Link2
  3. Link3
Ich habe keine Erfahrung mit LPC2148, aber die Gleichungen sind gleich, wenn U0 für Oversampling steht, was normalerweise 16 (oder 8 bei schnelleren Baudraten) ist.
@Rokta Hier steht U0 für UART0, U0DLL & U0DLM sind Geräte-Latch-Register von UART0

Antworten (1)

Das einzige, was Sinn macht, ist, dass die Gleichung im Datenblatt einen Fehler enthält.

Das gleiche Datenblatt sagt:

Die U0DLL- und U0DLM-Register bilden zusammen einen 16-Bit-Divisor, wobei U0DLL die niedrigeren 8 Bits des Divisors enthält und U0DLM die höheren 8 Bits des Divisors enthält

Das deutet darauf hin, dass es 256*DLM+DLLso sein sollte, wie es in Tutorials geschrieben wurde. In den folgenden Beispieltabellen wird es auch insgesamt als 16-Bit behandelt (obere 8 + untere 8).

Beachten Sie, dass die Version des Datenblatts [1] vom April 2012 die korrigierte Gleichung enthält.

[1] https://www.nxp.com/docs/en/user-guide/UM10139.pdf

Ich habe DLM = 1, DLL = 97, MULVAL = 14 & DIVADDVAL = 1 gegeben. Wenn die Gleichung diejenige mit 16 im Nenner wäre, wäre die berechnete Baudrate 7743 und die Gleichung mit 256 im Nenner würde 2478 ergeben. Ich habe den Wert eingecheckt Keil-Debugger, und die Antwort ist 2478. Also ist die Gleichung mit 256 die richtige.
Können Sie mir sagen, wie Sie den Nenner als 256 durch die Informationen von U0DLL & U0DLM erhalten haben
Die oberen 8 Bits bedeuten 1<<8oder 2**8, was 256 ist.