UART-Stopbit-Baud-Timing-Fehler

Auf dem PIC-Mikrocontroller UART wurde die Baudrate auf 38400 eingestellt (keine Parität, 8 Datenbits).

*************UART 1 configuration********* 
IFS0bits.U1RXIF = 0;

IFS0bits.U1TXIF = 0; 

IEC0bits.U1RXIE = 1; 

IEC0bits.U1TXIE = 0; 

U1MODEvalue = 0b1000000000001000; 

U1STAvalue = 0b0000010000000000; 

U1BRG = 103; 

U1MODE = U1MODEvalue; 

U1STA = U1STAvalue;

An uC angeschlossenes Gerät funktioniert einwandfrei; Sie haben eine gesunde Kommunikation. Aber ich habe die Baudzeit meiner Daten gemessen und festgestellt, dass das Startbit und das Datenbit 26 us anzeigen, was gemäß 1000000/Baudrate uns ok ist, aber das Stoppbit beträgt nur etwa 20 us, das sieht für mich falsch aus sollte auch die 26us lesen. Also versuche ich es mit unterschiedlicher Baudrate. Habe aber das gleiche Problem (siehe Tabelle unten).

4800Buad Rate, Stoppbitzeit = 160us (aber es sollte 208us sein)

9600Buad Rate, Stoppbitzeit =72us (aber es sollte 104us sein)

38400Buad-Rate, Stoppbitzeit = 20 us (aber es sollte 26 us sein)

115200Buad-Rate, Stoppbitzeit = 7,2 us (aber es sollte 8,8 us sein)

Ich habe das Support-Team gefragt, und sie sagen, dass Ihr BRGH-Wert auf 1 gesetzt ist, versuchen Sie, ihn auf 0 zu ändern. Also habe ich BRGH = 0 geändert und dieses Problem ist gelöst.

Bei BRGH = 0 wird der Stoppbitfehler entfernt und das Stoppbit misst 26 uS. Das müssen wir noch mit anderen Baudraten testen.

F1) Warum macht BRGH nur einen Unterschied in der Stoppbit-Baudzeit? Wir verwenden 8 MHz Quarz.

F2) Das Datenblatt sagt BRGH=1 für Hochgeschwindigkeitsfreigabe, was bedeutet es hier mit Hochgeschwindigkeit, ist es Baudrate, wenn ja, welche Baudrate gilt als Hochgeschwindigkeit?

F4) Wann BRGH=0 oder wann BRGH=1 zu verwenden ist, wurde gemäß dem Test ein Stoppbit-Baudfehler bei jeder Baudrate gemäß der oben angegebenen Testergebnistabelle beobachtet.

Link von uC

http://ww1.microchip.com/downloads/en/DeviceDoc/en026583.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/39747F.pdf

Antworten (1)

P 146-149 definiert warum und wie

Suchen Sie in diesem Fall immer nach BRGH im Datenblatt

Wo genau beschreibt das Datenblatt die nicht standardmäßige Länge des Stoppbits?
Wo ist Genauigkeitsauswirkungen für Takt, Datenrate mit Formel angibt, ist das Ergebnis impliziert. Befolgen Sie also diese Anweisungen. Wenn Sie die Auswirkungen diskutieren möchten, ist dies ein separates Thema. Wenn Sie eine langsame Uhr laufen lassen, ist der Phasenfehler weniger kritisch und daher ist ein Runt-Stop-Bit > 50 % in Ordnung. aber das ist meine Theorie.
Aber wenn ich Sie wäre, würde ich eine ungerade Parität hinzufügen. Der Grund für weniger kritische niedrige Geschwindigkeiten ist normalerweise ein perfektes Augenmuster. also sind 47 us des abgeschnittenen clk-Phasenspielraums bei 4800 Bd vernachlässigbar, dann ist er bei höheren Geschwindigkeiten für ein Ende des Stoppbits geringer. Dieses Register beeinflusst die Bruchteilerverhältnisse, glaube ich, oder den Countdown für das Stop-Sub-Bit-Timing. Dies dient dazu, verschiedene Clks für dieselbe Baudrate gemäß der im Datenblatt angegebenen Formel unterzubringen. Diese können die uC uW Dissipation geringfügig beeinflussen.
@pericynthion hast du mich verstanden? ( Wer war dieser Idiot (-1) Dave?)