Wenn Sie innerhalb von 1% sind, sollten Sie in Ordnung sein.
Angenommen, Ihr UART verwendet einen 16-fachen Oversampling-Takt. Sie können ihn beispielsweise auf 1.843.200 Hz und ein 16-faches Oversample von 115.200 Bit / s einstellen. (Überabtastung wie diese ist ziemlich häufig.) Dadurch zählt der UART 8 Übertakte von der fallenden Flanke des Startbits ab, sodass er die Mitte der Bitzellen innerhalb von +/- einer Periode nach dem Übertakt lokalisieren kann Dabei werden 16 Perioden der Übertaktung abgezählt, um zu bestimmen, wann Daten abgetastet werden sollen.
Wenn Sie davon ausgehen, dass es die Mitte des Startbits treffen kann, muss die Taktfrequenz zwischen (8-0,5) / 8 und (8 + 0,5) liegen, damit die seriellen Daten weiterhin in den richtigen Bitzellen über 8 Datenbits abgetastet werden ) / 8 oder +/- 6,25% der beabsichtigten Bitrate. Ein höheres Übertakten nähert sich der idealen Bedingung, die Mitte des Startbits zu treffen, aber 8x oder 16x sind normalerweise nahe genug, dass Sie davon ausgehen können, dass eine 5% ige Fehlanpassung funktioniert.
Sie können sich jedoch nicht darauf verlassen, dass die Frequenz auf der anderen Seite perfekt ist. Wenn Sie ein Gerät, das 4% schnell ist, mit einem Gerät verbinden, das 4% langsam ist, besteht ein Problem. Ich bin auf mindestens einen Fall gestoßen, in dem ein PC etwas langsam und ein Gerät etwas schnell lief und die beiden nur am Rande miteinander kommunizieren konnten, obwohl dasselbe Gerät für andere PCs in Ordnung war und der PC für andere in Ordnung war Geräte. (O-Scoped diese bei ca. 112kbps und 119kbps) Aus diesem Grund ist es gut zu versuchen, die Nennfrequenz so genau wie möglich zu treffen. Ich habe noch nie gesehen, dass etwas innerhalb von 2% der Nennwerte ein Problem hat.
Üblicherweise wird eine Haupttaktrate verwendet, die ein ganzzahliges Vielfaches der beabsichtigten UART-Überabtastrate multipliziert mit der Baudrate liefert. Wenn Sie beispielsweise eine CPU mit etwa 8 MHz benötigen, können Sie einen Oszillator mit 7,3728 MHz verwenden, der durch 4 geteilt werden kann, um 1,8432 MHz zu erhalten, was genau 16 mal 115200 entspricht.