ADS1115 и MCP3008 — внешние АЦП для микроконтроллеров
ADS1115 и MCP3008 — два самых популярных внешних АЦП для Arduino, ESP32 и Raspberry Pi. Первый — медленный, но точный 16-битный с усилителем и I²C, второй — быстрый 10-битный на восемь каналов с SPI. Разбираем по даташитам TI и Microchip, когда какой брать и как не потерять точность.
Обновлено Редакция GAW
ADS1115 — 16-битный АЦП TI с интерфейсом I²C, программируемым усилителем и внутренним опорным напряжением. MCP3008 — 10-битный АЦП Microchip последовательного приближения с SPI, восемью входами и внешним опорным. Вместе они закрывают большинство задач, где встроенного АЦП микроконтроллера не хватает.
Выводы
У ADS1115 вывод ALERT/RDY — открытый сток: компаратор или сигнал готовности преобразования, нужна подтяжка к VDD. У MCP3008 опорное напряжение подают на VREF — часто просто соединяют с питанием, и тогда код зависит от его точности.
Сравнение
| Параметр | ADS1115 | MCP3008 |
|---|---|---|
| Разрядность | 16 бит | 10 бит |
| Входы | 4 одиночных или 2 дифференциальных | 8 одиночных или 4 псевдодифференциальных |
| Скорость | 8–860 выборок/с | до 200 тыс./с при 5 В, 130 тыс. при 3,3 В, 75 тыс. при 2,7 В |
| Интерфейс | I²C, адреса 0x48–0x4B | SPI, режимы 0,0 и 1,1 |
| Питание | 2,0–5,5 В | 2,7–5,5 В |
| Опорное | внутреннее, диапазоны ±0,256…±6,144 В | внешнее VREF от 0,25 В до VDD |
| Ток при работе | 150 мкА типично | до 500 мкА при 5 В |
| Точность | смещение ±1 LSB типично (дифф.), усиление 0,01 % типично | INL и DNL до ±1 LSB, смещение до ±1,5 LSB |
Диапазоны ADS1115
Усилитель задаёт масштаб: шаг кода — диапазон, делённый на 215.
| Диапазон | Шаг кода | Входное сопротивление (дифф.) |
|---|---|---|
| ±6,144 В | 187,5 мкВ | 22 МОм |
| ±4,096 В | 125 мкВ | 15 МОм |
| ±2,048 В | 62,5 мкВ | 4,9 МОм |
| ±1,024 В | 31,25 мкВ | 2,4 МОм |
| ±0,512 В | 15,625 мкВ | 710 кОм |
| ±0,256 В | 7,8125 мкВ | 710 кОм |
Диапазоны ±6,144 и ±4,096 В — только масштаб: напряжение на входах всё равно не должно выходить за пределы от GND − 0,3 до VDD + 0,3 В. При питании 3,3 В и диапазоне ±4,096 В вход 3,3 В даст 3,3 / 0,000125 = 26 400 кодов из 32 767 — часть шкалы теряется, но это лучше, чем перегрузка входа. Шум на малых скоростях по таблице TI не превышает шага кода; на 860 выборках в секунду его размах вырастает в 2–4,6 раза. Цифровые выводы, в отличие от аналоговых, выдерживают до 5,5 В при любом питании.
Код MCP3008
По даташиту Microchip шаг кода — VREF / 1024, а код — 1024 · VIN / VREF. При VREF = 5 В шаг — 4,88 мВ, при 3,3 В — 3,22 мВ. Выборка длится 1,5 такта SPI, начиная с первого фронта тактового сигнала после спада CS: за это время вход должен зарядить внутренний конденсатор 20 пФ через ключ около 1 кОм, поэтому источник с большим сопротивлением увеличивает ошибки — подробнее в статье о времени выборки АЦП. Тактовую частоту ниже 10 кГц Microchip не рекомендует: конденсатор теряет заряд, и падает линейность.
Скорость 200 тыс. выборок в секунду достигается при такте 3,6 МГц — 18 тактов на выборку. Протокол SPI и режимы — в статье «Интерфейс SPI», адреса устройств на шине I²C — в статье об адресах I²C. Другие микросхемы — в разделе «АЦП».
Частые вопросы
Какой адрес I²C у ADS1115?
Зависит от того, куда подключён вывод ADDR: к GND — 0x48, к VDD — 0x49, к SDA — 0x4A, к SCL — 0x4B. Так на одной шине можно поставить четыре ADS1115, то есть 16 одиночных входов.
Можно ли измерить ADS1115 напряжение 5 В при питании 3,3 В?
Нет. Диапазон ±6,144 В — это только масштаб АЦП: TI запрещает подавать на аналоговые входы больше VDD + 0,3 В. При питании 3,3 В вход ограничен 3,6 В, поэтому 5 В подают через делитель. Цифровые выводы ADS1115 при этом выдерживают до 5,5 В.
Что выбрать: ADS1115 или MCP3008?
По задаче. Для медленных точных измерений — термопары через усилитель, тензомоста, шунта, напряжения батареи — ADS1115: 16 бит, дифференциальный вход, усилитель до диапазона ±0,256 В и внутреннее опорное. Для быстрого опроса многих потенциометров, джойстиков, аналоговых датчиков — MCP3008: 8 каналов и до 200 тыс. выборок в секунду, но всего 10 бит.
Почему MCP3008 показывает неточные значения с высокоомным датчиком?
Вход заряжает выборочный конденсатор 20 пФ через ключ около 1 кОм за 1,5 такта SPI. Если сопротивление источника велико, конденсатор не успевает зарядиться, и Microchip предупреждает о росте ошибок смещения, усиления и нелинейности. Помогают буферный операционный усилитель или более медленная тактовая частота.
Источники
- Texas Instruments. ADS111x Ultra-Small, Low-Power, I2C-Compatible, 860SPS, 16-Bit ADCs (SBAS444E, revised December 2024) — табл. 4-1 — выводы; разд. 5.1 — вход от GND − 0,3 до VDD + 0,3 В, цифровые входы до 5,5 В; разд. 5.5 — диапазоны ±0,256…±6,144 В, входное сопротивление, ошибки, ток 150 мкА; табл. 6-1 — шум; табл. 7-2 — адреса 0x48–0x4B
- Microchip. MCP3004/3008: 2.7V 4-Channel/8-Channel 10-Bit A/D Converters with SPI Serial Interface (DS20001295E, 2022) — табл. 3-1 — выводы; электрические характеристики: 200, 130 и 75 тыс. выборок/с при 5, 3,3 и 2,7 В, выборка 1,5 такта, ключ 1 кОм и 20 пФ, INL и DNL ±1 LSB; ур. 4-1, 4-2 — шаг и код; разд. 6.2 — тактовая не ниже 10 кГц
Нашли ошибку?
Смотрите также
- Микросхемы АЦПВнешние АЦП: разрядность, скорость, опорное, интерфейс, карточки
- Младший разряд (LSB)Шаг квантования АЦП VREF / 2^N и ошибка ±½ LSB
- Время выборки АЦПЗаряд конденсатора выборки и сопротивление источника
- Адрес I²C7-битный адрес ведомого и байт адреса с битом R/W
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR