Муфты электромонтажные от производителя Fucon
РадиоЛоцман - Все об электронике

«Бесплатный» АЦП

Несмотря на растущую доступность и снижающуюся стоимость встроенной аналоговой периферии микроконтроллеров, скромный ШИМ ЦАП сохраняет свою привлекательность как «бесплатный» ЦАП [1], который может изменить назначение неиспользуемого вывода DIO (Data Input Output, вход/выход данных) и модуля счетчика/таймера и с добавленным простым низкочастотным фильтром пульсаций стать (пусть и несовершенным, но все же полезным) аналоговым выходом.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Хорошо, но как насчет другого конца сигнальной цепочки аналог/ цифра/ аналог? Насколько близко мы можем приблизиться к созданию (пусть несовершенного, но все же полезного) АЦП с нулевой стоимостью? Рисунок 1 с двумя транзисторами, четырьмя резисторами и одним конденсатором – это мой «бесплатный» (меньше $0.50 в единичных экземплярах) АЦП.

Схема «бесплатного» (почти) АЦП.
Рисунок 1. Схема «бесплатного» (почти) АЦП.

Вот как это работает.

При установке трехстабильного выхода DIO1 в высокоимпедансное состояние верхняя по схеме обкладка конденсатора C1 заряжается через резистор R1 и выбирает входное напряжение VIN, как показано в фазе ВЫБОРКА на Рисунке 2.

Фазы выборки, преобразования и калибровки «бесплатного» АЦП. (VQ1C - напряжение коллектора транзистора Q1).
Рисунок 2. Фазы выборки, преобразования и калибровки «бесплатного»
АЦП. (VQ1C – напряжение коллектора транзистора Q1).

Минимальная длительность фазы выборки при высокоимпедансном состоянии вывода DIO1 определяется желаемым количеством бит точности преобразования N и постоянной времени R1C1.

Минимальный интервал выборки равен R1C1•ln(2N).

Например, при показанных на схеме значениях RC и N = 8 минимальный интервал составляет порядка 1.5 мс. Если N = 12, минимальный интервал будет примерно 2 мс. Во время зарядки конденсатора C1 смещенная в прямом направлении и насыщенная база транзистора Q1 обеспечивает низкоимпедансный (около 1 Ом) путь к земле со смещением VQ1B, равным примерно 650 мВ. Фаза выборки заканчивается перепрограммированием DIO1 на вывод «лог. 0». В результате верхняя обкладка конденсатора C1 подключается к земле, а смещение VQ1B становится отрицательным, выключая транзистор Q1. Выключение Q1 устанавливает «лог. 1» на выводе DIO2, который должен быть запрограммирован таким образом, чтобы периферийный счетчик/таймер микроконтроллера начал подсчет тактовых импульсов (например, 1 МГц) и, таким образом, измерил продолжительность выключенного состояния транзистора Q1.

Выключенное состояние Q1 (и, следовательно, подсчет) продолжается до тех пор, пока отрицательный заряд на конденсаторе C1 не стечет и не позволит смещению VQ1B вернуться к значению 650 мВ. Время, за которое это произойдет (и, соответственно, количество подсчитанных импульсов), прямо пропорционально напряжению VIN и обратно пропорционально току коллектора транзистора Q2.

Интервал перезаряда конденсатора C1 равен

где

αQ2 – коэффициент передачи тока эмиттера транзистора Q2,
IQ2C – ток коллектора транзистора Q2,
VQ2E – напряжение эмиттера транзистора Q2.

Так что…
интервал подсчета составляет 51 мкс/В, и количество преобразований равно 51•FCLK(МГц)•VIN
…приблизительно. (FCLK – тактовая частота).

Резистор R2 предусмотрен для предотвращения насыщения транзистора Q2. R4 служит коллекторной нагрузкой для Q2 и подтяжкой для вывода DIO2. Совмещение времени выборки (1.5 мс) и преобразования (256 мкс для 8 бит при тактовой частоте 1 МГц) дает максимальную скорость преобразования примерно 560 выборок в секунду. Пока все в порядке.

Но как справиться с этим «приблизительно»? «Приблизительно» охватывает множество ограничений «бесплатной» схемы, включая температурные коэффициенты недорогих резисторов, конденсаторов, а также напряжений смещения и коэффициентов передачи тока транзисторов, поэтому просто проигнорировать это не получится.

К счастью, как видно из правой части Рисунка 2, этот «бесплатный» АЦП имеет функцию самокалибровки.

Для самокалибровки DIO1 программируется выходом, на который выводится «лог. 1» для зарядки конденсатора C1, а затем «лог. 0» для формирования интервала подсчета числа импульсов NCAL. Последующие результаты преобразования NCONV затем масштабируются как

что исправляет большинство ошибок, обусловленных перечисленными выше источниками. Но, к сожалению, не совсем все.

Остается только нескорректированное смещение нуля из-за минимального отклонения VQ1B, необходимого для выключения Q1 и формирования ненулевого интервала подсчета. Наименьшее необходимое для этого значение VIN составляет приблизительно

8-битного результата преобразования при полной шкале 5 В. (LSB – младший значащий бит).

Что оставляет только один очевидный источник потенциальной неточности – напряжение питания 5 В. Источники питания логики – не лучший выбор для аналогового опорного напряжения, и точность этого «бесплатного» АЦП в конечном итоге будет зависеть от того, насколько хорошим на самом деле окажется используемый источник.

Конечно, классический ШИМ ЦАП страдает точно такой же болезнью, связанной с ограничениями питания логики, но это не отменяет его полезности и популярности.

Что в некотором роде возвращает тему «бесплатной» аналоговой периферии к тому, с чего она началась. Пусть и несовершенный – но все же полезный?

Ссылка

  1. Dunn, Michael. "Three paths to a free DAC."

EDN

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: A "free" ADC

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя