АЦП последовательного приближения
АЦП последовательного приближения запоминает входное напряжение на конденсаторе и подбирает код по одному биту, начиная со старшего: на каждый бит — одно сравнение. Такие АЦП стоят в большинстве микроконтроллеров и во внешних микросхемах вроде MCP3008.
Обновлено Редакция GAW
АЦП последовательного приближения (successive approximation register ADC, SAR ADC) — преобразователь, который находит код двоичным поиском. Он состоит из устройства выборки и хранения, компаратора, внутреннего ЦАП и регистра последовательного приближения.
Преобразование идёт в два этапа:
- Выборка. Входное напряжение заряжает внутренний конденсатор через ключ. У MCP3008 по даташиту Microchip — 20 пФ через около 1 кОм в течение 1,5 такта SPI.
- Подбор кода. Логика ставит старший бит в единицу, ЦАП выдаёт половину шкалы, компаратор сравнивает её с запомненным напряжением: если вход меньше — бит сбрасывается. Затем то же для следующего бита. На 10 бит нужно 10 сравнений — у MCP3008 преобразование занимает 10 тактов.
| АЦП | Разрядность | Время преобразования | Скорость |
|---|---|---|---|
| ATmega328P | 10 бит | 13 тактов АЦП, первое — 25 | до 15 тыс. выборок/с на полной точности |
| MCP3008 | 10 бит | 1,5 такта выборки + 10 тактов | до 200 тыс. выборок/с при 5 В |
Достоинство SAR — фиксированное и короткое время преобразования при умеренной разрядности, поэтому такие АЦП стоят почти во всех микроконтроллерах. Ограничения связаны с выборкой: источник сигнала должен успеть зарядить конденсатор, иначе код занижается — подробнее в статье о времени выборки АЦП. Кроме того, у SAR АЦП есть тактовые пределы: ATmega328P даёт полную точность при частоте АЦП 50–200 кГц, а MCP3008 теряет линейность, если такт ниже 10 кГц и конденсатор успевает разрядиться.
Качество АЦП описывают смещением, ошибкой усиления и нелинейностью INL и DNL. Внешний SAR АЦП MCP3008 разобран в карточке ADS1115 и MCP3008, тактирование АЦП AVR — в калькуляторе АЦП.
Частые вопросы
Как работает АЦП последовательного приближения?
Сначала входное напряжение запоминается на конденсаторе выборки. Затем логика ставит старший бит кода в единицу, внутренний ЦАП выдаёт соответствующее напряжение, компаратор сравнивает его со входом — и бит остаётся или сбрасывается. Так бит за битом до младшего: на N бит нужно N сравнений.
Почему первое преобразование АЦП AVR длиннее?
По даташиту ATmega328P обычное преобразование занимает 13 тактов АЦП, а первое после включения — 25: в дополнительное время инициализируется аналоговая часть. Поэтому первое значение после включения АЦП часто отбрасывают.
Почему SAR АЦП требует низкоомный источник сигнала?
За время выборки внутренний конденсатор должен зарядиться до входного напряжения через сопротивление ключа и источника. У MCP3008 это 20 пФ через около 1 кОм за 1,5 такта; если источник высокоомный, напряжение не успевает установиться, и Microchip предупреждает о росте ошибок.
Источники
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B, 2020) — гл. 24: 10-битный АЦП последовательного приближения; входная частота 50–200 кГц для полной точности; обычное преобразование — 13 тактов АЦП, первое после включения — 25 тактов; выборка и хранение
- Microchip. MCP3004/3008: 2.7V 4-Channel/8-Channel 10-Bit A/D Converters with SPI Serial Interface (DS20001295E, 2022) — разд. 4.0: АЦП последовательного приближения; выборка на внутренний конденсатор 20 пФ через ключ около 1 кОм в течение 1,5 такта, преобразование — 10 тактов, до 200 тыс. выборок/с при 5 В; большое сопротивление источника увеличивает ошибки
Нашли ошибку?
Смотрите также
- Время выборки АЦПЗаряд конденсатора выборки и сопротивление источника
- ADS1115 и MCP300816 бит I²C с усилителем против 10 бит SPI на 8 каналов: выводы, диапазоны, точность
- АЦП AVR: ADPS и кодЧастота АЦП, время преобразования, код по напряжению, ADMUX и ADCSRA
- INL и DNLНелинейность АЦП: неравные ступени и изгиб характеристики, пропущенные коды