Благодаря своей непреходящей простоте, ЦАП на основе ШИМ всегда будут занимать место в кулинарных книгах разработчиков, но, как правило, их полезность и привлекательность ограничиваются большим временем отклика и проблемой пульсаций ШИМ. Обычный способ ослабления пульсаций с помощью RC фильтра нижних частот никогда не позволяет избавиться от них полностью, и только делает время установления выходного напряжения мучительно долгим. Другой подход, показанный на Рисунке 1, основан на использовании синхронной выборки и хранения и лишен этого недостатка.
![]() |
||
Рисунок 1. | Функция выборки-хранения, выполняемая элементом S1, удаляет пульсации ШИМ. |
Описанная здесь идея базируется на изначально периодическом характере пульсаций ШИМ, что делает их одинаковыми по уровню в любой синхронно выбранной точке диаграммы напряжения VC1 (Рисунок 2). Поэтому, если синхронно выбирать напряжение VC1, как это делается в схеме на Рисунке 1 с помощью аналогового ключа S1 и конденсатора C2 (получается схема выборки-хранения), а затем переносить его на выходной конденсатор C3, результатом будет гладкое, свободное от пульсаций напряжение VOUT, независящее от того, насколько велики выбросы на VC1. Сказанное иллюстрируется графиками динамического режима на Рисунке 2.
![]() |
||
Рисунок 2. | За 15 циклов ШИМ точность ЦАП устанавливается на уровне 8 бит. |
Более того, поскольку синхронная выборка по своей сути исключает пульсации независимо от того, насколько мала постоянная времени RC1, из этого следует, что произведение RC1 может быть сделано достаточно небольшим. Это способно кардинально уменьшить время установления. Так, на Рисунке 1 период ШИМ TC = RC1 = 100 мкс, и установление выходного напряжения, соответствующего 8-битному разрешению, происходит за время, меньшее, чем 15·TC = 1.5 мс. Но, конечно же, как мы прекрасно знаем, у всего хорошего должен быть какой-то предел. Поэтому возникает вопрос: насколько коротким может быть сделано время RC1, и какими конструктивными факторами определяется это ограничение?
Ответ подскажет более внимательный взгляд на форму VC1: VOUT выбирается не из среднего значения VC1, а из максимумов пиков пульсаций. Поэтому
где амплитуда пульсаций
Отсюда видно, что суммирование этого нелинейного компонента с функцией выходного напряжения ЦАП VOUT делает передаточную функцию ЦАП также нелинейной, в результате чего ошибка интегральной нелинейности (INL) при указанных на схеме номиналах компонентов может достигать 8.3% от полной шкалы (Рисунок 3). Для многих приложений столь высокий уровень INL неприемлем. К счастью, есть простой (программный) способ решения проблемы: цифровая коррекция настроек ЦАП. Например, при использовании компонентов с номиналами из Рисунка 1 получаем
Если теперь выбрать другое значение TP:
член VRIPPLE из выражения для VOUT исчезнет, и 8-битный уровень INL будет восстановлен.
![]() |
||
Рисунок 3. | Ошибка нелинейности, обусловленная выпрямленными пульсациями. |
Необходимо упомянуть «необязательные» элементы VS и S2, которые формируют входной сигнал для RC1 из напряжения прецизионного опорного источника VS и, таким образом, позволяют избежать наложения шумов, характерных для источников питания логических схем (и, следовательно, проходящих вместе с сигналом ШИМ на выход). Разумеется, если требования к точности вашего приложения достаточно невысоки, VS и S2 можно опустить, и просто напрямую подключить R к сигналу ШИМ.
Подчеркнем еще раз сказанное в начале: одной из главных прелестей ШИМ ЦАП является их абсолютная простота.
![]() |
||
Рисунок 4. | Отклики ЦАП при трех различных настройках. |