Skip to content
RFrftools.io
Comms

Calculadora de Velocidad de Baudios UART

Calcula el divisor de baudios, velocidad real y error de baudios para interfaces UART/USART.

Loading calculator...

Fórmula

BRR=fclk16×B,Tbit=1B,Nframe=1+D+P+SBRR = \frac{f_{clk}}{16 \times B}, \quad T_{bit} = \frac{1}{B}, \quad N_{frame} = 1 + D + P + S

Referencia: STM32 Reference Manual RM0008 §27.3.4; ST AN2908

BVelocidad en baudios objetivo (bps)
f_{clk}Frecuencia de reloj periférico de la MCU (Hz)
BRRDivisor de registro de velocidad en baudios (entero)
T_{bit}Duración de un bit (s)
N_{frame}Total de bits por cuadro UART (bits)
DBits de datos (bits)
PBits de paridad (0 o 1) (bits)
SBits de parada (1 o 2) (bits)

Cómo Funciona

Esta calculadora determina los valores de los divisores de velocidad en baudios UART y los errores de temporización para una comunicación en serie confiable. Los ingenieros de sistemas integrados, los desarrolladores de IoT y los diseñadores de hardware la utilizan para configurar las UART de los microcontroladores dentro de la tolerancia de reloj del 2 al 3% requerida por la mayoría de los receptores. Según el estándar UART (derivado del RS-232/EIA-232), cada marco contiene un bit de inicio, de 5 a 9 bits de datos, una paridad opcional y de 1 a 2 bits de parada. Una MCU de 16 MHz dirigida a 115200 baudios produce un error del 0,16% con BRR=8 (sobremuestreo 16x), mientras que una MCU de 9600 baudios produce un error del 0,08% con BRR=104. Los estudios muestran que los errores de velocidad en baudios superiores al 3,5% provocan errores de encuadre en bytes en 1 de cada 10 fotogramas. Las velocidades estándar (9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 baudios) se definen para minimizar los errores de redondeo de los divisores en las frecuencias cristalinas comunes (8, 12, 16 y 20 MHz). El período de bits a 115200 baudios es de 8,68 microsegundos, lo que requiere una precisión de temporización de hasta 300 nanosegundos por bit para una recepción fiable de fotogramas de 10 bits.

Ejemplo Resuelto

El diseño de una ECU automotriz requiere una comunicación UART a 115200 baudios utilizando un reloj de sistema de 20 MHz con un sobremuestreo de 16x. Siguiendo la fórmula del divisor de las implementaciones estándar de UART: BRR = f_clk/ (16 x baudios) = 20 000 000/ (16 x 115200) = 10,85. Si se redondea a BRR=11, se obtiene un baudio real = 20.000.000/ (16 x 11) = 113636 baudios. Error = |115200 - 113636|/115200 x 100 = 1,36%, lo que corresponde al máximo del 2% especificado en la mayoría de las hojas de datos de los receptores UART. Estructura del marco: 1 inicio + 8 datos + 1 parada = 10 bits en total, lo que produce un rendimiento de 11.364 bytes/segundo. A modo de comparación, con un sobremuestreo de 8 veces (BRR=22) se obtienen 113636 baudios con un error idéntico del 1,36%, pero con una inmunidad al ruido reducida.

Consejos Prácticos

  • Según la nota de aplicación AN4908 de ST Microelectronics, utilice BRR fraccional cuando esté disponible para lograr un error de < 0,5% a cualquier velocidad de baudios estándar
  • Para una lógica de 3,3 V sobre cables de más de 2 metros, limite la velocidad en baudios a 115200 para mantener un margen de ruido de 400 mV según las especificaciones RS-232
  • Verifique la temporización con un osciloscopio: mida 10 bits consecutivos y confirme la duración total dentro del 2% de lo esperado (86,8 us a 115200 baudios)

Errores Comunes

  • Uso de un cristal con una tolerancia de >50 ppm, lo que añade un error del 0,005% a 25 °C, pero puede superar el 2% de error combinado a temperaturas extremas (de -40 °C a +85 °C)
  • Seleccionar velocidades en baudios no estándar, como 100 000 baudios, lo que produce un error del 4,17% en los sistemas de 16 MHz frente al 0,16% de los 115200 baudios
  • Ignorar que los generadores de velocidad fraccionaria en baudios (disponibles en STM32, LPC, etc.) reducen el error del 1,36% a menos del 0,1% a 115200 baudios

Preguntas Frecuentes

Según las encuestas del sector, el 8-N-1 (8 bits de datos, sin paridad, 1 bit de parada) se utiliza en el 90% de las aplicaciones integradas. Esto produce una eficiencia del 80% (8 bits de datos por cada 10 bits en total) y es el predeterminado en Arduino, Raspberry Pi y la mayoría de los marcos de microcontroladores.
La paridad añade 1 bit por cuadro (lo que reduce la eficiencia del 80% al 72,7% para el 8-N-1 frente al 8-E-1) y detecta errores de un solo bit con una fiabilidad del 100%, pero no puede detectar errores de 2 bits. Según la norma IEC 61162, los protocolos NMEA marinos exigen una paridad uniforme a 4800 baudios.
Predominan tres factores: la tolerancia de los cristales (normalmente de 20 a 100 ppm, lo que añade un error del 0,002 al 0,01%), el redondeo de los divisores enteros (del 0 al 3% según la relación reloj/baudios) y la deriva de temperatura (los resonadores cerámicos oscilan un 0,5% entre -40 °C y +85 °C frente al 0,003% de los cristales).
Sí, pero el error aumenta considerablemente. Una velocidad de 250 000 baudios en 16 MHz produce un error del 0% (divisor exacto), mientras que 100 000 baudios producen un error del 6,25% (BRR = 10 arroja 100 000, pero ambos extremos deben coincidir). Los puentes USB-UART, como el FTDI FT232R, admiten cualquier velocidad de 183 a 3 000 000 baudios.
Los transceptores UART estándar admiten hasta 1 Mbaud en trazas de PCB de <10 cm. El FTDI FT232H alcanza los 12 Mbaud. Más allá de los 3 Mbaud, utilice una señalización diferencial (el RS-485 admite 10 Mbaud a lo largo de 15 metros según el TIA-485-A).

Shop Components

As an Amazon Associate we earn from qualifying purchases.

USB-UART Adapter

USB to serial adapter for protocol debugging and flashing

USB Logic Analyzer

8-channel USB logic analyzer for capturing digital bus traffic

Calculadoras relacionadas