Calculadora do Baud Rate de uma UART (Erro, Divisor e Tempo de Transferência)
O divisor a carregar para um baud rate, o erro que deixa com o seu relógio (em modo normal e de velocidade dupla), os bits de uma trama, o débito real de dados e o tempo para enviar uma mensagem.
Resultados
A linha tracejada marca o valor que escreveu.
O que faz esta ferramenta
Uma UART obtém o baud rate dividindo o relógio do microcontrolador, e por isso nem todas as velocidades são exatas: num AVR, UBRR = f_osc ÷ (16 × baud) − 1 tem de ser inteiro, pelo que 9600 baud com um relógio de 16 MHz são na realidade 9615 baud, 0,16 % acima. Os dois lados comunicam se o erro combinado ficar nalguns por cento, e uma regra prática é manter cada um abaixo de cerca de 2 %. Cada byte custa também mais do que 8 tempos de bit: os bits de início e de paragem e o de paridade opcional dão 10 bits no formato 8N1 habitual, e 9600 baud levam 960 bytes por segundo, não 1200.
Fórmula
UBRR = f_osc ÷ (16 × baud) − 1 (o melhor dos dois inteiros mais próximos) · erro = real ÷ pretendido − 1 · trama = 1 + dados + paridade + paragem · tempo = bytes × trama ÷ baud
Variáveis
| Símbolo | Significado | Unidade |
|---|---|---|
ba | Baud rate pretendido | baud |
db | Bits de dados | bit |
pa | Paridade | — |
sb | Bits de paragem | — |
nby | Comprimento da mensagem | B |
fo | Relógio do microcontrolador | MHz |
ER | Erro do baud rate com o melhor divisor | % |
UB | Divisor a carregar (UBRR nos AVR) | — |
AB | Baud rate que vai realmente obter | baud |
E2 | Erro no modo de velocidade dupla (U2X) | % |
FR | Bits no fio por byte | bit |
EF | Parte da linha que leva dados | % |
DR | Débito de dados | B/s |
TM | Tempo para enviar a mensagem | ms |
Exemplo resolvido
- Baud rate pretendido9600 baud
- Bits de dados8 bit
- Paridade0
- Bits de paragem1
- Comprimento da mensagem100 B
- Relógio do microcontrolador16 MHz
- Erro do baud rate com o melhor divisor0,16 %
- Divisor a carregar (UBRR nos AVR)103
- Baud rate que vai realmente obter9615,4 baud
- Erro no modo de velocidade dupla (U2X)0,16 %
- Bits no fio por byte10 bit
- Parte da linha que leva dados80,0 %
- Débito de dados960,0 B/s
- Tempo para enviar a mensagem104,17 ms
Limitações
- Os rendimentos e consumos variam de produto para produto. Tire os valores da ficha técnica do fabricante do produto que vai mesmo usar.
- O resultado é uma estimativa baseada apenas nos valores que introduziu. Situações reais incluem muitas vezes fatores que esta calculadora desconhece.