Младший разряд (LSB) и разрешение АЦП
LSB — шаг, на который отличаются соседние коды аналого-цифрового или цифро-аналогового преобразователя. Через него считают напряжение по коду, разрешение и погрешности, которые в даташитах указывают в «единицах LSB».
Обновлено Редакция GAW
LSB (least significant bit, младший разряд) — вес младшего разряда кода преобразователя, то есть шаг, на который отличаются напряжения соседних кодов. N-разрядный АЦП делит диапазон от нуля до опорного напряжения VREF на 2N равных шагов:
Код 0 соответствует нулю, а наибольший код 2N − 1 — опорному напряжению минус 1 LSB. Погрешности АЦП и ЦАП в даташитах — смещение, усиление, нелинейность — тоже выражают в единицах LSB.
Значения LSB
| АЦП | VREF | 1 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.
Источники
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — разд. 24: результат ADC = VIN · 1024 / VREF, 24.6.3 — ошибка квантования ±0,5 LSB
- STMicroelectronics. AN2834: How to optimize the ADC accuracy in the STM32 MCUs, Rev 10 — определение LSB и погрешностей АЦП в единицах LSB
- STMicroelectronics. AN4629: ADC hardware oversampling for microcontrollers of the STM32 L0 and L4 series (DocID027261 Rev 1) — шум квантования q/√12, SNR = 6,02N + 1,76 дБ
Нашли ошибку?
Смотрите также
- АЦПКвантование, формула кода, SAR, время выборки, погрешности, передискретизация
- АЦП AVR: ADPS и кодЧастота АЦП, время преобразования, код по напряжению, ADMUX и ADCSRA
- АЦП STM32: время и выборкаВремя преобразования, частота выборок, RAIN и самая короткая выборка
- ЦАПФормула выхода, R-2R и резистивная цепочка, погрешности, буфер, STM32, MCP4725, ШИМ