Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
Рис. 4.108. Формат регистров счетчика каналов PWCNTx
Число регистров периода PWPERx равно числу каналов ШИМ в модуле PWM. Все регистры PWPER0…PWPER3 — 8-разрядные. Формат регистров PWPER0…PWPER3 приведен на рис. 4.109. Период следования ШИМ-сигнала каждого канала определяется кодом, который записан в соответствующем регистре периода PWPERx:
Рис. 4.109. Формат
• для фронтовой ШИМ период сигнала равен
TPWM = (PWPERx + 1)/fx
• для центрированной ШИМ период сигнала равен
TPWM = 2 x (PWPERx + 1)/fx
где PWPERx — десятичный эквивалент кода в регистре периода PWPERx, fx — частота тактирования счетчика канала с номером «x».
Рис. 4.110.
Число регистров коэффициента заполнения PWDTYx также равно числу каналов ШИМ в модуле PWM. Все регистры PWDTY0…PWDTY3 — 8-разрядные. Формат регистров PWDTY0…PWDTY3 представлен на рис. 4.110. Длительность импульса в каждого канале определяется кодом, который записан в соответствующем регистре коэффициента заполнения PWDTYx:
• для фронтовой ШИМ длительность импульса равна
TIMP = (PWDTYx + 1) / [(PWPERx + 1) x fx]
• для центрированной ШИМ длительность импульса равна
TIMP = 2 x (PWDTYx + 1) / [(PWPERx + 1) fx]
Число регистров коэффициента заполнения PWDTYx также равно числу каналов ШИМ в модуле PWM. Все регистры PWDTY0…PWDTY3 — 8-разрядные. Формат регистров PWDTY0…PWDTY3 представлен на рис. 4.110. Длительность импульса в каждого канале определяется кодом, который записан в соответствующем регистре коэффициента заполнения PWDTYx:
• для фронтовой ШИМ длительность импульса равна
TIMP = (PWDTYx + 1) / [(PWPERx + 1) x fx]
• для центрированной ШИМ длительность импульса равна
TIMP = 2 x (PWDTYx + 1) / [(PWPERx + 1) x fx]
Коэффициент заполнения в обоих режимах равен
= [(PWDTYx + 1)/(PWPERx + 1)] x 100%,
где PWDTYx — десятичный эквивалент кода в регистре коэффициента заполнения PWDTYx, PWPERx — десятичный эквивалент кода в регистре периода PWPERx, fx — частота тактирования счетчика канала с номером «x».
Формат регистра управления модулем PWMCTL представлен на рис. 4.111. В этом разделе мы рассмотрим только бит CENTR этого регистра. Этот бит определяет форму выходных сигналов всех каналов модуля PWM. Если бит CENTR = 1, то в каналах реализуется центрированная ШИМ, при CENTR = 0 выходные сигналы
Рис. 4.111. Формат регистра управления PWCTL
Этот регистр используется только в специальных режимах работы МК. Его формат представлен на рис. 4.112. Более подробно мы не будем его рассматривать.
Рис. 4.112. Формат регистра PWTST
Обслуживание модуля PWM — альтернативная функция линий порта PORT P. Линии PP0…PP3 порта P могут использоваться не только в качестве выходов модуля PWM, но и как линии порта ввода/вывода общего назначения. Если работа соответствующих каналов модуля PWM разрешена, то линии порта P автоматически конфигурируются для работы в качестве выходов, на которых формируются ШИМ-сигналы. Если каналы модуля PWM не активизированы, то линии PP0…PP3 работают как обычные линии ввода/вывода. Направление передачи сигнала линиями PP0…PP7 определяется битами регистра направления передачи DDRP. Формат регистра DDRP приведен на рис. 4.113. Запись 1 в соответствующий разряд регистра DDRP конфигурирует линию на вывод. Порт P обслуживается регистром данных PORTP (рис. 4.113).
Рис. 4.113. Формат регистров обслуживания порта PORTP
4.24.5. Примеры программирования модуля PWM
Изучая модуль PWM, читатель должен был заметить, что модуль требует инициализации достаточно большого числа регистров для определения параметров работы каналов ШИМ. Однако после активизации каналов их программное обслуживание состоит лишь в смене значений коэффициента заполнения и реже, периода следования выходной импульсной последовательности.
Рассмотрим последовательность действий, которую необходимо проделать для инициализации модуля PWM:
• Для конкретного приложения следует определить разрешающую способность генерируемого ШИМ-сигнала, т.е. число дискретных отсчетов частоты таткирования канала в периоде и длительности импульса выходного сигнала канала. На основании полученных данных следует определить, в каком режиме, 8-разрядном или 16-разрядном, Вы будете использовать каналы модуля PWM;
• Для конкретного приложения следует определить требуемую частоту генерируемого ШИМ-сигнала. На основе полученных данных определить структуру подсистемы тактирования каналов модуля PWM;
• Установить биты CON23 и CON01 в регистре PWCLK для выбора 8-разрядного или 16-разрядного режима работы;
• Определить, будете ли Вы использовать режим центрированной или режим фронтовой ШИМ. В соответствие с выбранным режимом установить бит CENTR в регистре PWCTL;
• Определить активный уровень ШИМ-сигнала, в соответствии с выбором установить биты PPOL0…PPOL3 в регистре PWPOL;
• Назначить источники тактирования для каналов, для чего установить биты PCLK0…PCLK3 в регистре PWPOL;