2. Широтно-импульсная модуляция. Понятие широтно-
импульсной модуляции. Различные режимы широтно-импульсной модуляции. Режим быстрый ШИМ (Fast PWM). ШИМ без фазового сдвига (Phase Correct PWM).
Понятие ШИМ.
Широтно-импульсная модуляция (ШИМ) (Pulse-width modulation - PWM) – приближение желаемого сигнала (многоуровневого или непрерывного) к действительным бинарным сигналам с двумя фиксированными уровнями – ноль или единица, так чтобы их значения за некоторый промежуток времени в среднем были равны.
Формально этот процесс можно записать в следующем виде:
где x(t) – желаемый входной сигнал в пределе от t1 до t2, ∆Ti –
продолжительность i -го ШИМ-импульса с амплитудой A; ∆Ti подбирается таким образом, чтобы суммарные площади (энергии) обеих величин были приблизительно равны за достаточно продолжительный промежуток времени.
Для наших МК: простой и эффективный способ задания аналогового сигнала цифровым методом (по сути, даёт нам возможность сделать простое подобие ЦАП, который не входит в состав периферии 8-битных
AVR МК, за исключением семейства XMega).
В аналоговом варианте преобразование синусоидального сигнала в ШИМ-последовательность и обратно схематически выглядит так:
•на один из входов компаратора подается исследуемый аналоговый сигнал Uвх
•на другой – сигнал опорной частоты Fоп, имеющий треугольную форму (рис. 4)
11
• при совпадении уровней двух сигналов на входах компаратора его выход переключается, формируя в результате последовательность,
состоящую из прямоугольных импульсов с несущей частотой Fоп, в
длительности которых закодирован уровень исходного аналогового сигнала
(т. е. его амплитуда)
• если далее требуется получить исходный аналоговый сигнал, эту последовательность необходимо пропустить через фильтр нижних частот,
чтобы отфильтровать опорную частоту и получить исходную синусоиду
В приведённом примере в качестве фильтра нижних частот используется обычная интегрирующая RC-цепочка (для получения более точных результатов преобразования необходимо использовать фильтр более высокого порядка, желательно на операционных усилителях).
Рис. 4. Принцип работы ШИМ-преобразователя При использовании ШИМ мы передаём на выход сигнал, состоящий из
высоких и низких логических уровней, то есть нулей и единиц. Затем эта последовательность пропускается через интегрирующую цепочку. В
результате интегрирования на выходе будет величина напряжения, равная площади под импульсами.
Меняя скважность сигнала (т. е. отношение длительности периода к длительности импульса) ШИМ-последовательности, можно плавно менять эту площадь, а значит и напряжение на выходе (рис. 5).
12
Рис. 5. Принцип ШИМ-преобразования
Во всех контроллерах семейства AVR режим широтно-импульсной модуляции достаточно легко реализовать с помощью таймеров.
13
Модуль для Attiny2313
Различные режимы широтно-импульсной модуляции.
Режим Fast PWM
В этом режиме таймер микроконтроллера считает от 0 до 255, после достижения переполнения счетный регистр сбрасывается в 0, и счет начинается снова (рис. 6). Когда значение в счетчике достигает значения,
записанного заранее в регистр сравнения, то соответствующий ему вывод ОСхn сбрасывается в 0. При обнулении счетчика этот вывод устанавливается в 1.
В общем случае частота fшим на выходе ОСхn микроконтроллера в режиме быстрой модуляции составляет:
где Ftcx – тактовая частота таймера, полученная путем деления тактовой частоты нашего МК на коэффициент деления N, задаваемый с помощью соответствующих разрядов регистра управления TCCRnB.
14
Рис. 6. Формирование ШИМ-сигнала в режиме быстрой модуляции.
Как это выглядит на практике
У таймера T1 есть два особых регистра сравнения OCR1A и OCR1B.
Когда значение в счётном регистре таймера достигает значения,
находящегося в регистре сравнения, то могут возникнуть следующие аппаратные события:
•Прерывание по совпадению
•Изменение состояния внешнего выхода сравнения OC1A или OC1B
(выводы)
Предположим, что мы настроили наш ШИМ генератор таким образом, чтобы в момент времени, когда значение в счетном регистре
TCNT1 больше, чем в регистре сравнения, то на выходе у нас была логическая 1, а когда меньше, то 0. Что при этом произойдет? Таймер будет считать как ему и положено, от 0 до 255, с той частотой, которую мы настроим при помощи системы предделителя. После переполнения таймер сбрасывается в 0 и счёт продолжается заново. На выходе имеем прямоугольные импульсы. Если мы попробуем увеличить значение в регистре сравнения, то ширина импульсов станет уже (рис. 7).
15
Рис. 7. Изменение ширины импульсов Теперь, меняя значение в регистре сравнения, можно менять
скважность выходного ШИМ сигнала. А если пропустить этот ШИМ сигнал через сглаживающую RC цепочку (интегратор), то получим аналоговый сигнал.
ШИМ с корректной фазой
Phase Correct PWM - ШИМ с корректной (или точной) фазой (более продвинутый режим). В данном случае 16-разрядный счетчик (в 8-битном таймере данный режим недоступен) работает как реверсивный. При этом он непрерывно считает сначала от 0 до max значения модуля счета (который определяется либо заданной разрядностью, либо содержимым режима захвата), затем обратно до 0. При достижении 0 счет опять начинается в сторону увеличения, далее цикл повторяется. Вывод OCxn при первом совпадении сбрасывается в 0, при втором устанавливается обратно в 1 (рис.
8). Частота ШИМ при этом падает вдвое вследствие увеличения периода.
16
Рис. 8. Сравнение режимов работы ШИМ Рассмотрим поподробнее регистры, ответственные за реализацию
различных |
режимов |
ШИМ |
(табл. |
1). |
Регистр TCCR0A – |
||
биты COM0A1:COM0A0 и COM0B1:COM0B0 определяют |
поведение |
||||||
выводов сравнения OC0A и OC0B соответственно. |
|
|
|||||
Таблица 1. Режимы работы вывода Ocnx |
|
|
|
||||
|
|
|
|
|
|
||
CO |
CO |
|
Режим работы вывода Ocnx |
|
|
||
Mnx1 |
Mnx0 |
|
|
|
|
|
|
|
|
|
|
||||
0 |
0 |
|
Вывод не подсоединен к регистру сравнения |
||||
|
|
|
|
||||
0 |
1 |
|
Поведение вывода зависит от режима, заданного |
||||
|
|
в WGM |
|
|
|
|
|
|
|
|
|
||||
1 |
0 |
|
Прямой ШИМ (сброс при совпадении и |
||||
|
|
установка при обнулении счета) |
|
|
|||
|
|
|
|
||||
1 |
1 |
|
Инверсный ШИМ (сброс при обнулении и |
||||
|
|
установка при совпадении) |
|
|
|
||
|
|
|
|
||||
Регистр TCCR0A – биты WGM01 и WGM00 (совместно с |
|
битами WGM02 и WGM03, которые находятся в регистре TCCR0B) задают
режим работы генератора.
17
(На всякий случай вырезка управляющих регистров из даташита на
Attiny2313) + сайт, где для 2313 расписаны все эти штуки прям хорошо
Програмирование в AVR Studio 5 с самого начала. Часть 8 » Журнал практической электроники Датагор (Datagor Practical Electronics Magazine)
3. Цифро-аналоговые преобразователи. Структурная схема ЦАП.
Параллельная схема суммирования токов. Последовательная схема
суммирования токов.
Микросхемы ЦАП классифицируются по следующим признакам:
По виду выходного |
1. С токовым выходов (тогда используется |
сигнала |
преобразователь) |
|
2. Выход в виде напряжения (обычно требуется) |
|
|
По типу цифрового |
1. С последовательным вводом |
интерфейса |
2. С параллельным вводом (устарели) |
|
|
По числу ЦАП на |
1. Одноканальные |
кристалле |
2. Многоканальные |
|
|
По быстродействию |
1. Стандартные |
|
2. Высокого быстродействия |
|
|
18
Структурная схема ЦАП (с суммированием токов)
UВЫХ = – IВХ*RОС
IВХ = d0*I0 + d1*2I0 + d2*4I0 + … + dn*2n*I0 , где d0, d1, … , dn – значение n-
го разряда (0 или 1)
Схема: Имеем n-ое количество источников тока, каждый из которых соответствует текущему разряду. Каждый следующий, выдает ток, в 2 раза больше предыдущего (от разряда к разряду).
Далее ток суммируется и преобразуются в выходное напряжение
(трансимпедансный усилитель)
d0, d1, … , dn – состояния разрядов. «0» если ключ разомкнут, тогда источник тока не участвует в общей схеме. «1» если ключ разомкнут, ток будет вносить вклад в общий.
19
Параллельная схема суммирования тока
UВЫХ = – IВХ*RОС
IВХ = UОП * (d0/R + d1*2/R + d2*4/R + … + dn*2n/R)
Схема: Источник опорного напряжения и делитель напряжения.
Каждое последующее сопротивление меньше предыдущего в 2 раза (от
разряда к разряду.
Недостатки параллельной схемы:
•При высокой разрядности сопротивления резисторов должны быть согласованы с высокой точностью (нужно очень точно подбирать резисторы)
•Жесткие требования к резисторам старших разрядов, поскольку разброс тока в них не должен превышать тока младшего разряда
•Сопротивления весовых резисторов могут отличаться в тысячи раз,
что затруднят реализацию таких резисторов на кристалле ИС
• Сопротивления резисторов старших разрядов могут быть соизмеримы с сопротивлением замкнутого ключа, что повышает погрешность
В зависимости от состояния ключей, ток, который берется из источника опорного напряжения будет разным, а это влияет на погрешность.
20