Experimentar o CircuitLens

Fichas de referência

Baud e enquadramento UART

Guia rápido de baud rate e enquadramento UART

A UART (Universal Asynchronous Receiver-Transmitter) não tem fio de clock compartilhado, então as duas pontas precisam combinar de antemão a que velocidade os bits chegam e como cada byte é empacotado. O baud rate é apenas uma das várias configurações que os dois lados precisam igualar, não a história toda. Acerte o baud rate mas erre o enquadramento e o resultado geralmente não é uma falha clara — é um fluxo de caracteres embaralhados, porque o receptor acaba amostrando a linha nos momentos errados.

Um quadro UART começa com a linha em repouso mantida em nível alto; depois um start bit a leva para baixo por um tempo de bit para marcar o início de um byte e permitir que o receptor se sincronize. Em seguida vêm os bits de dados — normalmente 8, embora alguns dispositivos usem de 5 a 9 — enviados com o bit menos significativo primeiro. Um bit de paridade opcional (nenhuma, par ou ímpar) pode vir a seguir para uma verificação básica de erros, e então um ou, às vezes, dois stop bits (1.5 stop bit aparece em alguns hardwares antigos) devolvem a linha ao repouso alto para marcar o fim do quadro.

As duas pontas precisam concordar com as quatro configurações juntas — baud rate, número de bits de dados, paridade e número de stop bits — e é por isso que elas costumam ser escritas de forma abreviada como '8N1' (8 bits de dados, sem paridade, 1 stop bit), de longe a configuração mais comum hoje. Erre qualquer uma delas, mesmo com o baud rate igual, e você verá bytes embaralhados ou erros de enquadramento em vez de um link funcionando.

Ao investigar uma placa desconhecida, 8N1 é quase sempre um palpite seguro de enquadramento — a verdadeira incógnita geralmente é só o baud rate. Tente 115200 e 9600 primeiro, pois cobrem a maioria dos dispositivos, e se o log de boot de um ESP8266 parecer lixo a 115200, tente 74880 antes de concluir que a porta está morta. O auto-baud ou decodificador de protocolo de um analisador lógico (ou medir a largura do pulso mais curto no fluxo de dados com um osciloscópio) identifica rapidamente uma taxa desconhecida. A regra muito citada de "deve coincidir dentro de ~2-3%" para diferenças de baud rate é uma orientação aproximada, não uma especificação rígida — o erro tolerável real depende da sobreamostragem da UART específica e do número de bits de cada quadro, então trate-a como estimativa e não como limite de projeto.

Mais fichas