Найти тему
Будни инженера

Быстродействующий ШИМ (Fast PWM)

ШИМ - это Широтно-Импульсная Модуляция. На английском это звучит как Pulse Width Modulation (PWM). Сигнал с ШИМ часто используется в устройствах управления. Больше сведений о ШИМ можно найти здесь. Ну а в этой статье о работе таймера микроконтроллеров AVR в режиме ШИМ.

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

Кроме того, с помощью ШИМ удобно управлять такой нагрузкой (частотой вращения двигателя, например).

В микроконтроллерах AVR для формирования сигнала ШИМ используются те же регистры совпадения, которые работают в режиме CTC. Формирование сигнала может выполняться разными способами. Работа таймера в режиме “Быстродействующий ШИМ” (Fast PWM) показана на рисунке:

Сигнал с ШИМ формируется на специальном выходе микроконтроллера. На вход таймера подаются импульсы от системного генератора. Таймер находится в состоянии непрерывного счета. При переполнении таймера его содержимое сбрасывается в ноль, и счет начинается сначала. В режиме ШИМ переполнение таймера не вызывает прерываний.

На рисунке это показано в виде пилообразной кривой, обозначенной как TCNTn. Кривая представляет собой зависимость содержимого счетного регистра от времени.

Содержимое счетного регистра непрерывно сравнивается с содержимым регистра совпадения. Пока число в регистре OCRn больше, чем число в счетном регистре таймера (TCNTn), напряжение на выходе ШИМ равно логической единице. Когда же в процессе счета содержимое счетного регистра TCNTn станет больше содержимого регистра OCRn, на выходе ШИМ установится ноль.

В итоге на выходе мы получим прямоугольные импульсы (то есть ШИМ). Скважность этих импульсов будет зависеть от содержимого регистра OCRn. Чем меньше число в OCRn, тем выше скважность выходных импульсов. На рисунке показана скважность импульсов для двух разных значений регистра OCRn.

Если содержимое OCRn достигнет своего наибольшего значения, то импульсы на выходе ШИМ исчезнут, и там постоянно будет присутствовать логическая единица. При уменьшении числа в OCRn на выходе появятся импульсы малой скважности (длительность почти равна периоду). Если плавно уменьшать число в OCRn, то скважность будет плавно уменьшаться. Когда содержимое OCRn достигнет нуля, импульсы на выходе ШИМ также исчезнут, и там установится логический ноль.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить…