Перейти к содержанию

Младший разряд (LSB) и разрешение АЦП

LSB — шаг, на который отличаются соседние коды аналого-цифрового или цифро-аналогового преобразователя. Через него считают напряжение по коду, разрешение и погрешности, которые в даташитах указывают в «единицах LSB».

Обновлено Редакция GAW

LSB (least significant bit, младший разряд) — вес младшего разряда кода преобразователя, то есть шаг, на который отличаются напряжения соседних кодов. N-разрядный АЦП делит диапазон от нуля до опорного напряжения VREF на 2N равных шагов:

1 LSB=VREF2N,Vвх=код⋅VREF2N1\ \text{LSB} = \frac{V_{REF}}{2^N}, \qquad V_\text{вх} = \text{код} \cdot \frac{V_{REF}}{2^N}

Код 0 соответствует нулю, а наибольший код 2N − 1 — опорному напряжению минус 1 LSB. Погрешности АЦП и ЦАП в даташитах — смещение, усиление, нелинейность — тоже выражают в единицах LSB.

Значения LSB

АЦПVREF1 LSB
ATmega328P, 10 бит5 В4,88 мВ
ATmega328P, 10 бит1,1 В (внутренний источник)1,07 мВ
STM32, 12 бит3,3 В805,6 мкВ
16 бит2,5 В38,1 мкВ

Меньшее опорное напряжение уменьшает LSB, но и сужает диапазон входа. Код, время преобразования и настройку АЦП AVR считает калькулятор АЦП AVR, для STM32 — калькулятор АЦП STM32.

Ошибка квантования

Все входные напряжения в пределах одной ступеньки дают один и тот же код, поэтому даже идеальный АЦП ошибается на величину до ±½ LSB — это ошибка квантования (DS40002061B, разд. 24.6.3). Для синусоидального сигнала на всю шкалу она ограничивает отношение сигнал/шум идеального N-разрядного АЦП величиной 6,02·N + 1,76 дБ (AN4629): около 74 дБ для 12 бит. Устройство преобразователя последовательного приближения, время выборки и остальные погрешности разобраны в статье «АЦП», обратное преобразование — в статье «ЦАП».

Частые вопросы

Как перевести код АЦП в напряжение?

Умножить код на величину LSB: V = код · VREF / 2^N. Для 10-битного АЦП Arduino Uno с опорой 5 В код 512 означает 512 · 5 / 1024 = 2,5 В. Делят именно на 1024, а не на 1023: наибольший код 1023 соответствует опорному напряжению минус 1 LSB, так определяет результат даташит ATmega328P.

Что значит погрешность ±2 LSB в даташите?

Что результат может отличаться от идеального на два шага квантования. Для 12-битного АЦП с опорой 3,3 В один LSB — 805,6 мкВ, значит ±2 LSB — около ±1,6 мВ. Погрешности смещения, усиления и нелинейности в даташитах указывают именно так, поэтому их удобно сравнивать с разрядностью.

Можно ли получить разрешение больше разрядности АЦП?

Да, передискретизацией: если шум на входе больше 1 LSB и не связан с частотой выборки, сумма 4^n измерений, сдвинутая на n разрядов вправо, даёт n дополнительных разрядов. Точность от этого не растёт — систематические погрешности остаются, — но становятся различимы изменения меньше одного LSB.

Источники

  1. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — разд. 24: результат ADC = VIN · 1024 / VREF, 24.6.3 — ошибка квантования ±0,5 LSB
  2. STMicroelectronics. AN2834: How to optimize the ADC accuracy in the STM32 MCUs, Rev 10 — определение LSB и погрешностей АЦП в единицах LSB
  3. STMicroelectronics. AN4629: ADC hardware oversampling for microcontrollers of the STM32 L0 and L4 series (DocID027261 Rev 1) — шум квантования q/√12, SNR = 6,02N + 1,76 дБ

Нашли ошибку?