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

Насколько точен ADS1115?

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

16 бит — это разрешение, то есть шаг шкалы. На диапазоне ±2,048 В шаг ADS1115 — 4,096 В / 65 536 = 62,5 мкВ. Но точность определяется не шагом, а ошибками, которые TI нормирует в разделе 5.5 даташита.

16 бит — для дифференциального входа. При измерении относительно земли ADS1115 выдаёт только положительные коды от 0000h до 7FFFh (0–32 767) — фактически 15 бит, шаг тот же 62,5 мкВ на 0–2,048 В; отрицательных напряжений на входах микросхема не принимает. Диапазоны ±4,096 и ±6,144 В не позволяют подать на вход больше VDD + 0,3 В, а наибольшую ошибку усиления 0,15 % TI нормирует только для диапазона ±2,048 В.

Бюджет ошибок

Наш расчёт для сигнала 2,000 В на диапазоне ±2,048 В, наибольшие значения по даташиту:

Источник ошибкиПо даташитуВ милливольтахВ отсчётах по 62,5 мкВ
Ошибка усиления при 25 °Cдо 0,15 %3,0 мВ48
Смещениедо ±3 LSB0,19 мВ3
Нелинейность (INL)до 1 LSB0,06 мВ1
Дрейф усиления, +30 °C от 25 °Cдо 40 ppm/°C2,4 мВ38

Без калибровки главная ошибка — ошибка усиления: 0,15 % соответствуют примерно 1/670 шкалы, то есть около 9,4 бита абсолютной точности. Типичное значение ошибки усиления — 0,01 %, и у большинства экземпляров будет лучше, но гарантирован только максимум.

После калибровки

Если измерить два известных напряжения — ноль и около верха шкалы — и пересчитывать коды по прямой, смещение и ошибка усиления уходят. Остаются нелинейность (до 1 отсчёта), шум и дрейфы: смещение плывёт на 0,005 LSB/°C, усиление — на 7 ppm/°C типично и до 40 ppm/°C. При стабильной температуре точность тогда приближается к разрешению, при колебаниях в десятки градусов — снова к единицам милливольт.

Сложить ошибки для своего случая поможет калькулятор бюджета ошибок АЦП, адреса, режимы и подключение ADS1115 — на странице ADS1115 и MCP3008. Сравнение со встроенным АЦП — в ответе «С какой точностью Arduino измеряет напряжение?».

Похожие вопросы

Сколько выборок в секунду можно брать без потери битов?

По таблице TI при диапазоне ±2,048 В и питании 3,3 В шум не съедает ни одного из 16 бит до 128 выборок в секунду. На 860 выборках в секунду разрешение без шума падает примерно до 15 бит. Для медленных датчиков выгодна низкая скорость: шум меньше.

Нужно ли внешнее опорное напряжение для ADS1115?

Нет: опорный источник встроен, и его погрешность уже входит в ошибку усиления 0,15 %. Если нужна точность лучше, ADS1115 калибруют по известному напряжению — внешнего опорного у этой микросхемы нет.

Точнее ли ADS1115, чем АЦП Arduino?

Да, и заметно: у ATmega328P 10 бит и абсолютная погрешность около 2 отсчётов из 1024, плюс ошибка опорного — питания платы. У ADS1115 в 64 раза больше кодов (при несимметричном входе — в 32 раза), а встроенный опорный с ошибкой усиления до 0,15 % стабильнее питания от USB.

Источники

  1. Texas Instruments. ADS111x Ultra-Small, Low-Power, I2C-Compatible, 860SPS, 16-Bit ADCs (SBAS444E, revised December 2024) — разд. 7 (Code Transition Diagram) — при несимметричном входе используются только коды 0000h–7FFFh; входы не принимают отрицательных напряжений, допустимо от GND − 0,3 до VDD + 0,3 В; разд. 5.5 (FSR ±2,048 В) — разрешение 16 бит без пропущенных кодов; INL не больше 1 LSB (8 SPS, по наилучшей прямой на 99 % шкалы); смещение ±1 LSB тип., до ±3 LSB (дифференциальный вход); дрейф смещения 0,005 LSB/°C; ошибка усиления 0,01 % тип., 0,15 % макс. при 25 °C (включает встроенный источник опорного); дрейф усиления 7 ppm/°C тип., 40 ppm/°C макс.; долговременный дрейф усиления ±0,05 % за 1000 ч при 125 °C; табл. 6-2 — разрешение без шума 16 бит до 128 SPS при ±2,048 В и 3,3 В, 15,07 бит при 860 SPS
  2. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B, 2020) — табл. 29-15 — для сравнения: АЦП ATmega328P 10 бит, абсолютная погрешность 2 LSB при тактовой 200 кГц (типично, VREF = VCC = 4 В)

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