HRP-N3 - серия источников питания с максимальной пиковой мощностью в 350% от MEAN WELL
РадиоЛоцман - Все об электронике

Создайте ЦАП из АЦП микроконтроллера

Журнал РАДИОЛОЦМАН, август 2018

Vardan Antonyan

EDN

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

Немногие микроконтроллеры имеют встроенный ЦАП. И хотя всегда нетрудно подобрать дешевый внешний ЦАП, управляемый от микроконтроллера, вместо дополнительного компонента можно использовать незадействованные периферийные элементы. Для того чтобы превратить встроенный АЦП микроконтроллера в ЦАП, достаточно одного входа/выхода общего назначения (GPIO). Заряжая конденсатор при высоком уровне GPIO, можно установить требуемый аналоговый уровень. Конденсатор можно также разрядить низким уровнем на выходе GPIO, или сохранить его напряжение, переключив GPIO в третье состояние (Рисунок 1).

ПИД-алгоритм можно усовершенствовать для управления шириной и периодом импульсов, чтобы создать ЦАП из входа/выхода общего назначения. АЦП используется как часть петли обратной связи.
Рисунок 1. Использование токового зеркала может надежно защитить от разрушительной
токовой перегрузки две параллельные цепочки, состоящие из любого количества
мощных 350-миллиамперных светодиодов.

На первый взгляд, такой подход к реализации ЦАП кажется слишком грубым. Однако, если основная задача, решаемая контроллером, состоит в управлении процессом на основе ПИД-регулирования (ПИД – пропорционально-интегрально-дифференцирующий), и управляющее напряжение контролируется с помощью АЦП микроконтроллера, использование этого метода становится вполне обоснованным.

ПИД-алгоритм может использоваться для сравнения выходного напряжения с требуемым значением и вычисления соответствующей ошибки. При нулевой ошибке программный блок управления вводом/выводом устанавливает GPIO в третье состояние. Если сигнал ошибки положительный или отрицательный, блок управления устанавливает на выводе GPIO высокий уровень для заряда конденсатора или низкий уровень для его разряда. Значение ошибки микроконтроллер загружает в таймер для формирования пропорционального импульса. Таким образом, знак величины ошибки определяет характер цикла (заряд или разряд), а величина определяет длительность импульса. По завершении цикла можно установить линию ввода-вывода в третье состояние, чтобы сохранить выходное напряжение неизменным. Алгоритм может работать как программный цикл. Его можно вызывать по прерываниям от другого таймера. Для минимизации времени отклика убедитесь, что этот алгоритм выполняется с желаемым выходным значением, немного превышающим 2.2RC. Для полного заряда или разряда конденсатора через резистор R1 требуется дополнительное время.

Разрешение ЦАП зависит от нескольких факторов, главный из которых – разрешение АЦП. Разрешение ЦАП никогда не может быть лучше, чем у АЦП. Кроме того, на разрешение ЦАП влияет выбор переменных и разрешение таймера. Для реализации 10-битного ЦАП потребуется 16-разрядный таймер и 16-битные переменные для ПИД-алгоритма. Можно использовать таймер меньшей разрядности, но тогда придется чаще вызывать процедуру алгоритма. Из-за этого увеличится время установления и возрастет нагрузка на процессор.

Настраивая переменные ПИД-алгоритма, можно добиться на удивление хороших значений времени установления выхода при небольшом изменении напряжения на выходе ЦАП после установления. Температурная стабильность схемы ограничивается стабильностью источника опорного напряжения АЦП. Ни температурные характеристики R1 и C1, ни утечка C1 неблагоприятного влияния на стабильность ЦАП не оказывают. R1 и C1 выбираются исходя из требований конкретного приложения на основе требуемого времени установления. Для относительно медленного ЦАП можно увеличить частоту обновления, запуская алгоритм чаще, чем с периодом 2.2RC, и используя 8-разрядный таймер. Для буферизации выхода ЦАП можно использовать операционный усилитель, включенный повторителем напряжения, или обычный транзисторный эмиттерный повторитель. С помощью неинвертирующего усилителя выходной сигнал можно усилить, а если нужно передать лишь часть сигнала АЦП, следует добавить делитель напряжения.

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

На английском языке: Create a DAC from a microcontroller's ADC

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