ЭФО предлагает со своего склада новую серию преобразователей интерфейсов USB UART компании FTDI FT232RNL-REEL

Увеличение быстродействия ЦАП с широтно-импульсной модуляцией

Texas Instruments MSP430F5132

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

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

Увеличение быстродействия ЦАП с широтно-импульсной модуляцией
Рисунок 1. RC-фильтр нижних частот выделяет среднее
значение сигнала ШИМ.

RC-фильтр удаляет все непостоянные компоненты, в результате чего остается среднее значение сигнала UOUT. Если период T импульсов ШИМ равен 63 периодам тактовой частоты, постоянное напряжение UOUT может иметь одно из 64 дискретных значений от 0 до 63, что соответствует 6-битному разрешению.

Увеличение быстродействия ЦАП с широтно-импульсной модуляцией
Рисунок 2. Размах пульсаций на выходе фильтра (синяя
кривая) должен быть меньше веса LSB.

Чтобы сгладить выходной сигнал UOUT, постоянная времени t RC-фильтра нижних частот должна быть достаточно большой. Пульсации ∆UOUT должны быть меньше веса младшего значащего бита (LSB). Наихудшему случаю соответствует коэффициент заполнения 50% (Рисунок 2). Если постоянная времени t намного больше периода повторения импульсов T, для тока заряда конденсатора IC и изменения напряжения на конденсаторе ∆UOUT будут приближенно справедливы следующие соотношения:

и из равенства

получим, что

Для 6-битного ЦАП напряжение ∆UOUT должно быть меньше VCC/64, что потребует фильтра с постоянной времени t = RC ≥ 16×T.

Небольшой численный пример. В маломощных микроконтроллерах часто используется кварцевый генератор 32768 Гц, и эта частота взята для синхронизации блока ШИМ. При 6-битной ШИМ период T равен 64/32768 ≈ 2 мс, что требует постоянной времени 32 мс. Установления напряжения 6-битного ЦАП надо ждать 5t (160 мс). Очень медленно. В этой статье объясняется, как можно ускорить процесс.

Как правило, блоки ШИМ микроконтроллеров могут формировать более одного сигнала ШИМ. Посмотрим, что получится, если суммировать выходы двух 3-битных ЦАП на основе ШИМ (DACH и DACL), где амплитуда выхода DACL перед точкой суммирования уменьшена в восемь раз. Результирующий сигнал действует как 6-битный ЦАП, но с одним важным преимуществом перед обычным вариантом: период T будет равен лишь восьми периодам тактовой частоты, и требуемая постоянная времени t равна 1/8 от прежней, что ускоряет установление выходного напряжения в восемь раз. Это легко сделать с помощью резисторов RC-фильтра для двух сигналов ШИМ (PWMH и PWML) (Рисунок 3).

Увеличение быстродействия ЦАП с широтно-импульсной модуляцией
Рисунок 3. Комбинация двух ЦАП на основе ШИМ.

Выходной сигнал UOUT определяется выражением

где

DPWMH – коэффициент заполнения импульсов PWMH,
DPWML – коэффициент заполнения импульсов PWML.

Идея была реализована на микроконтроллере MSP430F5132 компании Texas Instruments (Листинг 1).

Листинг 1. Коды инициализации и записи в 6-битный (3+3) ЦАП на основе ШИМ.

// конфигурирование ШИМ - 32 кГц / 8 = 4 кГц :: 6 бит в двух ШИМ, выполняется только раз при включении питания
TA0CCR0 = 7;                               // считать до 7 (включительно)
TA0CTL = TASSEL__ACLK | MC_1 | TACLR;
TA0CCR1 = 0;     TA0CCTL1 = OUTMOD_6;      // переключение/установка
TA0CCR2 = 0;     TA0CCTL2 = OUTMOD_6;      // переключение/установка

// использование :: запись в блок ШИМ для получения требуемого выходного значения ЦАП
DAClevel++;                                // следующий уровень ЦАП, DAClevel типа char
TA0CCR1 = (DAClevel >> 3) & 7;             // установка PWMH: MSB 3 бита
TA0CCR2 = (DAClevel     ) & 7;             // установка PWML: LSB 3 бита

Увеличение быстродействия ЦАП с широтно-импульсной модуляцией
Рисунок 4. Осциллограммы сигналов на выходе ЦАП, основанных на ШИМ.
Синий: для схемы на Рисунке 1 (время установления 160 мс)
Фиолетовый: для схемы на Рисунке 3 (время установления 20 мс).

Используя резисторы с допуском 1%, можно сделать 7-битный ЦАП (Рисунок 5). На этот раз шестибитный ЦАП образован сигналами двух трехбитных ШИМ, а значение старшего значащего бита (MSB) просто устанавливается записью «0» и «1» в порт P3.7 (Листинг 2).

Увеличение быстродействия ЦАП с широтно-импульсной модуляцией
Рисунок 5. Реализация 7-битного ЦАП на основе ШИМ.

Листинг 2. Коды инициализации и записи в 7-битный (3+3+1) ЦАП на основе ШИМ.

// конфигурирование ШИМ - 32 кГц / 8 = 4 кГц :: 7 бит в двух ШИМ и одном цифровой выводе, выполняется только раз при включении питания
// то же, что в секции настройки конфигурации Листинга 1

// назначение :: запись в компараторы Таймеров значений, необходимых для установки требуемого напряжения на выходе ЦАП
DAClevel++;                                // следующий уровень ЦАП, DAClevel типа char
TA0CCR1 = (DAClevel >> 3) & 7;             // установка PWMH, MSB, 3 бита
TA0CCR2 = (DAClevel     ) & 7;             // установка PWML,  LSB,  3 бита
if (DAClevel & BIT6) P3OUT |= BIT7; else P3OUT &= ~BIT7;      // установка MSB, не ШИМ

Здесь скорость увеличилась еще больше. Простой ЦАП на основе ШИМ имел бы период, равный 128 периодам тактовой частоты (128/32768 Гц = 3.9 мс), и требовал бы фильтра с постоянной времени t = 32·T = 125 мс и временем установления 5×125 мс = 625 мс. Как видно из осциллограммы на Рисунке 6, установление происходит за 40 мс – в 16 раз быстрее. Дальнейшего сокращения времени установления можно добиться, используя ФНЧ более высокого порядка.

Увеличение быстродействия ЦАП с широтно-импульсной модуляцией
Рисунок 6. Осциллограммы сигналов на выходе схемы на Рисунке 5; видна
хорошая линейность.

Ссылки

Материалы по теме

  1. Datasheet Texas Instruments MSP430F5132

EDN

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

На английском языке: A Faster PWM-Based DAC

27 предложений от 16 поставщиков
MSP430 CPUXV2 MSP430F5xx Microcontroller IC 16-Bit 25MHz 8KB (8K x 8) FLASH 38-TSSOP
EIS Components
Весь мир
MSP430F5132IRSBT
Texas Instruments
104 ₽
ЧипСити
Россия
MSP430F5132IDAR
Texas Instruments
119 ₽
AiPCBA
Весь мир
MSP430F5132IDAR
Texas Instruments
125 ₽
МосЧип
Россия
MSP430F5132IRSBT
Texas Instruments
по запросу
Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя