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

4.24.2. Режимы центрированной и фронтовой шим

Каждый из каналов может работать в режиме фронтовой ШИМ или в режиме центрированной ШИМ. В режиме фронтовой ШИМ счетчик текущего кода канала работает только в режиме инкрементирования. Его код изменяется от $00 до кода в регистре периода PWPERx. Далее счетчик сбрасывается, и процесс счета повторяется с кода $00.

В режиме центрированной ШИМ счетчик сначала считает от $00 до кода регистра периода, далее направление счета изменяется, и в вычитающем режиме код счетчика доходит до $00. Далее процесс повторяется.

Логика работы компараторов, которые участвуют в формировании импульса, длительность которого пропорциональна коду регистра коэффициента заполнения, полностью аналогична рассмотренной ранее. В результате, при фронтовой ШИМ импульс будет сформирован в начале периода сигнала, начиная с кода счетчика $00 (рис. 4.98). При центрированной ШИМ импульс с регулируемой длительностью будет формироваться в начале и в конце периода сигнала, в то время как в середине периода на выходе будет формироваться низкий логический уровень (рис. 4.99).

Рис. 4.98. Модуль PWM в режиме фронтовой ШИМ

Рис. 4.99. Модуль PWM в режиме центрированной ШИМ

Для каждого из режимов работы (фронтовая или центрированная ШИМ) имеется возможность выбора активного уровня модулированного по длительности импульса ШИМ-сигнала. Длительность импульса с высоким логическим уровнем пропорциональна коду в регистре коэффициента заполнения PWDTYx при PPOL = 1. При PPOL = 0 аналогичным образом регулируется длительность временного интервала с низким логическим уровнем, как показано на рис. 4.98 и 4.99.

При одинаковой частоте тактирования и одинаковых кодах в регистрах периода и коэффициента заполнения длительность импульса и период формируемого сигнала для фронтовой и центрированной ШИМ будут различаться.

Для фронтовой ШИМ (CENTR = 0) расчет временных параметров выходного сигнала следует производить по следующим формулам:

• Период ШИМ-сигнала равен

TPWM = (PWPERx + 1)/fx

• Длительность импульса с высоким активным уровнем при PPOLx = 1 равна

TIMP = (PWDTYx + 1) / [(PWPERx + 1) × fx]

Коэффициент заполнения в этом же режиме равен

γ =(PWPERx – PWDTYx)/[(PWPERx + 1) × fx] × 100%

• Длительность импульса с высоким активным уровнем при PPOLx = 0 равна

TIMP =(PWPERx – PWDTYx) / [(PWPERx + 1) × fx]

Коэффициент заполнения в этом же режиме равен

γ = (PWDTYx + 1)/[(PWPERx + 1) × fx] × 100%,

где PWPERx — десятичный эквивалент кода в регистре периода PWPERx, PWDTYx — десятичный эквивалент кода в регистре коэффициента заполнения PWDTYx, PPOLx — бит выбора полярности сигнала канала в регистре конфигурации PWPOL, CENTR — бит выбора формы сигнала в регистре управления PWCTL, fx  — частота тактирования счетчика канала с номером «x».

Для центрированной ШИМ (CENTR = 1) расчет временных параметров выходного сигнала следует производить по формулам:

• Период ШИМ–сигнала равен

TPWM = 2 × (PWPERx + 1)/fx

• Длительность импульса с высоким активным уровнем при PPOLx = 1 равна

TIMP = 2 × (PWDTYx + 1) / [(PWPERx + 1) × fx]

Коэффициент заполнения в этом же режиме равен

γ = (PWPERx – PWDTYx)/[(PWPERx + 1) × fx] × 100%

• Длительность импульса с высоким активным уровнем при PPOLx = 0 равна

TIMP = 2 × (PWPERx – PWDTYx) / [(PWPERx + 1) × fx]

Коэффициент заполнения в этом же режиме равен

γ = [(PWDTYx + 1)/(PWPERx + 1)] × 100%,

Обратите внимание, что при одинаковой частоте тактирования и одинаковых кодах в регистрах периода и коэффициента заполнения длительность импульса и период формируемого сигнала центрированной ШИМ будет в два раза больше, чем при фронтовой ШИМ. А коэффициент заполнения при этом остается одинаковым, поскольку является величиной относительной.