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

Инициализация модуля pwm, пример 2

В начале раздела 4.24, мы рассматривали пример использования широтно-импульсной модуляции для управления серводвигателем. Для напоминания структурная схема управления серводвигателем приведена на рис. 4.114. В рассматриваемом примере серводвигатель приводит в движение рулевой механизм радиоуправляемой модели автомобиля. Вращение серводвигателя обеспечивает отклонение рулевого механизма на определенный угол от центрального положения. Этот угол определяется средним значением напряжения, которое прикладывается к двигателю. Напряжение регулируется способом широтноимпульсной модуляции, тогда среднее значение напряжения прямопропорционально коэффициенту заполнения ШИМ-сигнала. Значение коэффициента заполнения передается по радиоканалу. Изменение длительности импульсов напряжения, прикладываемого к серводвигателю, при сохранении частоты следования импульсов вызывает поворот рулевого механизма на определенный угол. Допустимый для рулевого управления диапазон регулирования коэффициента заполнения составляет от 4,5 до 10 %. При этом частота следования импульсов напряжения на двигателе должна составлять 50 Гц.

Рис. 4.114. Использование ШИМ для поворота рулевого колеса радиоуправляемой модели автомобиля.

Определим параметры настройки модуля PWM для генерации ШИМ-сигнала с частотой 50 Гц и коэффициентом заполнения 4,5…10,0 %. Предположим, что частота импульсной последовательности E_CLOСK равна 8 МГц. Тогда период следования импульсов E_CLOСK составляет:

TECLOCK = 1/fECLOCK = 1/8 МГц = 125 нс

Период следования формируемого ШИМ-сигнала составляет:

TPWM = 1/fPWM = 1/50 Гц = 20 мс

Число периодов импульсной последовательности E_CLOСK, которое должно быть отсчитано для формирования периода ШИМ-сигнала, составляет:

KE_CLOCK = TPWM/TE_CLOCK = 20 мс/125 нс = 160 000

Подсчитанное число слишком велико, чтобы его можно было разместить не только в 8-разрядном, но и 16-разрядном регистре. Поэтому при конфигурации модуля PWM необходимо воспользоваться программируемым делителем частоты E_CLOСK. Максимальное значение коэффициента этого делителя составляет 128: 160 000/128 = 1250.

Именно такое число отсчетов следует использовать для генерации ШИМ-сигнала с частотой 50 Гц. Число 1250 может быть размещено в 16-разрядном регистре, поэтому мы будем использовать объединение двух 8-разрядных каналов модуля PWM в один 16-разрядный. Аналогичным способом следует вычислить коды, соответствующие диапазону возможных коэффициентов заполнения 4,5…10,0%.

Запишите код инициализации модуля PWM для управления серводвигателем рулевого механизма самостоятельно, используя блок схему рис. 4.115 и программный фрагмент init_pwm.

Рис. 4.115. Последовательность действий МК при обслуживании модуля PWM