Программа Сервисный Центр
0

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


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

Увеличение быстродействия ЦАП с широтно-импульсной модуляцией
Рисунок 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; видна
хорошая линейность.
Теги: ЦАП
 
 
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
 
 
 
Обратная связь

Наши партнеры

 

Опросы

Есть ли справедливость в жизни?
Конечно есть, уверен!
Вроде как должна быть, но...
Затрудняюсь ответить...
Какая справедливость? О чем Вы?
Эх.., нет правды на свете!

 

Облако тегов

Требуется для просмотраFlash Player 9 или выше.

Показать все теги
 

Календарь публикаций

«    Октябрь 2017    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 

Архив новостей

Сентябрь 2017 (4)
Август 2017 (36)
Июль 2017 (32)
Июнь 2017 (42)
Май 2017 (45)
Апрель 2017 (47)
 
Наверх Сервисные мануалы Даташиты Ремонт LCD, ЖК телевизоров LG Samsung Скрипт программы "Сервисный центр"