48EPWM1 Configured as a Typical Master, EPWM2 Configured as a Slave ....................................... 69
49Control of Four Buck Stages. Here F
50Buck Waveforms for (Note: Only three bucks shown here).......................................................... 71
51Control of Four Buck Stages. (Note: F
52Buck Waveforms for (Note: F
53Control of Two Half-H Bridge Stages (F
54Half-H Bridge Waveforms for (Note: Here F
55Control of Dual 3-Phase Inverter Stages as Is Commonly Used in Motor Control ............................... 79
563-Phase Inverter Waveforms for (Only One Inverter Shown) ....................................................... 80
57Configuring Two PWM Modules for Phase Control................................................................... 82
58Timing Waveforms Associated With Phase Control Between 2 Modules.......................................... 83
59Control of a 3-Phase Interleaved DC/DC Converter.................................................................. 84
603-Phase Interleaved DC/DC Converter Waveforms for .............................................................. 85
The Enhanced Pulse Width Modulator (ePWM) module described in this reference guide is a Type 0
ePWM. See the TMS320x28xx, 28xxx DSP Peripheral Reference Guide (SPRU566) for a list of all
devices with a ePWM module of the same type, to determine the differences between the types, and for a
list of device-specific differences within a type. This reference guide includes an overview of the module
and information about each of its sub-modules:
•Time-Base Module
•Counter Compare Module
•Action Qualifier Module
•Dead-Band Generator Module
•PWM Chopper (PC) Module
•Trip Zone Module
•Event Trigger Module
Related Documentation From Texas Instruments
The following books describe the TMS320F2833x, 2823x module and related support tools that are
available on the TI website:
The enhanced pulse width modulator (ePWM) peripheral is a key element in controlling many of the power
electronic systems found in both commercial and industrial equipments. These systems include digital
motor control, switch mode power supply control, uninterruptible power supplies (UPS), and other forms of
power conversion. The ePWM peripheral performs a digital to analog (DAC) function, where the duty cycle
is equivalent to a DAC analog value; it is sometimes referred to as a Power DAC.
This reference guide is applicable for ePWM type 0 . See the TMS320x28xx, 28xxx DSP PeripheralReference Guide (SPRU566) for a list of all devices with an ePWM module of the same type, to determine
the differences between the types, and for a list of device-specific differences within a type.
1Introduction
An effective PWM peripheral must be able to generate complex pulse width waveforms with minimal CPU
overhead or intervention. It needs to be highly programmable and very flexible while being easy to
understand and use. The ePWM unit described here addresses these requirements by allocating all
needed timing and control resources on a per PWM channel basis. Cross coupling or sharing of resources
has been avoided; instead, the ePWM is built up from smaller single channel modules with separate
resources that can operate together as required to form a system. This modular approach results in an
orthogonal architecture and provides a more transparent view of the peripheral structure, helping users to
understand its operation quickly.
In this document the letter x within a signal or module name is used to indicate a generic ePWM instance
on a device. For example output signals EPWMxA and EPWMxB refer to the output signals from the
ePWMx instance. Thus, EPWM1A and EPWM1B belong to ePWM1 and likewise EPWM4A and EPWM4B
belong to ePWM4.
1.1Submodule Overview
The ePWM module represents one complete PWM channel composed of two PWM outputs: EPWMxA
and EPWMxB. Multiple ePWM modules are instanced within a device as shown in Figure 1. Each ePWM
instance is identical with one exception. Some instances include a hardware extension that allows more
precise control of the PWM outputs. This extension is the high-resolution pulse width modulator (HRPWM)
and is described in the TMS320x2833x, 2823x High-Resolution Pulse Width Modulator (HRPWM)Reference Guide (SPRUG02) . See the device-specific data manual to determine which ePWM instances
include this feature. Each ePWM module is indicated by a numerical value starting with 1. For example
ePWM1 is the first instance and ePWM3 is the 3rd instance in the system and ePWMx indicates any
instance.
The ePWM modules are chained together via a clock synchronization scheme that allows them to operate
as a single system when required. Additionally, this synchronization scheme can be extended to the
capture peripheral modules (eCAP). The number of modules is device-dependent and based on target
application needs. Modules can also operate stand-alone.
Each ePWM module supports the following features:
•Dedicated 16-bit time-base counter with period and frequency control
•Two PWM outputs (EPWMxA and EPWMxB) that can be used in the following configurations:
– Two independent PWM outputs with single-edge operation
– Two independent PWM outputs with dual-edge symmetric operation
•Asynchronous override control of PWM signals through software.
•Programmable phase-control support for lag or lead operation relative to other ePWM modules.
•Hardware-locked (synchronized) phase relationship on a cycle-by-cycle basis.
•Dead-band generation with independent rising and falling edge delay control.
•Programmable trip zone allocation of both cycle-by-cycle trip and one-shot trip on fault conditions.
•A trip condition can force either high, low, or high-impedance state logic levels at PWM outputs.
•All events can trigger both CPU interrupts and ADC start of conversion (SOC)
•Programmable event prescaling minimizes CPU overhead on interrupts.
•PWM chopping by high-frequency carrier signal, useful for pulse transformer gate drives.
Each ePWM module is connected to the input/output signals shown in Figure 1. The signals are described
in detail in subsequent sections.
www.ti.com
– One independent PWM output with dual-edge asymmetric operation
Figure 3 shows more internal details of a single ePWM module. The main signals used by the ePWM
module are:
•PWM output signals (EPWMxA and EPWMxB).
•Trip-zone signals (TZ1 to TZ6).
•Time-base synchronization input (EPWMxSYNCI) and output (EPWMxSYNCO) signals.
•ADC start-of-conversion signals (EPWMxSOCA and EPWMxSOCB).
•Peripheral Bus
www.ti.com
Figure 2. Submodules and Signal Connections for an ePWM Module
The PWM output signals are made available external to the device through the GPIO peripheral
described in the system control and interrupts guide for your device.
These input signals alert the ePWM module of fault conditions external to the ePWM module. Each
module on a device can be configured to either use or ignore any of the trip-zone signals. The TZ1 to
TZ6 trip-zone signals can be configured as asynchronous inputs through the GPIO peripheral.
The synchronization signals daisy chain the ePWM modules together. Each module can be configured
to either use or ignore its synchronization input. The clock synchronization input and output signal are
brought out to pins only for ePWM1 (ePWM module #1). The synchronization output for ePWM1
(EPWM1SYNCO) is also connected to the SYNCI of the first enhanced capture module (eCAP1).
Each ePWM module has two ADC start of conversion signals (one for each sequencer). Any ePWM
module can trigger a start of conversion for either sequencer. Which event triggers the start of
conversion is configured in the Event-Trigger submodule of the ePWM.
The peripheral bus is 32-bits wide and allows both 16-bit and 32-bit writes to the ePWM register file.
TBCTL0x00001NoTime-Base Control Register
TBSTS0x00011NoTime-Base Status Register
TBPHSHR0x00021NoExtension for HRPWM Phase Register
TBPHS0x00031NoTime-Base Phase Register
TBCTR0x00041NoTime-Base Counter Register
TBPRD0x00051YesTime-Base Period Register
CMPCTL0x00071NoCounter-Compare Control Register
CMPAHR0x00081YesExtension for HRPWM Counter-Compare A Register
CMPA0x00091YesCounter-Compare A Register
CMPB0x000A1YesCounter-Compare B Register
AQCTLA0x000B1NoAction-Qualifier Control Register for Output A (EPWMxA)
AQCTLB0x000C1NoAction-Qualifier Control Register for Output B (EPWMxB)
AQSFRC0x000D1NoAction-Qualifier Software Force Register
AQCSFRC0x000E1YesAction-Qualifier Continuous S/W Force Register Set
TZSEL0x00121YesTrip-Zone Select Register
TZCTL0x00141YesTrip-Zone Control Register
TZEINT0x00151YesTrip-Zone Enable Interrupt Register
TZFLG0x00161Trip-Zone Flag Register
TZCLR0x00171YesTrip-Zone Clear Register
TZFRC0x00181YesTrip-Zone Force Register
ETSEL0x00191Event-Trigger Selection Register
ETPS0x001A1Event-Trigger Pre-Scale Register
ETFLG0x001B1Event-Trigger Flag Register
ETCLR0x001C1Event-Trigger Clear Register
ETFRC0x001D1Event-Trigger Force Register
PCCTL0x001E1PWM-Chopper Control Register
HRCNFG0x00201YesHRPWM Configuration Register
(1)
(2)
(3)
www.ti.com
Table 1. ePWM Module Control and Status Register Set Grouped by Submodule
OffsetSize
Name
Locations not shown are reserved.
These registers are only available on ePWM instances that include the high-resolution PWM extension. Otherwise these
locations are reserved. These registers are described in the TMS320x2833x, 2823x High-Resolution Pulse Width Modulator(HRPWM) Reference Guide (SPRUG02) . See the device specific data manual to determine which instances include the
HRPWM.
EALLOW protected registers as described in the specific device version of the System Control and Interrupts Reference Guide
listed in Related Documentation From Texas Instruments.
Seven submodules are included in every ePWM peripheral. Each of these submodules performs specific
tasks that can be configured by software.
2.1Overview
Table 2 lists the seven key submodules together with a list of their main configuration parameters. For
example, if you need to adjust or control the duty cycle of a PWM waveform, then you should see the
counter-compare submodule in Section 2.3 for relevant details.
SubmoduleConfiguration Parameter or Option
Time-base (TB)
Counter-compare (CC)
Action-qualifier (AQ)
Dead-band (DB)
PWM-chopper (PC)
ePWM Submodules
Table 2. Submodule Configuration Parameters
• Scale the time-base clock (TBCLK) relative to the system clock (SYSCLKOUT).
• Configure the PWM time-base counter (TBCTR) frequency or period.
• Set the mode for the time-base counter:
–count-up mode: used for asymmetric PWM
–count-down mode: used for asymmetric PWM
–count-up-and-down mode: used for symmetric PWM
• Configure the time-base phase relative to another ePWM module.
• Synchronize the time-base counter between modules through hardware or software.
• Configure the direction (up or down) of the time-base counter after a synchronization event.
• Configure how the time-base counter will behave when the device is halted by an emulator.
• Specify the source for the synchronization output of the ePWM module:
–Synchronization input signal
–Time-base counter equal to zero
–Time-base counter equal to counter-compare B (CMPB)
–No output synchronization signal generated.
• Specify the PWM duty cycle for output EPWMxA and/or output EPWMxB
• Specify the time at which switching events occur on the EPWMxA or EPWMxB output
• Specify the type of action taken when a time-base or counter-compare submodule event occurs:
–No action taken
–Output EPWMxA and/or EPWMxB switched high
–Output EPWMxA and/or EPWMxB switched low
–Output EPWMxA and/or EPWMxB toggled
• Force the PWM output state through software control
• Configure and control the PWM dead-band through software
• Control of traditional complementary dead-band relationship between upper and lower switches
• Specify the output rising-edge-delay value
• Specify the output falling-edge delay value
• Bypass the dead-band module entirely. In this case the PWM waveform is passed through
without modification.
• Create a chopping (carrier) frequency.
• Pulse width of the first pulse in the chopped pulse train.
• Duty cycle of the second and subsequent pulses.
• Bypass the PWM-chopper module entirely. In this case the PWM waveform is passed through
Event-trigger (ET)• Enable the ePWM events that will trigger an interrupt.
Code examples are provided in the remainder of this document that show how to implement various
ePWM module configurations. These examples use the constant definitions shown in Example 1. These
definitions are also used in the C2833x/2823x C/C++ Header Files and Peripheral Examples (SPRC530) .
• Configure the ePWM module to react to one, all, or none of the trip-zone pins .
• Specify the tripping action taken when a fault occurs:
–Force EPWMxA and/or EPWMxB high
–Force EPWMxA and/or EPWMxB low
–Force EPWMxA and/or EPWMxB to a high-impedance state
–Configure EPWMxA and/or EPWMxB to ignore any trip condition.
• Configure how often the ePWM will react to each trip-zone pins :
–One-shot
–Cycle-by-cycle
• Enable the trip-zone to initiate an interrupt.
• Bypass the trip-zone module entirely.
• Enable ePWM events that will trigger an ADC start-of-conversion event.
• Specify the rate at which events cause triggers (every occurrence or every second or third
occurrence)
• Poll, set, or clear event flags
Example 1. Constant Definitions Used in the Code Examples
Each ePWM module has its own time-base submodule that determines all of the event timing for the
ePWM module. Built-in synchronization logic allows the time-base of multiple ePWM modules to work
together as a single system. Figure 4 illustrates the time-base module's place within the ePWM.
Figure 4. Time-Base Submodule Block Diagram
www.ti.com
2.2.1Purpose of the Time-Base Submodule
You can configure the time-base submodule for the following:
•Specify the ePWM time-base counter (TBCTR) frequency or period to control how often events occur.
•Manage time-base synchronization with other ePWM modules.
•Maintain a phase relationship with other ePWM modules.
•Set the time-base counter to count-up, count-down, or count-up-and-down mode.
•Generate the following events:
– CTR = PRD: Time-base counter equal to the specified period (TBCTR = TBPRD) .
– CTR = Zero: Time-base counter equal to zero (TBCTR = 0x0000).
•Configure the rate of the time-base clock; a prescaled version of the CPU system clock
(SYSCLKOUT). This allows the time-base counter to increment/decrement at a slower rate.
2.2.2Controlling and Monitoring the Time-base Submodule
Table 3 shows the registers used to control and monitor the time-base submodule.
Table 3. Time-Base Submodule Registers
RegisterAddress offsetShadowedDescription
TBCTL0x0000NoTime-Base Control Register
TBSTS0x0001NoTime-Base Status Register
TBPHSHR0x0002NoHRPWM Extension Phase Register
TBPHS0x0003NoTime-Base Phase Register
TBCTR0x0004NoTime-Base Counter Register
TBPRD0x0005YesTime-Base Period Register
(1)
This register is available only on ePWM instances that include the high-resolution extension (HRPWM). On ePWM modules that
do not include the HRPWM, this location is reserved. This register is described in the device-specific High-Resolution Pulse
Width Modulator (HRPWM) Reference Guide. See the device specific data manual to determine which ePWM instances include
this feature.
The block diagram in Figure 5 shows the critical signals and registers of the time-base submodule.
Table 4 provides descriptions of the key signals associated with the time-base submodule.
Figure 5. Time-Base Submodule Signals and Registers
CTR = PRDTime-base counter equal to the specified period.
CTR = ZeroTime-base counter equal to zero
CTR = CMPBTime-base counter equal to active counter-compare B register (TBCTR = CMPB).
CTR_dirTime-base counter direction.
CTR_maxTime-base counter equal max value. (TBCTR = 0xFFFF)
TBCLKTime-base clock.
www.ti.com
Table 4. Key Time-Base Signals
Input pulse used to synchronize the time-base counter with the counter of ePWM module earlier in the
synchronization chain. An ePWM peripheral can be configured to use or ignore this signal. For the first ePWM
module (EPWM1) this signal comes from a device pin. For subsequent ePWM modules this signal is passed
from another ePWM peripheral. For example, EPWM2SYNCI is generated by the ePWM1 peripheral,
EPWM3SYNCI is generated by ePWM2 and so forth. See Section 2.2.3.3 for information on the
synchronization order of a particular device.
This output pulse is used to synchronize the counter of an ePWM module later in the synchronization chain.
The ePWM module generates this signal from one of three event sources:
1. EPWMxSYNCI (Synchronization input pulse)
2. CTR = Zero: The time-base counter equal to zero (TBCTR = 0x0000).
3. CTR = CMPB: The time-base counter equal to the counter-compare B (TBCTR = CMPB) register.
This signal is generated whenever the counter value is equal to the active period register value. That is when
TBCTR = TBPRD.
This signal is generated whenever the counter value is zero. That is when TBCTR equals 0x0000.
This event is generated by the counter-compare submodule and used by the synchronization out logic
Indicates the current direction of the ePWM's time-base counter. This signal is high when the counter is
increasing and low when it is decreasing.
Generated event when the TBCTR value reaches its maximum value. This signal is only used only as a status
bit
This is a prescaled version of the system clock (SYSCLKOUT) and is used by all submodules within the
ePWM. This clock determines the rate at which time-base counter increments or decrements.
2.2.3Calculating PWM Period and Frequency
The frequency of PWM events is controlled by the time-base period (TBPRD) register and the mode of the
time-base counter. Figure 6 shows the period (T
down-count, and up-down-count time-base counter modes when when the period is set to 4 (TBPRD = 4).
The time increment for each step is defined by the time-base clock (TBCLK) which is a prescaled version
of the system clock (SYSCLKOUT).
The time-base counter has three modes of operation selected by the time-base control register (TBCTL):
•Up-Down-Count Mode:
In up-down-count mode, the time-base counter starts from zero and increments until the period
(TBPRD) value is reached. When the period value is reached, the time-base counter then decrements
until it reaches zero. At this point the counter repeats the pattern and begins to increment.
•Up-Count Mode:
In this mode, the time-base counter starts from zero and increments until it reaches the value in the
period register (TBPRD). When the period value is reached, the time-base counter resets to zero and
begins to increment once again.
•Down-Count Mode:
In down-count mode, the time-base counter starts from the period (TBPRD) value and decrements until
it reaches zero. When it reaches zero, the time-base counter is reset to the period value and it begins
to decrement once again.
The time-base period register (TBPRD) has a shadow register. Shadowing allows the register update to
be synchronized with the hardware. The following definitions are used to describe all shadow registers in
the ePWM module:
•Active Register
The active register controls the hardware and is responsible for actions that the hardware causes or
invokes.
•Shadow Register
direct effect on any control hardware. At a strategic point in time the shadow register's content is
transferred to the active register. This prevents corruption or spurious operation due to the register
being asynchronously modified by software.
The memory address of the shadow period register is the same as the active register. Which register is
written to or read from is determined by the TBCTL[PRDLD] bit. This bit enables and disables the TBPRD
shadow register as follows:
•Time-Base Period Shadow Mode:
The shadow register buffers or provides a temporary holding location for the active register. It has no
The TBPRD shadow register is enabled when TBCTL[PRDLD] = 0. Reads from and writes to the
TBPRD memory address go to the shadow register. The shadow register contents are transferred to
the active register (TBPRD (Active) ← TBPRD (shadow)) when the time-base counter equals zero
(TBCTR = 0x0000). By default the TBPRD shadow register is enabled.
memory address goes directly to the active register.
2.2.3.2Time-Base Clock Synchronization
The TBCLKSYNC bit in the peripheral clock enable registers allows all users to globally synchronize all
enabled ePWM modules to the time-base clock (TBCLK). When set, all enabled ePWM module clocks are
started with the first rising edge of TBCLK aligned. For perfectly synchronized TBCLKs, the prescalers for
each ePWM module must be set identically.
The proper procedure for enabling ePWM clocks is as follows:
1. Enable ePWM module clocks in the PCLKCRx register
2. Set TBCLKSYNC= 0
3. Configure ePWM modules
4. Set TBCLKSYNC=1
2.2.3.3Time-Base Counter Synchronization
A time-base synchronization scheme connects all of the ePWM modules on a device. Each ePWM
module has a synchronization input (EPWMxSYNCI) and a synchronization output (EPWMxSYNCO). The
input synchronization for the first instance (ePWM1) comes from an external pin. The possible
synchronization connections for the remaining ePWM modules are shown in Figure 7, Figure 8, and
Figure 9.
Scheme 1 shown in Figure 7 applies to the 280x, 2801x, 2802x, and 2803x devices. Scheme 1 also
applies to the 2804x devices when the ePWM pinout is configured for 280x compatible mode
(GPAMCFG[EPWMMODE] = 0).
Scheme 2 shown in Figure 8 is used by the 2804x devices when the ePWM pinout is configured for
A-channel only mode (GPAMCFG[EPWMMODE] = 3). If the 2804x ePWM pinout is configured for 280x
compatible mode (GPAMCFG[EPWMMODE] = 0), then Scheme 1 is used.
NOTE: All modules shown in the synchronization schemes may not be available on all devices.
Please refer to the device specific data manual to determine which modules are available on
a particular device.
Each ePWM module can be configured to use or ignore the synchronization input. If the TBCTL[PHSEN]
bit is set, then the time-base counter (TBCTR) of the ePWM module will be automatically loaded with the
phase register (TBPHS) contents when one of the following conditions occur:
•EPWMxSYNCI: Synchronization Input Pulse:
The value of the phase register is loaded into the counter register when an input synchronization pulse
is detected (TBPHS → TBCTR). This operation occurs on the next valid time-base clock (TBCLK)
edge.
The delay from internal master module to slave modules is given by:
– if ( TBCLK = SYSCLKOUT): 2 x SYSCLKOUT
– if ( TBCLK != SYSCLKOUT):1 TBCLK
•Software Forced Synchronization Pulse:
Writing a 1 to the TBCTL[SWFSYNC] control bit invokes a software forced synchronization. This pulse
is ORed with the synchronization input signal, and therefore has the same effect as a pulse on
EPWMxSYNCI.
•This feature enables the ePWM module to be automatically synchronized to the time base of another
ePWM module. Lead or lag phase control can be added to the waveforms generated by different
ePWM modules to synchronize them. In up-down-count mode, the TBCTL[PSHDIR] bit configures the
direction of the time-base counter immediately after a synchronization event. The new direction is
independent of the direction prior to the synchronization event. The PHSDIR bit is ignored in count-up
or count-down modes. See Figure 10 through Figure 13 for examples.
Clearing the TBCTL[PHSEN] bit configures the ePWM to ignore the synchronization input pulse. The
synchronization pulse can still be allowed to flow-through to the EPWMxSYNCO and be used to
synchronize other ePWM modules. In this way, you can set up a master time-base (for example, ePWM1)
and downstream modules (ePWM2 - ePWMx) may elect to run in synchronization with the master. See
the Application to Power Topologies Section 3 for more details on synchronization strategies.
2.2.4Phase Locking the Time-Base Clocks of Multiple ePWM Modules
The TBCLKSYNC bit can be used to globally synchronize the time-base clocks of all enabled ePWM
modules on a device. This bit is part of the device's clock enable registers and is described in the specific
device version of the System Control and Interrupts Reference Guide listed in Related Documentation
From Texas Instruments. When TBCLKSYNC = 0, the time-base clock of all ePWM modules is stopped
(default). When TBCLKSYNC = 1, all ePWM time-base clocks are started with the rising edge of TBCLK
aligned. For perfectly synchronized TBCLKs, the prescaler bits in the TBCTL register of each ePWM
module must be set identically. The proper procedure for enabling the ePWM clocks is as follows:
1. Enable the individual ePWM module clocks. This is described in the specific device version of the
System Control and Interrupts Reference Guide listed in Related Documentation From Texas
Instruments.
2. Set TBCLKSYNC = 0. This will stop the time-base clock within any enabled ePWM module.
3. Configure the prescaler values and desired ePWM modes.
4. Set TBCLKSYNC = 1.
www.ti.com
2.2.5Time-base Counter Modes and Timing Waveforms
The time-base counter operates in one of four modes:
•Up-count mode which is asymmetrical.
•Down-count mode which is asymmetrical.
•Up-down-count which is symmetrical
•Frozen where the time-base counter is held constant at the current value
To illustrate the operation of the first three modes, the following timing diagrams show when events are
generated and how the time-base responds to an EPWMxSYNCI signal.