Paritian

Eletricidade

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

Erro do baud rate com o melhor divisor 0,16 %
Divisor a carregar (UBRR nos AVR) 103
Baud rate que vai realmente obter 9615,4 baud
Erro no modo de velocidade dupla (U2X) 0,16 %
Bits no fio por byte 10 bit
Parte da linha que leva dados 80,0 %
Débito de dados 960,0 B/s
Tempo para enviar a mensagem 104,17 ms
Como varia
Erro do baud rate com o melhor divisorBaud rate pretendido 1200 – 115 200. Erro do baud rate com o melhor divisor: 0,040016 → -3,54938Erro do baud rate com o melhor divisor-6-4-2024620 00040 00060 00080 000100 000Baud rate pretendido (baud)

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ímboloSignificadoUnidade
baBaud rate pretendidobaud
dbBits de dadosbit
paParidade—
sbBits de paragem—
nbyComprimento da mensagemB
foRelógio do microcontroladorMHz
ERErro do baud rate com o melhor divisor%
UBDivisor a carregar (UBRR nos AVR)—
ABBaud rate que vai realmente obterbaud
E2Erro no modo de velocidade dupla (U2X)%
FRBits no fio por bytebit
EFParte da linha que leva dados%
DRDébito de dadosB/s
TMTempo para enviar a mensagemms

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.