tools

Erreur de baud rate UART

Valeur du registre diviseur, baud rate réel et erreur en % pour les UART STM32, AVR, RP2040/RP2350 et ESP32.

[chargement de l’outil…]

Principe

Un UART divise son horloge noyau pour obtenir le débit binaire. Le diviseur est un entier (ou possède une petite partie fractionnaire), donc le baud rate réel est rarement exact :

Périphérique Diviseur Baud réel
STM32 USART, ×16 USARTDIV = round(fck / baud), BRR = USARTDIV fck / USARTDIV
STM32 USART, ×8 USARTDIV = round(2 fck / baud), BRR[3:0] = USARTDIV[3:0] >> 1 2 fck / USARTDIV
AVR (ATmega) UBRR = round(F / (16 baud) − 1), ou 8 avec U2X F / (16 (UBRR + 1))
RP2040 / RP2350 (PL011) IBRD + FBRD/64 = clk / (16 baud) clk / (16 (IBRD + FBRD/64))
ESP32 CLKDIV + FRAG/16 = clk / baud clk / (CLKDIV + FRAG/16)

fck est l’horloge noyau de l’USART divisée par PRESC sur les composants qui en disposent (STM32N6, H7, G4, L4+…). Le STM32 exige USARTDIV ≥ 16.

Quelle erreur est acceptable ?

Le récepteur échantillonne chaque bit en son milieu ; sur une trame de 10 bits, les horloges peuvent dériver l’une par rapport à l’autre d’environ un demi-bit, donc la somme des erreurs des deux côtés doit rester sous 4–5 % environ. L’outil considère ±2 % comme correct et ±3.5 % comme limite.

L’exemple classique : un Arduino Uno à 16 MHz ne peut pas faire proprement du 115 200 bauds. Sans U2X, l’erreur est de −3.5 % ; avec U2X (que le core Arduino active), elle est de +2.1 %. Cela fonctionne avec la plupart des adaptateurs USB-série, mais pas avec tous les équipements.

Préréglages

Les horloges sont des valeurs par défaut typiques (STM32N6 avec HSI 64 MHz comme horloge noyau de l’USART, clk_peri du Pico SDK, APB de l’ESP32 à 80 MHz). Votre arbre d’horloges peut différer : vérifiez-le dans CubeMX ou le manuel de référence et saisissez la valeur.

Références

esc
Tous les outils
Aperçu Markdown[text]
Autonomie batterie en rapport cyclique[embedded]
Autonomie d’onduleur (UPS)[hardware]
Calcul de chute de tension[hardware]
Calcul de forme de tenseur[ai]
Calcul de résistance pour LED[embedded]
Calcul de section de câble[hardware]
Calcul de taille après quantification[ai]
Calculateur chmod[dev]
Calculateur CRC[embedded]
Calculateur d’autonomie de batterie[hardware]
Calculateur de filtre RC / LC[embedded]
Calculateur de pont diviseur de tension[embedded]
Calculateur de puissance de groupe électrogène[hardware]
Calculateur de résolution ADC / DAC[embedded]
Calculateur de sous-réseau / CIDR[dev]
Calculateur loi d’Ohm[embedded]
Calculateur timer / PWM[embedded]
Code couleur des résistances[embedded]
Convertisseur CSV ⇄ JSON[dev]
Convertisseur de chiffres romains[text]
Convertisseur de timestamp Unix[dev]
Décodeur JWT[dev]
Dimensionnement d’un parc de batteries solaires[hardware]
Encodeur / décodeur Base64[dev]
Encodeur d’entités HTML[dev]
Encodeur et analyseur d’URL[dev]
Erreur de baud rate UART[embedded]
Estimateur de mémoire / VRAM pour LLM[ai]
Formateur et validateur JSON[dev]
Formateur SQL[dev]
Formateur XML[dev]
Générateur d’expression cron[dev]
Générateur de hash[dev]
Générateur de Lorem Ipsum[text]
Générateur de mot de passe[dev]
Générateur de tableau Markdown[text]
Générateur et inspecteur d’UUID[dev]
Inspecteur de nombres et flottants[embedded]
Nombre en lettres[text]
Production de panneaux solaires[hardware]
Testeur de regex[dev]
Testeur JSONPath[dev]
Validateur et convertisseur YAML[dev]
Visualiseur de registres et champs de bits[embedded]
Commandes
Changer de thème (auto → clair → sombre)
Copier le lien de cette page
Aller à tous les outils
Read in English
↑↓ naviguer↵ ouvrir⌘↵ nouvel onglet