Если очистить низкочастотным фильтром генерируемый микроконтроллером сигнал ШИМ, получится простейший ЦАП. Максимальная частота дискретизации такого ЦАП равна, в типичном случае, одной десятой частоты ШИМ. В статье предлагается новый подход к описанному в [1] методу, использующий генератор опорного пилообразного напряжения, отсчеты выходного сигнала которого выбираются и запоминаются в моменты времени, определяемые сигналами ШИМ. Такой подход позволяет повысить частоту дискретизации до частоты ШИМ.
![]() |
|
Рисунок 1. | Не показанный на схеме микроконтроллер генерирует сигналы для управления формированием пилообразного напряжения (OC4) и моментами выборки (OC1). |
С помощью схемы, изображенной на Рисунке 1, можно создать 10-разрядный ЦАП с выходным напряжением ±10 В и частотой дискретизации 20 кГц. Микроконтроллер dsPIC30F4011 (на схеме не показан), работающий на тактовой частоте 96 МГц, генерирует сигналы захвата OC1 и OC4. Поделенная на 4 тактовая частота поступает на вход внутреннего 16-разрядного таймера, период счета которого установлен равным 1200, что определяет частоту ШИМ 20 кГц. Сигнал OC4 почти все время имеет высокий уровень и опускается вниз на 1170 отсчете счетчика, инициируя начало генерации пилы. Микросхема IC1A с транзистором Q1 образуют прецизионный источник тока, линейно заряжающего конденсатор C2 в то время, когда Q2 выключен. Этот сигнал, инвертированный микросхемой IC3A, включает Q2 и удерживает его открытым в течение 30 периодов таймера, чтобы разрядить конденсатор C2 перед началом очередного цикла генерации пилообразного напряжения. IC1B буферизует пилообразное напряжение, усиливает его и сдвигает по уровню. Величина сдвига и усиление подстраиваются потенциометрами R2 и R5.
Спадающий фронт OC1 определяет момент выборки уровня пилообразного напряжения. На основании слова данных, которое должно быть преобразовано в выходное напряжение ЦАП, микроконтроллер определяет скважность импульсов OC1. Цепочка C3, R9 дифференцирует результирующий сигнал ШИМ, в результате чего на выходе IC3B образуются импульсы длительностью порядка 1 мкс, управляющие микросхемой выборки/хранения (УВХ) IC2. На выводе 5 IC2 формируется выходной сигнал ЦАП, последовательно проходящий через уровни −10, 0 и +10 В при кодах в регистре ШИМ 88, 600 и 1112, что соответствует 1024 отсчетам 10-разрядного ЦАП.
Смещение счета на 88 периодов дает возможность исключить нелинейность начального участка пилы, в результате чего ЦАП имеет ошибку линейности всего 20 мВ и точность ±40 мВ. Используя сигналы захвата OC2 и OC3, можно реализовать дополнительный ЦАП.
![]() |
|
Рисунок 2. | Продифференцированный задний фронт OC1 инициирует формирование импульса выборки в момент времени, соответствующий напряжению –5 В на выходе ЦАП. |
На Рисунке 2 показаны временные диаграммы сигналов на выходе ЦАП, соответствующие входному коду 256, то есть, одной четвертой полной 10-битной шкалы. OC4 определяет моменты начала генерации очередного периода двухполярного пилообразного сигнала с частотой 20 кГц на выводе 7 микросхемы IC1B. Уровень этого пилообразного напряжения выбирается и запоминается при коде в регистре таймера 256 + 88 = 344, что соответствует напряжению −5 В на выходе ЦАП.
Ссылки