Настала пора разобраться с тем, как работает широтно-импульсная модуляция. Попробуем вникнуть в физику процесса и заодно слегка зацепим режимы работы таймера.

pwm_logo_phase

Рассмотрим два графика, с периодически повторяющимся сигналом. Для простоты рассмотрим один период. Так вот, если взять обыкновенный вольтметр и измерить постоянное напряжение, то в первом случае мы измерим 5В. Вроде это не вызывает сомнений.

graph_pwm

Что же покажет вольтметр во втором случае?  Оказывается период такого сигнала будет эквивалентен некому постоянному напряжению. Величина напряжения, соответственно зависит от величины заполнения импульса (времени когда сигнал будет не нулевой). Условимся, что длительность наличия напряжения и отсутствия равны, т.е. 50% времени сигнал есть, 50% отсутствует, аналогом такого сигнала будет половина полного напряжения, соответственно вольтметр покажет 2,5В.

Кстати, величина заполнения называется скважностью сигнала. По аналогии, когда скважность 100%, сигнал имеет вид прямой линии. Если скважность 70%, то соответственно вольтметр покажет 0,7*5=3,5В. Данный принцип регулирования напряжения называется широтно-импульсной модуляцией.

Теперь перейдем к тому, как формируется скважность сигнала. Для начала, сгенерируем пилообразный сигнал амплитудой 5В. Частота может быть произвольной.

pwm_mutisim

Теперь заведем этот сигнал на компаратор настроенный на 2,5В. pwm_mutisim2

Что же мы увидим на выходе операционного усилителя? Пока сигнал пилы будет увеличиваться от нуля до 2,5В, на выходе компаратора будет минус питания. Но, так как минус питания у нас ноль, значит и на выходе ноль. Как только сигнал на неинвертирующем входе (т.е. пила) станет больше 2,5В, то на выходе ОУ появится 5В. Таким образом 50% времени ОУ будет выдавать логический ноль, 50% времени логическую единицу.

Теперь попробуем изменить скважность до 10%? Если 100% это 5В, то 10% — ? Пересчитываем пропорцией. (10*5)/100=0,5В, настраиваем компаратор на 0,5В и получаем заполнение в 10%.

pwm_mutisim4

Тут нас ждет разочарование вместо 10%, получили 90%, что вполне логично, от нуля до 0,5В на выходе ничего нет, но как только напряжение пилы перевалит это значение, на выходе компаратора появляется 5В. Таким образом, мы подошли к первому из режимов таймера, называемому неинвертированный быстрый ШИМ.

Да, это те самые настройки для него и минимальная скважность соответствует 0xFF.

fast_noninverted_pwm

Обратным, более удобным для использованием является режим инвертированного ШИМ. В этом случае достаточно поменять местами инвертирующий и неинвертирующий входы компаратора.

inverted_pwm_shc

Т.е. при маленьком напряжении на входе компаратора, на выходе будет сигнал с малой скважностью. Так более удобно и понятно. Для таймера режим называется Fast PWM, Output: Inverted.

inverted_pwm_multisim

Для режимов, Phase correct PWM и Phase and frequence correct PWM в качестве опорного используется треугольник. но  суть остается той же.

phase_correct_pwm_graph

Подобный подход позволяет получить более точное значение ШИМ. Однако несущая частота снижается в два раза. phase_correct_pwm

В режиме Phase Correct PWM, при изменении скважности, значение OCR обновляется только при достижении верхнего значения. Есть мнение, что это позволяет избежать смещения фазы сигнала.

Phase and Frequency Correct PWM хорош тем, что при изменении скважности, значение OCR обновляется только при достижении счетчиком нижнего значения. Т.е. это позволяет избежать смещения частоты сигнала.

Пока примеров использования Phase Correct и Phase and Frequency Correct привести не могу, ибо пока нет подходящего материала, но в ближайшем будущем возможно дополню статью. Зато примеров Fast PWM вполне достаточно.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Последние комментарии
  • Загрузка...
Счетчик
Яндекс.Метрика