Principe
Un convertisseur n bits découpe la référence en 2ⁿ pas :
LSB = Vref / 2ⁿ V = code × Vref / 2ⁿ
Beaucoup de fonctions firmware (dont la macro STM32 HAL/LL __LL_ADC_CALC_DATA_TO_VOLTAGE) divisent plutôt par 2ⁿ − 1, pour que le code maximal corresponde exactement à Vref. L’écart reste inférieur à un LSB ; choisissez la convention qu’utilise votre code.
Le bruit de quantification d’un convertisseur idéal vaut LSB / √12 rms, d’où un SNR maximal de 6.02 n + 1.76 dB : 74 dB pour 12 bits. Les ADC réels en perdent une partie à cause du bruit et de la distorsion ; le SINAD de la datasheet donne le nombre de bits effectifs :
ENOB = (SINAD − 1.76) / 6.02
Conseils
- Vous mesurez une alimentation inconnue ? Ramenez-la d’abord sous Vref avec un pont diviseur (outil pont diviseur de tension) et gardez l’impédance du pont dans la limite acceptée par l’ADC.
- Sur STM32, mesurez VREFINT pour calculer la vraie VDDA au lieu de supposer 3.3 V.