Nếu bạn ở trong vòng 1%, bạn sẽ ổn thôi.
Giả sử UART của bạn sử dụng đồng hồ oversampling 16x, chẳng hạn, bạn có thể đặt nó ở mức 1.843.200 Hz đến 16x overample 115.200 bps. (quá khổ như thế này là khá phổ biến) Điều này cho phép UART đếm được 8 đồng hồ quá mức từ cạnh rơi của bit start, do đó nó có thể xác định vị trí trung tâm của các ô bit trong khoảng +/- một khoảng thời gian của đồng hồ, sau mà nó đếm hết 16 chu kỳ của đồng hồ để xác định thời điểm lấy mẫu dữ liệu.
Nếu bạn cho rằng nó có thể chạm vào tâm của bit start, thì để giữ lấy mẫu dữ liệu nối tiếp trong các ô bit chính xác trên 8 bit dữ liệu, tần số xung nhịp phải nằm trong khoảng (8-0,5) / 8 và (8 + 0,5 ) / 8 hoặc +/- 6,25% tốc độ bit dự định. Việc ép xung cao hơn sẽ tiến gần hơn đến điều kiện lý tưởng là chạm vào tâm của bit start, nhưng 8x hoặc 16x thường đủ gần để bạn có thể giả định rằng 5% không khớp sẽ hoạt động.
Tuy nhiên, bạn không thể tin vào mặt khác là hoàn hảo về tần suất. Nếu bạn kết nối thiết bị nhanh 4% với thiết bị chậm 4%, bạn sẽ gặp vấn đề. Tôi đã gặp phải ít nhất một trường hợp là PC chạy chậm một chút và thiết bị hơi nhanh và hai thiết bị chỉ có thể giao tiếp với nhau, mặc dù cùng một thiết bị vẫn ổn với các PC khác và PC cũng ổn với các PC khác thiết bị. (Phạm vi O trong khoảng 112kbps và 119kbps) Vì lý do đó, thật tốt khi cố gắng đạt tần số danh nghĩa càng gần càng tốt. Tôi chưa bao giờ thấy bất cứ điều gì trong vòng 2% danh nghĩa có vấn đề.
Điều thông thường cần làm là sử dụng tốc độ xung nhịp chính cung cấp bội số toàn bộ của tỷ lệ lấy mẫu vượt quá UART dự định nhân với tốc độ truyền. Ví dụ: nếu bạn muốn CPU chạy ở tốc độ khoảng 8 MHz, bạn có thể sử dụng bộ dao động 7,3728 MHz, có thể chia cho 4 để có được 1,8432 MHz, tức là gấp 16 lần 115200.