Comprendre la résolution et le pas LSB d'un convertisseur analogique-numérique
La conversion d'un signal analogique continu en un code numérique discret introduit inévitablement une perte d'information appelée bruit de quantification. Pour évaluer les performances théoriques d'un convertisseur analogique-numérique (ADC), les concepteurs s'appuient sur des calculs précis de taille de pas, de plage dynamique et de rapport signal sur bruit (SNR).
Le outil « ADC Resolution Calculator » permet d'analyser ces paramètres essentiels à partir de la résolution nominale et de la tension de référence. Il prend en charge les configurations unipolaires et bipolaires, effectue des conversions bidirectionnelles entre tensions et codes numériques, et détermine la résolution minimale requise pour détecter une variation de tension cible. Chaque calcul est accompagné de sa substitution mathématique complète, facilitant la vérification des équations de quantification.
Paramètres d'entrée et configuration du calcul
Pour effectuer les calculs, l'outil requiert la saisie de plusieurs paramètres clés:
- Résolution N (bits): Un nombre entier de 1 à 32 — la largeur de bit nominale du convertisseur.
- Tension de référence: Une valeur positive représentant la tension de référence de l'ADC.
- Unité de référence: L'unité de mesure associée à la tension de référence (V, mV, µV).
- Plage d'entrée: Le choix entre une configuration « Unipolaire · 0 à Vref » ou « Bipolaire · −Vref à +Vref ».
- Décimales affichées: Le nombre de décimales à appliquer aux résultats numériques.
- Convertir (Point de mesure - facultatif): Un sélecteur permettant de définir le mode de conversion entre « Tension → code » et « Code → tension ».
- Tension d'entrée (facultatif): La tension analogique à convertir en code numérique. Ce champ peut être laissé vide pour ignorer la mesure.
- Code (échelons) (facultatif): Un nombre entier compris entre 0 et le code supérieur de l'ADC à convertir en tension.
- Unité de tension: L'unité de mesure pour la tension d'entrée ou la tension de code.
- Plus petite variation à résoudre (facultatif): Une valeur cible de tension permettant de calculer la résolution en bits minimale requise.
- Unité de pas: L'unité de mesure pour la plus petite variation à résoudre.
L'interface propose également les boutons « Charger l'exemple » et « Effacer » pour remplir rapidement les champs avec des valeurs types ou réinitialiser le formulaire.
Résultats générés et définitions théoriques
Les résultats calculés par l'outil sont regroupés sous des étiquettes d'interface précises, décrivant le comportement d'un quantificateur idéal.
Taille de pas et bruit
- Taille de pas LSB: La tension du bit le moins significatif (LSB), représentant la plus petite variation de tension que l'ADC peut distinguer. L'outil affiche également ce pas sous forme de pourcentage de la pleine échelle et en parties par million (ppm).
- Niveaux de quantification: Le nombre total de codes discrets disponibles, égal à 2ᴺ.
- Code supérieur: La valeur numérique maximale atteignable, égale à 2ᴺ − 1.
- Plage de pleine échelle: L'amplitude totale de la tension d'entrée prise en charge par le convertisseur (FSR).
- Erreur de quantification max. (±½ LSB): L'écart maximal théorique entre la tension analogique réelle et la tension représentée par le code numérique le plus proche.
- Bruit de quantification (rms): La tension de bruit efficace théorique générée par le processus de quantification, calculée sur la bande passante de Nyquist.
- SNR idéal (sinusoïde pleine échelle): Le rapport signal sur bruit maximal théorique exprimé en décibels (dB).
- Plage dynamique: Le rapport entre le signal maximal mesurable et le plus petit signal distinct, exprimé en décibels.
Au point de mesure
Si une tension d'entrée ou un code numérique est fourni, l'outil calcule les valeurs suivantes:
- Code de sortie: Le code numérique entier résultant de la conversion de la tension d'entrée.
- Binaire: La représentation binaire du code de sortie.
- Hexadécimal: La représentation hexadécimale du code de sortie.
- Tension du code: La tension analogique exacte correspondant théoriquement au code numérique obtenu.
- Erreur de quantification: La différence résiduelle entre la tension du code calculée et la tension d'entrée réelle.
- Fenêtre d'entrée pour ce code: La plage de tensions analogiques qui se convertissent vers ce code spécifique.
De combien de bits avez-vous besoin?
Lorsqu'une valeur est saisie dans le champ « Plus petite variation à résoudre », l'outil évalue si la configuration actuelle de l'ADC permet d'atteindre cette sensibilité. Il affiche un message indiquant le nombre de bits requis et confirme si le convertisseur actuel convient ou non.
Formules mathématiques et substitutions détaillées
L'outil affiche les étapes de calcul en remplaçant les variables symboliques par les valeurs numériques saisies. Les modèles mathématiques appliqués sont les suivants:
- Niveaux de quantification:
2^N
Exemple de substitution:
Niveaux = 2^N = 2^12 = 4096 - Plage de pleine échelle (FSR):
- Unipolaire:
FSR = Vref - Bipolaire:
FSR = 2 × Vref
- Unipolaire:
- Taille de pas LSB:
LSB = FSR / (2^N)
Exemple de substitution:
LSB = FSR ÷ 2^N = 3.3 ÷ 4096 = 0.0008056641 V - Erreur de quantification maximale:
±LSB / 2
Exemple de substitution:
Erreur de quantification max. = ±LSB ÷ 2 = ±0.000402832 V - Bruit de quantification (rms):
LSB / (√(12))
Exemple de substitution:
Bruit de quantification (rms) = LSB ÷ √12 = 0.0002325752 V - SNR idéal (sinusoïde pleine échelle):
SNR = 6.02 × N + 1.76 dB
Exemple de substitution:
SNR = 6.02 × N + 1.76 = 6.02 × 12 + 1.76 = 74.01 dB - Plage dynamique:
6.02 × N dB
Exemple de substitution:
Plage dynamique = 6.02 × N = 6.02 × 12 = 72.24 dB - Conversion Tension en Code:
- Unipolaire:
code = round(Vin ÷ LSB) - Bipolaire:
code = round((Vin + Vref) ÷ LSB)
- Unipolaire:
- Conversion Code en Tension:
- Unipolaire:
V = code × LSB - Bipolaire:
V = code × LSB − Vref
- Unipolaire:
- Erreur de quantification au point de mesure: Tension du code - Tension d'entrée
- Dimensionnement de la résolution: N ≥ log₂(FSR / pas) Le résultat est arrondi au nombre entier supérieur.
Règles de calcul et gestion des limites
Le calculateur applique des règles strictes pour modéliser un quantificateur idéal et gérer les valeurs hors limites:
- Modèle de quantification: La première transition de code s'effectue à un demi-pas (1 / 2 LSB).
- Limites physiques et saturation:
- Si la tension d'entrée dépasse la limite supérieure de la plage, la sortie sature au code supérieur (2^N - 1). L'outil affiche l'avertissement: « L'entrée se situe au-dessus du rail supérieur: la sortie sature au code supérieur, et l'erreur affichée est le résidu réel — la limite de ±½ LSB ne s'applique plus. »
- Si la tension d'entrée descend sous la limite inférieure de la plage, la sortie sature au code 0. L'outil affiche l'avertissement: « L'entrée se situe en dessous du rail inférieur: la sortie sature au code 0, et l'erreur affichée est le résidu réel — la limite de ±½ LSB ne s'applique plus. »
- Entrée à mi-échelle: Lorsque la tension d'entrée se situe exactement au milieu de la plage de pleine échelle, l'outil indique que la moitié de la plage correspond au code médian avec une erreur de quantification nulle.
Confidentialité et traitement des données
Chaque nombre que vous saisissez reste dans ce navigateur — rien n'est téléversé. Tous les calculs sont exécutés localement sur votre appareil, garantissant la confidentialité de vos paramètres de conception sans aucun échange de données avec un serveur externe.
Questions fréquemment posées
Une résolution de 12 bits signifie-t-elle une exactitude de 12 bits?
Non. La résolution représente uniquement la largeur du code — la finesse de division de la plage. L'exactitude est limitée par l'INL et les erreurs de décalage/gain du convertisseur, la tolérance et le bruit de la référence, ainsi que le circuit environnant. C'est pourquoi les fiches techniques indiquent l'ENOB: un SAR de 12 bits offre généralement 10–11 bits effectifs. Le SNR idéal de 74 dB affiché ici est le plafond théorique qu'aucun convertisseur 12 bits réel n'atteint.
Comment une entrée de ±Vref modifie-t-elle les calculs?
La plage double pour atteindre 2 × Vref, de sorte que le même convertisseur résout des pas deux fois plus larges: LSB = 2 × Vref ÷ 2^N. Les codes s'étendent du rail négatif au rail positif — le code 0 correspond à −Vref, le code médian 2^(N−1) correspond à 0 V, et le code supérieur se situe un pas sous +Vref. Sélectionnez la plage bipolaire ci-dessus et zéro volt correspondra exactement au code médian.
Pourquoi certaines sources divisent-elles par 2^N et d'autres par 2^N − 1?
Il s'agit de deux modèles différents du même convertisseur. Les fiches techniques et la théorie classique de la quantification définissent LSB = FSR ÷ 2^N, avec la première transition de code à un demi-pas — c'est le modèle utilisé sur cette page. La formule Vref ÷ (2^N − 1) provient de l'association du code supérieur exactement à Vref, ce qui est courant dans les tutoriels sur les microcontrôleurs. À 12 bits, les deux diffèrent d'environ 0.02%, ce qui est bien inférieur à la tolérance de n'importe quelle référence réelle; veillez simplement à ne pas mélanger les deux lors de la vérification de valeurs provenant de sources différentes.
Que puis-je faire lorsque la taille de pas est trop grossière?
Le suréchantillonnage et le moyennage permettent de gagner en résolution lorsque le signal comporte un peu de bruit: moyenner 4× plus d'échantillons permet de gagner environ un bit effectif, et 16× permet d'en gagner deux, à condition que le bruit soit blanc et non corrélé — un signal parfaitement propre et parfaitement stable répète simplement le même code. Au-delà de cela, passez à un convertisseur doté de plus de bits ou ajoutez un étage à gain programmable pour que le signal occupe une plus grande partie de la plage.