23.3.9
Output Control Block
The output control block takes care of the final conditioning of the pwmA' and pwmB' signals before
they go to the pins as the
MnPWMn
signals. Via a single register, the
PWM Output Enable
(PWNENABLE)
register, the set of PWM signals that are actually enabled to the pins can be modified.
This function can be used, for example, to perform commutation of a brushless DC motor with a
single register write (and without modifying the individual PWM generators, which are modified by
the feedback control loop). In addition, the updating of the bits in the
PWMENABLE
register can
be configured to be immediate or locally or globally synchronized to the next synchronous update
using the
PWM Enable Update (PWMENUPD)
register.
During fault conditions, the PWM output signals,
MnPWMn
, usually must be driven to safe values so
that external equipment may be safely controlled. The
PWMFAULT
register specifies whether during
a fault condition, the generated signal continues to be passed driven or to an encoding specified in
the
PWMFAULTVAL
register.
A final inversion can be applied to any of the
MnPWMn
signals, making them active Low instead of
the default active High using the
PWM Output Inversion (PWMINVERT)
. The inversion is applied
even if a value has been enabled in the
PWMFAULT
register and specified in the
PWMFAULTVAL
register. In other words, if a bit is set in the
PWMFAULT
,
PWMFAULTVAL
, and
PWMINVERT
registers, the output on the
MnPWMn
signal is 0, not 1 as specified in the
PWMFAULTVAL
register.
23.4
Initialization and Configuration
The following example shows how to initialize PWM Generator 0 with a 25-kHz frequency, a 25%
duty cycle on the
MnPWM0
pin, and a 75% duty cycle on the
MnPWM1
pin. This example assumes
the system clock is 20 MHz.
1.
Enable the PWM clock by setting its corresponding bit in the
RCGCPWM
register in the System
Control module (see page 398).
2.
Enable the clock to the appropriate GPIO module via the
RCGCGPIO
register in the System
Control module (see page 382).
3.
In the GPIO module, enable the appropriate pins for their alternate function using the
GPIOAFSEL
register. To determine which GPIOs to configure, see Table 26-4 on page 1797.
4.
Configure the
PMCn
fields in the
GPIOPCTL
register to assign the PWM signals to the appropriate
pins (see page 787 and Table 26-5 on page 1808).
5.
Configure the
PWM Clock Configuration (PWMCC)
register to use the PWM divide
(
USEPWMDIV
) and set the divider (
PWMDIV
) to divide by 2 (0x0).
6.
Configure the PWM generator for countdown mode with immediate updates to the parameters.
■ Write the
PWM0CTL
register with a value of 0x0000.0000.
■ Write the
PWM0GENA
register with a value of 0x0000.008C.
■ Write the
PWM0GENB
register with a value of 0x0000.080C.
7.
Set the period. For a 25-KHz frequency, the period = 1/25,000, or 40 microseconds. The PWM
clock source is 10 MHz; the system clock divided by 2. Thus there are 400 clock ticks per period.
Use this value to set the
PWM0LOAD
register. In Count-Down mode, set the
LOAD
field in the
PWM0LOAD
register to the requested period minus one.
June 18, 2014
1678
Texas Instruments-Production Data
Pulse Width Modulator (PWM)