Functional Description and Application Information
PWM Control Module (PWM8B2C)
MM912F634
Freescale Semiconductor
105
The output waveform generated is shown in
Figure 28.
Figure 28. PWM Left Aligned Output Example Waveform
4.13.4.2.6
Center Aligned Outputs
NOTE
Changing the PWM output mode from left aligned to center aligned output (or vice versa)
while channels are operating can cause irregularities in the PWM output. It is recommended
to program the output mode before enabling the PWM channel.
For a center aligned output mode selection, set the CAEx bit (CAEx = 1) in the PWMCTL register, and the corresponding PWM
output will be center aligned.
The 8-bit counter operates as an up/down counter in this mode, and is set to up whenever the counter is equal to $00. The counter
compares to two registers, a duty register and a period register, as shown in the block diagram in
Figure 26. When the PWM
counter matches the duty register, the output flip-flop changes state, causing the PWM waveform to also change state. A match
between the PWM counter and the period register changes the counter direction from an up-count to a down-count. When the
PWM counter decrements and matches the duty register again, the output flip-flop changes state, causing the PWM output to
also change state. When the PWM counter decrements and reaches zero, the counter direction changes from a down-count back
to an up-count, and a load from the double buffer period and duty registers to the associated registers is performed, as described
down to 0. Thus the effective period is PWMPERx*2.
Figure 29. PWM Center Aligned Output Waveform
To calculate the output frequency in center aligned output mode for a particular channel, take the selected clock source frequency
for the channel (A, B, SA, or SB) and divide it by twice the value in the period register for that channel.
PWMx Frequency = Clock (A, B, SA, or SB) / (2*PWMPERx)
PWMx Duty Cycle (high time as a% of period):
— Polarity = 0 (PPOLx = 0)
Duty Cycle = [(PWMPERx-PWMDTYx)/PWMPERx] * 100%
— Polarity = 1 (PPOLx = 1)
Duty Cycle = [PWMDTYx / PWMPERx] * 100%
Period = 400 s
E = 100 s
Duty Cycle = 75%
PPOLx = 0
PPOLx = 1
PWMDTYx
Period = PWMPERx*2
PWMPERx