TMS320F28388D: ePWM Deadband Inquiry

Part Number: TMS320F28388D

Dear Team,

I have a question regarding the ePWM module and more specifically the Dead-Band Generator submodule.

 

What is the expected behavior of the deadband submodule when the ePWM is setup in up-down count mode, active high complementary signal pairs output, and the selected CMPA value is too close to 0 or PRD such that the following conditions are met (CMPA < Deadband/2) or (CMPA > PRD – (Deadband)/2)?

 

The following excerpt from the ‘spruii0f’ reference manual describes that the actions specified by the AQCTL register do not take effect. To avoid this behavior, it suggests setting both the CAU and CAD to the same behavior (both set or both clear):

 

From our testing, it appears that when (CMPA < Deadband/2) or (CMPA > PRD – (Deadband)/2) the AQCTL register is still in effect due to the complementary side being implemented but the impacted side stays low. This seems to conflict with the AQCTL register being ignored.

 

Examples:

 

 

 

Please let us know if you have any questions.

 

Thank you,

Daniel Waleniak

 

 

  • Hi Daniel,

    An expert will get back to you.

    Regards,
    Harisyam

  • Hi Daniel,

    Dead-Band Boundary Behavior on TMS320F28388D

    Summary

    Your observation is correct and consistent with the documented behavior — it's not a conflict. The key is understanding the signal processing order within the ePWM module.

    Explanation

    The Dead-Band submodule sits downstream of the Action-Qualifier (AQ) submodule in the signal path 1. Here's what happens at the boundary conditions:

    1. Action-Qualifier generates the base signal — AQCTL still produces edges based on CAU/CAD events as configured.

    2. Dead-Band applies rising/falling edge delays — When the pulse width produced by the AQ is narrower than the configured dead-band delay, the dead-band module effectively "swallows" the pulse on the affected output.

    3. Result: The impacted side (e.g., ePWMxA) stays low because the dead-band delay exceeds the available pulse width, while the complementary side (ePWMxB) continues to operate because it derives its signal from the opposite edge, which still has sufficient timing margin 2.

    Why This Isn't a Conflict

    The TRM statement that "actions specified by AQCTL do not take effect" refers to the net result at the final output — not that the AQ register is literally bypassed. The AQ still generates its signal, but the dead-band processing renders it ineffective on the affected output. The complementary output still responds because the dead-band module is actively processing the AQ output to generate it 3.

    Recommended Workaround

    As the TRM suggests, when these boundary conditions are met 3:

    • Set both CAU and CAD to the same action (both Set or both Clear) to produce a known, predictable output state
    • Use shadow mode to ensure the AQCTL update occurs synchronously with the PWM carrier cycle
    • Clamp CMPA values in software to stay outside the restricted range: keep CMPA ≥ Deadband/2 and CMPA ≤ PRD – Deadband/2

    This ensures both outputs behave predictably rather than having one side active and the other stuck low.

    Follow up: Have you tested the workaround of dynamically modifying AQCTL (both CAU and CAD set to the same action) when CMPA enters the boundary region, and if so, does it produce the expected behavior on both outputs?


    1. TMS320F28388D DBRED and DBFED with AQCSFRC - E2E Forum
    2. TMS320F28388D Strange Duty Ratio of ePWM - E2E Forum
    3. TMS320F28388D Technical Reference Manual (SPRUII0F)

    Thanks

    Srikanth

  • Hello Srikanth,

    This is acceptable, but we do still have a couple lingering questions on this:

    1. Can we get a breakdown of how the deadband module behaves when it is suppressing the signal?
    2. More specifically, will the expected output, that gets suppressed, always be low? Or is it still creating a complement of the signal and it drops the pulse width if the result is narrower than the configured dead-band delay?

    Thank you,

    Daniel Waleniak

  • Hi Daniel,

    When the active pulse width is narrower than the configured dead-band delay, the deadband module does not create a complement and then "trim" it—it swallows the pulse entirely. The output holds a constant state for that PWM cycle rather than producing a narrowed pulse 1.

    Specifically, in active-high complementary mode:

    Output State during suppression
    EPWMxA Stays low
    EPWMxB Stays high

    This is confirmed behavior: the deadband logic recognizes that the input pulse cannot accommodate the required dead time, so it blocks the pulse from appearing on either output entirely 2. There is no intermediate state where a shortened complement is generated—it's binary: either the pulse is wide enough to pass through with dead-band applied, or it's suppressed completely.

    The mechanism is that the falling-edge delay consumes the entire low time of the input signal when the delay exceeds the pulse width, resulting in no transition on the output 3. This is intentional to prevent shoot-through in half-bridge topologies 4.

    If this suppression is problematic (e.g., causing THD issues near zero-crossing in inverter applications), a common workaround is to clamp the minimum compare value: CMPA = deadband_counts + calculated_duty, ensuring the pulse always exceeds the dead-band threshold 4.

    1. TMS320F280049C ePWM output when low pulse width will not satisfy the desired deadband
    2. TMS320F280049C ePWM deadband module output for low duty cycle PWM signal
    3. LM3S9B96 Datasheet - Dead-Band Generator
    4. PWM issue at zero crossing in micro-inverter
    Thanks
    Srikanth