Calculadora de la Velocidad en Baudios de una UART (Error, Divisor y Tiempo de Transferencia)
El divisor que hay que cargar para una velocidad en baudios, el error que deja con su reloj (en modo normal y de doble velocidad), los bits de una trama, la velocidad real de datos y el tiempo para enviar un mensaje.
Resultados
La línea discontinua marca el valor que ha escrito.
Qué hace esta herramienta
Una UART obtiene la velocidad en baudios dividiendo el reloj del microcontrolador, por eso no todas las velocidades son exactas: en un AVR, UBRR = f_osc ÷ (16 × baudios) − 1 debe ser un entero, así que 9600 baudios con un reloj de 16 MHz son en realidad 9615 baudios, un 0,16 % más. Los dos extremos se entienden si el error combinado queda en unos pocos por ciento, y una regla práctica es mantener cada uno por debajo del 2 % aproximadamente. Cada byte cuesta además más de 8 tiempos de bit: los bits de inicio y parada y el de paridad opcional suman 10 bits en el formato 8N1 habitual, y 9600 baudios llevan 960 bytes por segundo, no 1200.
Fórmula
UBRR = f_osc ÷ (16 × baudios) − 1 (el mejor de los dos enteros más próximos) · error = real ÷ deseado − 1 · trama = 1 + datos + paridad + parada · tiempo = bytes × trama ÷ baudios
Variables
| Símbolo | Significado | Unidad |
|---|---|---|
ba | Velocidad en baudios deseada | baud |
db | Bits de datos | bit |
pa | Paridad | — |
sb | Bits de parada | — |
nby | Longitud del mensaje | B |
fo | Reloj del microcontrolador | MHz |
ER | Error de la velocidad en baudios con el mejor divisor | % |
UB | Divisor a cargar (UBRR en los AVR) | — |
AB | Velocidad en baudios que realmente obtendrá | baud |
E2 | Error en modo de doble velocidad (U2X) | % |
FR | Bits en el cable por byte | bit |
EF | Parte de la línea que lleva datos | % |
DR | Velocidad de datos | B/s |
TM | Tiempo para enviar el mensaje | ms |
Ejemplo resuelto
- Velocidad en baudios deseada9600 baud
- Bits de datos8 bit
- Paridad0
- Bits de parada1
- Longitud del mensaje100 B
- Reloj del microcontrolador16 MHz
- Error de la velocidad en baudios con el mejor divisor0,16 %
- Divisor a cargar (UBRR en los AVR)103
- Velocidad en baudios que realmente obtendrá9615,4 baud
- Error en modo de doble velocidad (U2X)0,16 %
- Bits en el cable por byte10 bit
- Parte de la línea que lleva datos80,0 %
- Velocidad de datos960,0 B/s
- Tiempo para enviar el mensaje104,17 ms
Limitaciones
- Los rendimientos y consumos varían entre productos. Tome los valores de la ficha técnica del fabricante del producto que va a usar.
- El resultado es una estimación basada solo en los valores introducidos. Las situaciones reales suelen incluir factores que esta calculadora desconoce.