Calculadora de baudios UART (divisor y error)
Calcula el divisor de baudios de una UART según el reloj del microcontrolador, la velocidad real, el % de error, el valor UBRR de AVR, los tiempos de bit y de trama y el error por velocidad.
Cómo funciona
divisor = redondeo(f_reloj ÷ (sobremuestreo × baudios)) · baudios reales = f_reloj ÷ (sobremuestreo × divisor) · error % = (real ÷ deseado − 1) × 100 · UBRR de AVR = divisor − 1 · tiempo de bit = 1 ÷ baudios · tiempo de trama = bits por trama ÷ baudios
Una UART obtiene su reloj de bit dividiendo el reloj del sistema por un número entero, así que la mayoría de las velocidades salen un poco desviadas. Ambos extremos muestrean cada bit cerca de su centro y, a lo largo de una trama de 10 bits, el error se acumula; Microchip recomienda mantenerlo dentro de ±2% para tramas de 8 bits, y el error combinado de ambos dispositivos debe quedar por debajo de un 4–5%. Los cristales «de baudios» como 11.0592 MHz o 14.7456 MHz dividen exactamente todas las velocidades estándar.
Ejemplo resuelto
Un ATmega328P a 16 MHz con sobremuestreo ×16 y objetivo de 115,200 Bd: 16,000,000 ÷ (16 × 115,200) = 8.68, redondeado a un divisor de 9 (UBRR = 8). La velocidad real es 16,000,000 ÷ 144 = 111,111 Bd, un error de -3.55%: al límite. Con ×8 (U2X) el divisor es 17 y el error +2.12%; 9,600 Bd con ×16 solo se desvía +0.16%.
Fuentes: Microchip — ATmega328P datasheet, USART baud rate examples · Analog Devices — Determining Clock Accuracy Requirements for UART Communications
Preguntas frecuentes
¿Qué error de baudios es aceptable en una UART?
Procura ±2% o menos en cada extremo. Hasta un ±4.5% total puede funcionar con tramas 8N1 si el otro dispositivo es preciso, pero el ruido y las tramas más largas reducen el margen.
¿Por qué 115200 baudios no funciona bien a 16 MHz?
El divisor entero más cercano da 111,111 Bd, un 3.5% más lento. Usa el modo de doble velocidad (U2X, +2.1%), una velocidad como 76,800 o 250,000 (0% de error a 16 MHz) o un cristal de baudios.
¿Qué diferencia hay entre baudios y bits por segundo?
Los baudios son símbolos por segundo. En una UART cada símbolo es un bit, así que 115,200 Bd mueven 115,200 bits por segundo contando los bits de inicio, paridad y parada: unos 11,520 bytes de datos por segundo con 8N1.
¿Qué es UBRR?
Es el registro de velocidad de la USART en los microcontroladores AVR como el ATmega328P (Arduino Uno). Contiene divisor − 1, donde el divisor es el reloj dividido entre 16 (u 8 en doble velocidad) y entre los baudios.
Calculadoras relacionadas
Esta calculadora tiene fines informativos. Verifica los resultados importantes antes de tomar decisiones.