Skip to content
RFrftools.io
Comms

Calculadora de taxa de transmissão UART e tempo de quadros

Calcule o tempo de quadro UART, a taxa de transferência e o divisor de registro USART BRR a partir da taxa de transmissão, formato de dados e frequência do relógio MCU. Identifique o erro da taxa de transmissão para uma comunicação serial confiável.

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

Referência: STM32 Reference Manual RM0008 §27.3.4; ST AN2908

BTaxa de transmissão alvo (bps)
f_{clk}Frequência do relógio periférico MCU (Hz)
BRRDivisor de registro de taxa de transmissão (inteiro)
T_{bit}Duração de um bit (s)
N_{frame}Total de bits por quadro UART (bits)
DBits de dados (bits)
PBits de paridade (0 ou 1) (bits)
SBits de parada (1 ou 2) (bits)

Como Funciona

Essa calculadora determina os valores do divisor de taxa de transmissão UART e os erros de tempo para uma comunicação serial confiável. Engenheiros embarcados, desenvolvedores de IoT e designers de hardware o usam para configurar UARTs de microcontroladores dentro da tolerância de relógio de 2 a 3% exigida pela maioria dos receptores. De acordo com o padrão UART (derivado do RS-232/EIA-232), cada quadro contém um bit inicial, 5-9 bits de dados, paridade opcional e 1-2 bits de parada. Um MCU de 16 MHz visando 115200 baud atinge 0,16% de erro com BRR = 8 (superamostragem de 16x), enquanto 9600 baud produz 0,08% de erro com BRR = 104. Estudos mostram que erros de taxa de transmissão acima de 3,5% causam falhas no enquadramento de bytes em 1 de cada 10 quadros. As taxas padrão (9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 baud) são definidas para minimizar os erros de arredondamento do divisor em frequências cristalinas comuns (8, 12, 16, 20 MHz). O período de bits em 115200 baud é de 8,68 microssegundos, exigindo precisão de tempo de 300 nanossegundos por bit para uma recepção confiável de quadros de 10 bits.

Exemplo Resolvido

Um projeto de ECU automotiva requer comunicação UART a 115200 baud usando um relógio de sistema de 20 MHz com sobreamostragem de 16x. Seguindo a fórmula divisória das implementações padrão do UART: BRR = f_clk/(16 x baud) = 20.000.000/(16 x 115200) = 10,85. O arredondamento para BRR=11 dá o baud real = 20.000.000/(16 x 11) = 113636 baud. Erro = |115200 - 113636|/115200 x 100 = 1,36%, que atende ao máximo de 2% especificado na maioria das folhas de dados do receptor UART. Estrutura do quadro: 1 início + 8 dados + 1 parada = 10 bits no total, gerando uma taxa de transferência de 11.364 bytes/segundo. Para comparação, o uso de sobreamostragem de 8x (BRR = 22) atinge 113636 baud com erro idêntico de 1,36%, mas imunidade a ruídos reduzida.

Dicas Práticas

  • De acordo com a nota de aplicação AN4908 da ST Microelectronics, use BRR fracionário quando disponível para obter < 0,5% de erro em qualquer taxa de transmissão padrão
  • Para cabos lógicos de 3,3 V acima de 2 metros, limite a taxa de transmissão a 115200 para manter uma margem de ruído de 400 mV de acordo com as especificações RS-232
  • Verifique o tempo com o osciloscópio: meça 10 bits consecutivos e confirme a duração total dentro de 2% do esperado (86,8 us a 115200 baud)

Erros Comuns

  • Usando um cristal com tolerância de >50 ppm, que adiciona 0,005% de erro a 25° C, mas pode exceder 2% de erro combinado em temperaturas extremas (-40° C a +85° C)
  • Selecionar taxas de transmissão não padrão, como 100.000 baud, o que gera 4,17% de erro em sistemas de 16 MHz versus 0,16% em 115200 baud
  • Ignorando que os geradores de taxa de transmissão fracionária (disponíveis em STM32, LPC, etc.) reduzem o erro de 1,36% para menos de 0,1% em 115200 baud

Perguntas Frequentes

O 8-N-1 (8 bits de dados, sem paridade, 1 bit de parada) é usado em 90% dos aplicativos incorporados de acordo com pesquisas do setor. Isso gera 80% de eficiência (8 bits de dados por 10 bits no total) e é o padrão no Arduino, no Raspberry Pi e na maioria das estruturas de microcontroladores.
A paridade adiciona 1 bit por quadro (reduzindo a eficiência de 80% para 72,7% para 8-N-1 versus 8-E-1) e detecta erros de um único bit com 100% de confiabilidade, mas não pode detectar erros de 2 bits. De acordo com a IEC 61162, os protocolos marítimos NMEA exigem paridade uniforme em 4800 baud.
Três fatores dominam: tolerância de cristal (típica de 20-100 ppm, adicionando 0,002-0,01% de erro), arredondamento do divisor inteiro (0-3% dependendo da relação entre relógio e transmissão) e desvio de temperatura (os ressonadores cerâmicos variam 0,5% acima de -40C para +85C versus 0,003% para cristais).
Sim, mas o erro aumenta significativamente. Uma taxa de transmissão de 250.000 em 16 MHz gera 0% de erro (divisor exato), enquanto 100.000 baud geram 6,25% de erro (BRR = 10 fornece 100.000, mas ambas as extremidades devem coincidir). Pontes USB-UART como FTDI FT232R suportam qualquer taxa de 183 a 3.000.000 de baud.
Os transceptores UART padrão suportam até 1 Mbaud em traços de PCB <10 cm. O FTDI FT232H atinge 12 Mbaud. Além de 3 Mbaud, use sinalização diferencial (o RS-485 suporta 10 Mbaud a mais de 15 metros por 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