Калькулятор розрядності 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 та помилками зміщення/підсилення перетворювача, допуском і шумом опорної напруги, а також схемою навколо нього. Саме тому в специфікаціях вказують 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× разів — два, за умови, що шум є білим та некорельованим — ідеально чистий, нерухомий сигнал просто повторюватиме один і той самий код. Крім цього, слід перейти на перетворювач із більшою розрядністю або додати каскад із програмованим підсиленням, щоб сигнал заповнював більшу частину діапазону.

    Розрахунок кроку LSB та параметрів квантування

    Аналого-цифровий перетворювач (ADC) трансформує безперервний аналоговий сигнал у дискретні цифрові відліки. Точність цього представлення фундаментально обмежена розрядністю перетворювача та опорною напругою, які разом визначають мінімальний крок напруги — значення молодшого значущого розряду (LSB).

    Для швидкого аналізу параметрів перетворення використовуйте онлайн-інструмент "Калькулятор розрядності ADC". Він обчислює крок LSB, рівні квантування, максимальну теоретичну помилку та ідеальне відношення сигналу до шуму (SNR). Інструмент також дозволяє виконувати конвертацію між напругою та цифровими кодами в обох напрямках і визначати необхідну розрядність для заданого кроку напруги.

    Кожне введене вами число залишається в цьому браузері — нічого не завантажується на сервер. Усі обчислення виконуються локально на вашому пристрої.


    Вхідні параметри та конфігурація

    Для проведення розрахунків у калькуляторі передбачено такі поля введення:

    • Розрядність N (біт): Ціле число від 1 до 32 — номінальна розрядність перетворювача.
    • Опорна напруга: Позитивне число, що задає опорний потенціал.
    • Одиниця опорної напруги: Одиниця вимірювання для опорної напруги (наприклад, V, mV, µV).
    • Вхідний діапазон: Вибір між варіантами "Однополярний · від 0 до Vref" та "Двополярний · від −Vref до +Vref".
    • Знаків після коми: Кількість десяткових знаків для відображення результатів.
    • Перетворити (опціонально): Вибір режиму конвертації між "Напруга → код" та "Код → напруга".
    • Вхідна напруга (опціонально): Значення напруги для перетворення в цифровий код.
    • Код (відліки) (опціонально): Ціле число від 0 до верхнього коду перетворювача для конвертації у напругу.
    • Одиниця напруги: Одиниця вимірювання для вхідної напруги або напруги коду.
    • Найменша зміна для розрізнення (опціонально): Цільовий крок напруги для розрахунку необхідної розрядності.
    • Одиниця кроку: Одиниця вимірювання для цільового кроку напруги.

    Для швидкого ознайомлення з роботою інтерфейсу передбачено кнопки "Завантажити приклад" та "Очистити".


    Теоретичні основи та математичні формули

    Калькулятор моделює ідеальний квантувач, де перший перехід коду відбувається на половині кроку (½ LSB), а крок LSB визначається як відношення діапазону повної шкали (FSR) до загальної кількості рівнів квантування.

    Нижче наведено математичні формули, які використовуються для розрахунків, та схему їхньої підстановки в інтерфейсі інструменту:

    Розмір кроку та рівні

    • Рівні квантування: Рівні = 2^N
    • Діапазон повної шкали (FSR):
      • Для однополярного діапазону: FSR = Vᵣef.
      • Для двополярного діапазону: FSR = 2 × Vᵣef.
    • Розмір кроку LSB: LSB = FSR / (2^N) Формула підстановки: LSB = FSR ÷ 2^N

    Показники шуму та динамічного діапазону

    • Макс. помилка квантування (±½ LSB): Найбільша теоретична помилка, що виникає через округлення аналогової величини до найближчого дискретного рівня. Формула підстановки: Макс. помилка квантування = ±LSB ÷ 2
    • Шум квантування (rms): Середньоквадратичне значення напруги шуму квантування для ідеального лінійного перетворювача. Формула підстановки: Шум квантування (rms) = LSB ÷ √12
    • Ідеальне SNR (синусоїда повної шкали): Теоретична межа відношення сигналу до шуму в децибелах. Формула підстановки: SNR = 6.02 × N + 1.76
    • Динамічний діапазон: Теоретичний динамічний діапазон ідеального перетворювача. Формула підстановки: Динамічний діапазон = 6.02 × N

    Конвертація у точці вимірювання

    При аналізі конкретної робочої точки калькулятор виконує двостороннє перетворення за такими правилами:

    Напруга → код

    Для визначення цифрового коду за вхідною напругою (Vᵢₙ) виконується округлення до найближчого цілого числа:

    • Однополярний режим: code = round(Vin ÷ LSB).
    • Двополярний режим: code = round((Vin + Vref) ÷ LSB).

    Код → напруга

    Для зворотного перетворення цифрового коду в аналогову напругу використовуються формули:

    • Однополярний режим: V = code × LSB.
    • Двополярний режим: V = code × LSB - Vᵣef.

    Помилка квантування у точці вимірювання

    Різниця між відновленою напругою коду та фактичною вхідною напругою:

    • Формула підстановки: Помилка квантування = напруга коду − вхідна напруга

    Скільки біт вам потрібно?

    У полі «Найменша зміна для розрізнення» можна вказати цільовий крок, і калькулятор визначить мінімальну кількість біт, потрібну для його розрізнення:

    • Формула підстановки: N ≥ log₂(FSR ÷ крок)

    Результат завжди заокруглюється вгору до цілого числа біт. Далі вимога порівнюється з обраною розрядністю: якщо перетворювач покриває ціль, інструмент підтверджує це, а якщо ні — показує, який крок здатен розрізнити поточний перетворювач.


    Обмеження та крайові випадки

    При роботі з реальними сигналами та граничними значеннями калькулятор застосовує такі правила:

    • Обмеження зверху (High Rail Clipping): Якщо вхідна напруга перевищує верхню межу діапазону, вихідний код обмежується максимальним значенням (2^N - 1). При цьому виводиться попередження: "Вхідне значення лежить вище верхньої межі: вихід насичується на верхньому коді, а показана помилка є справжньою залишковою помилкою — межа ±½ LSB більше не застосовується.". У розрахунках зазначається, що вхідне значення лежить поза межами діапазону, тому код обмежується.
    • Обмеження знизу (Low Rail Clipping): Якщо вхідна напруга нижча за нижню межу діапазону, код обмежується значенням 0. Виводиться попередження: "Вхідне значення лежить нижче нижньої межі: вихід насичується на коді 0, а показана помилка є справжньою залишковою помилкою — межа ±½ LSB більше не застосовується.".
    • Точно середина шкали: Якщо вхідна напруга відповідає точній середині шкали, калькулятор виводить повідомлення, що це точно середина шкали: половина діапазону відображається на цей код із нульовою помилкою квантування.

    Практичний приклад розрахунку

    При натисканні кнопки "Завантажити приклад" калькулятор використовує такі параметри: розрядність 12 біт, опорна напруга 3.3 V, однополярний діапазон.

    Результати розрахунку для цього прикладу:

    • Рівні квантування: 2¹² = 4096.
    • Верхній код: 4095.
    • Розмір кроку LSB: 3.3 V ÷ 4096 ≈ 805.6641 µV.
    • Макс. помилка квантування (±½ LSB): ± 402.832 µV.
    • Шум квантування (rms): ≈ 232.5752 µV rms.
    • Ідеальне SNR (синусоїда повної шкали): ≈ 74.01 dB.
    • Динамічний діапазон: ≈ 72.25 dB.

    Якщо задати вхідну напругу 1.65 V (точно середина шкали), вона відобразиться на код 2048 (двійковий: 1000 0000 0000, шістнадцятковий: 0x800) з нульовою помилкою квантування.

    Помилки введення та валідація

    Калькулятор перевіряє коректність введених даних і виводить відповідні повідомлення про помилки:

    • Нечислове введення: "‹field›: «‹token›» не є числом.".
    • Некоректна розрядність: "Розрядність має бути цілим числом біт від 1 до 32.".
    • Некоректна опорна напруга: "Опорна напруга повинна бути більшою за нуль.".
    • Нецілий код: "Код має бути цілим числом відліків.".
    • Код поза межами діапазону: "Код має бути від 0 до ‹max› для ‹bits›-бітного перетворювача.".
    • Некоректний крок для розрізнення: "Найменша зміна для розрізнення повинна бути більшою за нуль.".
    • Переповнення обчислень: "Значення або проміжний результат перевищує підтримуваний діапазон чисел.".

    Часті питання (FAQ)

    Чи означає 12-бітна розрядність 12-бітну точність?

    Ні. Розрядність — це лише ширина коду, тобто те, наскільки дрібно розділений діапазон. Точність обмежена параметрами INL та помилками зміщення/підсилення перетворювача, допуском і шумом опорної напруги, а також схемою навколо нього. Саме тому в специфікаціях вказують 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× разів — два, за умови, що шум є білим та некорельованим — ідеально чистий, нерухомий сигнал просто повторюватиме один і той самий код. Крім цього, слід перейти на перетворювач із більшою розрядністю або додати каскад із програмованим підсиленням, щоб сигнал заповнював більшу частину діапазону.