Jeśli jesteś w granicach 1%, powinieneś być OK.
Załóżmy, że Twój UART używa na przykład zegara nadpróbkowania 16x, na przykład możesz ustawić go na 1 843 200 Hz na 16x nadpróbkę 115 200 bps. (takie nadpróbkowanie jest dość powszechne) Pozwala to UART odliczyć 8 przetaktowań od opadającej krawędzi bitu początkowego, dzięki czemu może zlokalizować środek komórek bitowych z dokładnością do +/- jednego okresu przetaktowania, po który odlicza 16 okresów przetaktowania, aby określić, kiedy próbkować dane.
Jeśli założymy, że może uderzyć w środek bitu początkowego, to aby nadal próbkować dane szeregowe w prawidłowych komórkach bitowych przez 8 bitów danych, częstotliwość zegara musi pozostać pomiędzy (8-0,5) / 8 a (8 + 0,5) ) / 8 lub +/- 6,25% zamierzonej przepływności. Wyższe podkręcanie zbliża się do idealnego stanu uderzenia w środek bitu początkowego, ale 8x lub 16x jest zwykle wystarczająco blisko, aby założyć, że 5% niedopasowania zadziała.
Nie można jednak liczyć na to, że druga strona będzie idealnie pasować do częstotliwości. Jeśli podłączysz urządzenie, które jest 4% szybkie do urządzenia, które jest 4% wolne, będziesz mieć problem. Wystąpił co najmniej jeden przypadek, w którym komputer działał trochę wolniej, a urządzenie trochę szybko, a oba mogły komunikować się tylko nieznacznie, chociaż to samo urządzenie działało dobrze z innymi komputerami, a komputer działał z innymi urządzenia. (O-scoped te przy około 112 kb / s i 119 kb / s) Z tego powodu warto starać się jak najbliżej osiągnąć częstotliwość nominalną. Nigdy nie widziałem, aby coś w granicach 2% wartości nominalnej miało problem.
Zazwyczaj stosuje się częstotliwość taktowania nadrzędnego, która zapewnia całkowitą wielokrotność zamierzonej częstotliwości nadmiernego próbkowania UART razy szybkość transmisji. Na przykład, jeśli chcesz, aby procesor działał z częstotliwością około 8 MHz, możesz użyć oscylatora 7,3728 MHz, który można podzielić przez 4, aby uzyskać 1,8432 MHz, czyli dokładnie 16 razy 115200.