Калькулятор разрешения ADC

Введите разрядность и опорное напряжение ADC, чтобы рассчитать шаг квантования, ошибку и идеальное SNR, выполнить конвертацию вольт↔код и увидеть все подстановки.

Преобразователь и диапазон

Целое число от 1 до 32 — номинальная разрядность преобразователя.
Входной диапазон

Точка измерения (опционально)

Оставьте пустым, чтобы пропустить измерение.

Сколько бит вам нужно? (опционально)

Шаг квантования и шум

Шаг квантования LSB

Формулы и подстановка

LSB = FSR ÷ 2ᴺ · макс. ошибка = ½ LSB · SNR = 6.02N + 1.76 dB

    Все вводимые вами числа остаются в этом браузере — ничего не отправляется на сервер.

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

    Почему в одних источниках делят на 2^N, а в других — на 2^N − 1?

    Это две разные модели одного и того же преобразователя. В спецификациях и классической теории квантования принято определять LSB = FSR ÷ 2^N, где первый переход кода происходит на уровне половины шага — именно эту модель использует данная страница. Формула Vref ÷ (2^N − 1) возникает при жесткой привязке максимального кода к значению Vref, что часто встречается в руководствах по микроконтроллерам. При 12 битах разница между ними составляет около 0.02%, что намного меньше погрешности любого реального опорного источника; главное — не смешивать эти подходы при сверке данных из разных источников.

    Означает ли 12-битное разрешение 12-битную точность?

    Нет. Разрешение — это лишь разрядность кода, определяющая, насколько мелко делится диапазон. Точность же ограничена интегральной (INL) и дифференциальной (DNL) нелинейностью преобразователя, ошибками смещения и усиления, погрешностью и шумом источника опорного напряжения, а также обвязкой схемы. Именно поэтому в спецификациях указывают ENOB (эффективное число бит): 12-битный SAR обычно выдает 10–11 эффективных бит. Показанное здесь идеальное SNR в 74 dB — это теоретический предел, которого не достигает ни один реальный 12-битный преобразователь.

    Как входной сигнал ±Vref меняет расчеты?

    Диапазон удваивается до 2 × Vref, поэтому тот же преобразователь разрешает шаги вдвое большей ширины: LSB = 2 × Vref ÷ 2^N. Коды идут от отрицательного плеча питания к положительному: код 0 соответствует −Vref, средний код 2^(N−1) равен 0 V, а максимальный код находится на один шаг ниже +Vref. Выберите биполярный диапазон выше, и ноль вольт попадет точно на средний код.

    Что делать, если шаг квантования слишком велик?

    Передискретизация и усреднение позволяют повысить разрешение, если в сигнале присутствует небольшой шум: усреднение в 4× раза большего числа отсчетов дает примерно один дополнительный эффективный бит, а в 16× раз — два бита, при условии, что шум является белым и некоррелированным. Идеально чистый и неподвижный сигнал будет просто выдавать один и тот же код. В противном случае следует перейти на преобразователь с большей разрядностью или добавить каскад с программируемым усилением, чтобы сигнал занимал большую часть диапазона.

    Принцип работы и возможности калькулятора

    «ADC Resolution Calculator» — это бесплатный онлайн-инструмент, предназначенный для расчета шага квантования (LSB), максимальной ошибки квантования и теоретического предела отношения сигнал/шум (SNR) аналого-цифрового преобразователя (АЦП) на основе его разрядности и опорного напряжения.

    Интерфейс позволяет работать как с однополярными, так и с биполярными входными диапазонами, выполнять прямое и обратное преобразование между входным напряжением и цифровым кодом, а также определять минимальную разрядность, необходимую для регистрации заданного изменения напряжения. Для каждого расчета калькулятор выводит подробные математические формулы с подставленными значениями, что упрощает проверку расчетов и помогает глубже понять теоретические ограничения преобразования.

    Входные параметры

    Для проведения расчетов в калькулятор вводятся следующие параметры:

    • Разрешение N (бит): целое число от 1 до 32 — номинальная разрядность преобразователя.
    • Опорное напряжение: положительное число, задающее опорный уровень.
    • Единица опорного напряжения: физическая единица измерения опорного напряжения.
    • Входной диапазон: выбор между вариантами «Однополярный · от 0 до Vref» и «Биполярный · от −Vref до +Vref».
    • Десятичные знаки: количество знаков после запятой для отображения результатов.
    • Преобразовать (опционально): переключатель режима измерения между «Напряжение → код» и «Код → напряжение».
    • Входное напряжение (опционально): значение напряжения для перевода в цифровой код (можно оставить пустым).
    • Код (отсчеты) (опционально): целое число от 0 до максимального кода АЦП для перевода в напряжение (можно оставить пустым).
    • Единица напряжения: единица измерения для входного напряжения или напряжения кода.
    • Минимальное разрешаемое изменение (опционально): целевой шаг напряжения для расчета требуемой разрядности.
    • Единица шага: единица измерения для минимального разрешаемого изменения.

    Кнопка «Пример параметров» позволяет быстро заполнить поля демонстрационными данными, а кнопка «Очистить» сбрасывает все введенные значения.

    Выходные результаты и структура интерфейса

    Результаты вычислений группируются по функциональным блокам под соответствующими заголовками:

    Шаг квантования и шум

    • Шаг квантования LSB: вычисленный шаг младшего значащего разряда. Дополнительно выводится его процентное отношение к полной шкале и значение в миллионных долях (ppm).
    • Уровни квантования: общее число дискретных состояний (2^N).
    • Максимальный код: предельное значение выходного цифрового кода (2^N - 1).
    • Диапазон полной шкалы: полный размах входного напряжения АЦП.
    • Макс. ошибка квантования (±½ LSB): предельная теоретическая погрешность округления.
    • Шум квантования (rms): среднеквадратичное значение напряжения шума квантования.
    • Идеальное SNR (полношкальный синус): теоретический предел отношения сигнал/шум в децибелах.
    • Динамический диапазон: теоретический динамический диапазон в децибелах.

    В точке измерения

    • Выходной код: цифровой код, полученный при преобразовании входного напряжения.
    • Двоичный код: представление выходного кода в двоичной системе.
    • Шестнадцатеричный код: представление выходного кода в шестнадцатеричной системе.
    • Напряжение кода: точное аналоговое напряжение, соответствующее данному цифровому коду.
    • Ошибка квантования: разность между фактическим входным напряжением и напряжением полученного кода.
    • Входной интервал для этого кода: диапазон аналоговых напряжений, которые преобразуются в данный цифровой код.

    Сколько бит вам нужно?

    При вводе целевого шага напряжения калькулятор выводит статус подбора разрядности. Если текущий АЦП справляется с задачей, выводится сообщение о том, что для разрешения шага требуется не менее определенного количества бит, и текущий преобразователь подходит. Если разрядности недостаточно, калькулятор указывает требуемое число бит и сообщает, какой шаг фактически способен разрешить текущий прибор.

    Математические формулы и пример расчета

    В блоке «Формулы и подстановка» калькулятор демонстрирует математический аппарат, подставляя в уравнения пользовательские данные:

    • Диапазон полной шкалы (FSR):
      • Однополярный: FSR = Vref
      • Биполярный: FSR = 2 × Vref
    • Шаг квантования: LSB = FSR ÷ 2^N
    • Максимальная ошибка квантования: ±LSB ÷ 2
    • Шум квантования (rms): LSB ÷ √12
    • Идеальное SNR (полношкальный синус): SNR = 6.02 × N + 1.76 dB
    • Динамический диапазон: 6.02 × N dB
    • Код (однополярный): код = round(Vin ÷ LSB)
    • Код (биполярный): код = round((Vin + Vref) ÷ LSB)
    • Напряжение (однополярный): V = код × LSB
    • Напряжение (биполярный): V = код × LSB − Vref
    • Ошибка квантования в точке измерения: Напряжение кода − Входное напряжение
    • Расчет разрядности: N ≥ log₂(FSR ÷ step) (с округлением до ближайшего большего целого числа).

    Пример расчета (демонстрационные значения)

    При выборе 12-битного разрешения, опорного напряжения 3.3 V и однополярного диапазона калькулятор выполняет следующие вычисления:

    • Количество уровней: 2¹² = 4096.
    • Максимальный код: 4095.
    • LSB: 3.3 V ÷ 4096 ≈ 805.6641 µV.
    • Максимальная ошибка квантования: ± 402.832 µV.
    • Шум квантования: ≈ 232.5752 µV rms.
    • Идеальное SNR: ≈ 74.01 dB.
    • Динамический диапазон: ≈ 72.25 dB.
    • При входном напряжении 1.65 V (ровно середина шкалы) выходной код равен 2048 (двоичный: 1000 0000 0000, шестнадцатеричный: 0x800), а ошибка квантования составляет 0 V.

    Правила обработки граничных режимов и ошибок

    • Модель квантования: Инструмент моделирует идеальный квантователь, где первый переход кода происходит при достижении половины шага (1 / 2 LSB), а шаг LSB строго равен FSR ÷ 2^N.
    • Ограничение применимости: Все расчеты описывают идеальный АЦП. Реальные микросхемы вносят погрешности нелинейности (INL/DNL), смещения, усиления и температурного дрейфа, а шум источника опорного напряжения масштабирует шаг. Поэтому идеальное SNR, динамический диапазон и предел ±1 / 2 LSB являются теоретическим максимумом. Разрядность АЦП не тождественна его реальной точности.
    • Выход за верхнюю границу: Если входное напряжение превышает верхний предел диапазона, код ограничивается максимальным значением (2^N - 1). Калькулятор выводит предупреждение: «Входное значение выше верхнего предела: выход насыщается на максимальном коде, а показанная ошибка является истинным остатком — ограничение ±½ LSB больше не применяется.».
    • Выход за нижнюю границу: Если входное напряжение ниже минимального предела диапазона, код ограничивается значением 0. Выводится предупреждение: «Входное значение ниже нижнего предела: выход насыщается на коде 0, а показанная ошибка является истинным остатком — ограничение ±½ LSB больше не применяется.».
    • Точная середина шкалы: При подаче напряжения, равного ровно половине диапазона, калькулятор отмечает, что половина диапазона преобразуется в средний код с нулевой ошибкой квантования.

    Сообщения об ошибках ввода

    • Некорректный формат числа: "‹field›: “‹token›” не является числом.".
    • Выход разрядности за границы: "Разрешение должно быть целым числом бит от 1 до 32.".
    • Недопустимое опорное напряжение: "Опорное напряжение должно быть больше нуля.".
    • Дробный код: "Код должен быть целым числом отсчетов.".
    • Выход кода за границы: "Код должен быть в диапазоне от 0 до ‹max› для ‹bits›-битного преобразователя.".
    • Недопустимый шаг разрешения: "Минимальное разрешаемое изменение должно быть больше нуля.".
    • Переполнение: "Значение или промежуточный результат превышает поддерживаемый диапазон чисел.".

    Конфиденциальность данных

    Все вводимые вами числа остаются в этом браузере — ничего не отправляется на сервер. Все математические операции выполняются локально на вашем устройстве.

    Области применения инструмента

    • Выбор АЦП под задачу: Определение минимальной разрядности, необходимой для регистрации заданных изменений напряжения датчика.
    • Отладка тракта обработки сигналов: Быстрый перевод сырых кодов из регистров микроконтроллера обратно в физические вольты для проверки правильности работы АЦП.
    • Расчет бюджета шумов: Оценка теоретического предела SNR и среднеквадратичного шума квантования для сопоставления с шумами аналогового тракта.
    • Разработка встроенного ПО: Верификация алгоритмов масштабирования и калибровки сигналов в коде микроконтроллера.

    Часто задаваемые вопросы

    Означает ли 12-битное разрешение 12-битную точность?
    Нет. Разрешение — это лишь разрядность кода, определяющая, насколько мелко делится диапазон. Точность же ограничена интегральной (INL) и дифференциальной (DNL) нелинейностью преобразователя, ошибками смещения и усиления, погрешностью и шумом источника опорного напряжения, а также обвязкой схемы. Именно поэтому в спецификациях указывают ENOB (эффективное число бит): 12-битный SAR обычно выдает 10–11 эффективных бит. Показанное здесь идеальное SNR в 74 dB — это теоретический предел, которого не достигает ни один реальный 12-битный преобразователь.

    Как входной сигнал ±Vref меняет расчеты?
    Диапазон удваивается до 2 × Vref, поэтому тот же преобразователь разрешает шаги вдвое большей ширины: LSB = 2 × Vref ÷ 2^N. Коды идут от отрицательного плеча питания к положительному: код 0 соответствует −Vref, средний код 2^(N−1) равен 0 V, а максимальный код находится на один шаг ниже +Vref. Выберите биполярный диапазон выше, и ноль вольт попадет точно на средний код.

    Почему в одних источниках делят на 2^N, а в других — на 2^N − 1?
    Это две разные модели одного и того же преобразователя. В спецификациях и классической теории квантования принято определять LSB = FSR ÷ 2^N, где первый переход кода происходит на уровне половины шага — именно эту модель использует данная страница. Формула Vref ÷ (2^N − 1) возникает при жесткой привязке максимального кода к значению Vref, что часто встречается в руководствах по микроконтроллерам. При 12 битах разница между ними составляет около 0.02%, что намного меньше погрешности любого реального опорного источника; главное — не смешивать эти подходы при сверке данных из разных источников.

    Что делать, если шаг квантования слишком велик?
    Передискретизация и усреднение позволяют повысить разрешение, если в сигнале присутствует небольшой шум: усреднение в 4× раза большего числа отсчетов дает примерно один дополнительный эффективный бит, а в 16× раз — два бита, при условии, что шум является белым и некоррелированным. Идеально чистый и неподвижный сигнал будет просто выдавать один и тот же код. В противном случае следует перейти на преобразователь с большей разрядностью или добавить каскад с программируемым усилением, чтобы сигнал занимал большую часть диапазона.