logo
HCS12 с применением языка С - royallib

4.24.1. Структура модуля pwm

Для генерации модулированных по длительности импульсных сигналов средствами модуля PWM необходимо рассчитать временные параметры этих сигналов в относительных единицах. Единицей измерения времени для модуля PWM служит период следования импульсов сигнала E_CLOCK, который является первичным сигналом тактирования программируемых делителей частоты и счетчиков в составе модуля PWM. Частота импульсной последовательности E_CLOCK равна частоте системной шины МК. Поскольку частота системной шины МК для каждого нового проекта выбирается разработчиком по совокупности технических требований к изделию, то для каждого проектируемого изделия длительность кванта времени модуля PWM может оказаться различной.

После того, как временные параметры генерируемых сигналов, выраженные в числе периодов E_CLOCK, подсчитаны, следует загрузить их в регистры периода PWPERx и регистры коэффициента заполнения PWDTYx (x — номер канала модуля PWM, x = 0…3).

Модуль PWM имеет в своем составе четыре канала, которые могут генерировать на своих выходах ШИМ-сигналы с независимыми временными параметрами. Каждый канал состоит из двоичного 8-разрядного счетчика PWCNTx с системой предварительных делителей, двух схем сравнения и двух программно доступных регистров PWPERx и PWDTYx. Если работа канала разрешена, то счетчик канала PWCNTx считает непрерывно. Код в счетчике PWCNTx нарастает с $00 до значения, которое записано в регистр периода PWPERx. В момент сравнения счетчик автоматически сбрасывается, и счет продолжается, начиная с кода $00. Код счетчика PWCNTx непрерывно сравнивается с кодом регистра коэффициента заполнения PWDTYx. Если код в регистре PWDTYx превышает текущий код счетчика PWCNTx, то на выходе канала формируется логический сигнал высокого уровня. В момент, когда код счетчика превысит код в регистре коэффициента заполнения, на выходе установится низкий логический уровень (рис. 4.97).

Рис. 4.97. Временная диаграмма, поясняющая формирование ШИМ-сигнала в модуле PWM. 

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

Как было отмечено ранее, модуль PWM в составе МК B32 имеет четыре 8-разрядных канала. Допускается объединение каналов попарно с целью получения 16-разрядного канала, способного генерировать ШИМ-сигнал с 16-разрядным разрешением по коэффициенту заполнения и периоду следования импульсов. Используя программно устанавливаемые опции конфигурации, на основе модуля PWM с четырьмя каналами могут быть получены следующие структуры:

• Четыре независимых 8-разрядных генератора ШИМ-сигнала (HCS12: восемь 8-разрядных);

• Два независимых 16-разрядных генератора ШИМ-сигнала (HCS12: четыре 16-разрядных);

• Два 8-разрядных и один 16-разрядный генератор ШИМ-сигнала.

В 8-разрядных каналах значения коэффициента заполнения и кода периода могут изменяться от 0 до 255 (28–1). Для 16-разрядных каналов эти же параметры могут принимать значения от 0 до 65535 (216–1). Если задать код коэффициента заполнения равным коду периода, то выходной сигнал будет постоянным (без переключений между 1 и 0).

Объединенный 16-разрядный канал обладает всеми теми же свойствами, что и 8-разрядный. Он допускает регулирование периода и коэффициента заполнения, но отличается большей разрешающей способностью временной сетки в процессе регулирования. Например, минимальное значение коэффициента заполнения для 8-разрядного канала равно 1/256, в то время, как для 16-разрядного — 1/65536. Однако в 8-разрядном режиме достижимы большие частоты ШИМ-сигнала при той же базовой частоте тактирования канала.