Рассмотрим последовательность действий, которую необходимо проделать для инициализации модуля PWM:
• Для конкретного приложения следует определить разрешающую способность генерируемого ШИМ-сигнала, т.е. число дискретных отсчетов частоты таткирования канала в периоде и длительности импульса выходного сигнала канала. На основании полученных данных следует определить, в каком режиме, 8-разрядном или 16-разрядном, Вы будете использовать каналы модуля PWM;
• Для конкретного приложения следует определить требуемую частоту генерируемого ШИМ-сигнала. На основе полученных данных определить структуру подсистемы тактирования каналов модуля PWM;
• Установить биты CON23 и CON01 в регистре PWCLK для выбора 8-разрядного или 16-разрядного режима работы;
• Определить, будете ли Вы использовать режим центрированной или режим фронтовой ШИМ. В соответствие с выбранным режимом установить бит CENTR в регистре PWCTL;
• Определить активный уровень ШИМ-сигнала, в соответствии с выбором установить биты PPOL0…PPOL3 в регистре PWPOL;
• Назначить источники тактирования для каналов, для чего установить биты PCLK0…PCLK3 в регистре PWPOL;
• Установить коэффициенты деления для импульсных последовательностей CLOСK_A и CLOСK_B, используя для этого биты PCKA2…PCKA0 и PCKB2…PCKB0 регистра PWCLK;
• Установить для используемых каналов значения регистров периода и регистров коэффициента заполнения;
• Разрешить работу выбранных каналов модуля PWM, используя для этого биты PWEN0…PWEN3 регистра EPWM.
В конце данной главы в разделе самостоятельных заданий (задание 12) мы предложим Вам определить параметры инициализации модуля ШИМ самостоятельно. А пока приведем два примера.
Инициализация модуля PWM, пример 1
Определим параметры настройки модуля PWM для генерации ШИМ-сигнала с частотой 976 Гц и коэффициентом заполнения 66,7%.
Частоту тактирования канала ШИМ выберем равной 8МГц/32 = 250 кГц. Этой частотой будем тактировать 8-разрядный счетчик канала. Для формирования частоты 976 Гц потребуется 256 отсчетов частоты 250 кГц, что соответствует максимально возможному коэффициенту счета 8-разрядного счетчика периода канала.
Для формирования сигнала с коэффициентом заполнения 66,7% следует установить код периода, равный 256 отсчетам, а код коэффициента заполнения — 171 отсчету. Для формирования ШИМ-сигнала будем использовать канал 0 модуля PWM.
Программный фрагмент init_pwm.c производит начальную установку регистров специальных функций модуля PWM для генерации на выходе PP0 ШИМ-сигнала с частотой 976 Гц и коэффициентом заполнения 66,7%:
/*--------------------------------------------------------*/
/* Функция init_pwm задает начальные установки модуля PWM */
/*--------------------------------------------------------*/
void ini_pwm(void) {
PWTST = 0x00; /*выбрать нормальный режим работы модуля PWM*/
PWCTL = 0х00; /*выбрать режим фронтовой ШИМ*/
PWCLK = 0x28 /*канал 0 в 8разрядном режиме, коэфф. деления*/
/* частоты E_CLOСK равен 32*/
PWPOL = 0х01; /*установить высокий активный уровень сигнала*/
DDRP = 0хFF; /*настроить порт P на вывод*/
PWEN = 0x01; /*разрешить работу канала 0 модуля PWM */
PWPER0 = 255; /*установить код периода*/
PWDTY0 = 171 /*установить код коэффициента заполнения*/
}
/*--------------------------------------------------------*/
Инициализация модуля PWM, пример 2
В начале раздела 4.24, мы рассматривали пример использования широтно-импульсной модуляции для управления серводвигателем. Для напоминания структурная схема управления серводвигателем приведена на рис. 4.114. В рассматриваемом примере серводвигатель приводит в движение рулевой механизм радиоуправляемой модели автомобиля. Вращение серводвигателя обеспечивает отклонение рулевого механизма на определенный угол от центрального положения. Этот угол определяется средним значением напряжения, которое прикладывается к двигателю. Напряжение регулируется способом широтноимпульсной модуляции, тогда среднее значение напряжения прямопропорционально коэффициенту заполнения ШИМ-сигнала. Значение коэффициента заполнения передается по радиоканалу. Изменение длительности импульсов напряжения, прикладываемого к серводвигателю, при сохранении частоты следования импульсов вызывает поворот рулевого механизма на определенный угол. Допустимый для рулевого управления диапазон регулирования коэффициента заполнения составляет от 4,5 до 10 %. При этом частота следования импульсов напряжения на двигателе должна составлять 50 Гц.
Читать дальше