Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт
Шрифт:
Интервал:
Закладка:
• Для конкретного приложения следует определить требуемую частоту генерируемого ШИМ-сигнала. На основе полученных данных определить структуру подсистемы тактирования каналов модуля 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 Гц.
Рис. 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
4.25. Ограничение энергии потребления
Используя мобильный телефон, Вы должны были заметить, что он переходит в режим экономичного расхода энергии аккумуляторной батареи после того, как Вы перестали им пользоваться. Все современные телефоны оснащены красочным дисплеем с подсветкой. После завершения разговора подсветка дисплея автоматически выключается, и будет оставаться в выключенном состоянии до тех пор, пока пользователь не начнет нажимать на кнопки панели управления. Однако через некоторое время после последнего нажатия дисплей опять выключится.
Все описанные действия имеют своей целью экономию энергии аккумуляторной батареи в те промежутки времени, когда телефоном не пользуются. Телефон переходит в режим низкого энергопотребления («sleep mode» — режим сна) и остается в нем до тех пор, пока не поступит звонок или пользователь нажмет на кнопки. В главе 6 мы подробно рассмотрим, как экономить энергию батареи в микропроцессорных системах. Мы также увидим, что энергия потребления МК, выполненных по CMOS технологии, пропорциональна частоте системной шины МК. Некоторые значения для токов потребления в различных режимах работы МК приведены в таблице рис. 4.116.
Частота внутренней системной шины Максимальные значения токов потребления 2 МГц 4 МГц 8 МГц Активный режим работы Однокристальный режим 15 мА 25 мА 45 мА Расширенный режим 25 мА 45 мА 70 мА Режим ожидания Wait (все периферийные модули отключены) Однокристальный режим 1,5 мА 3 мА 5 мА Расширенный режим 4 мА 7 мА 10 мА Режим останова STOP Однокристальный режим, (система тактирования выключена) –40 +85 (°C) 10 мА 10 мА 10 мА +85 +105 (°C) 25 мА 25 мА 25 мА +105 +125 (°C) 50 мА 50 мА 50 мАРис. 4.116. Ток, потребляемый МК семейства 68HC12 в различных режимах работы
Анализируя приведенные в таблице цифры, Вы можете увидеть ярко выраженную зависимость тока потребления МК от частоты тактирования. А также, что МК значительно снижает ток потребления в режимах ожидания WAIT и останова STOP.