This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28379D: PWM Deadband question.

Part Number: TMS320F28379D

Good morning.
I have a question about ePWM's Deadband.
PWM Counter Mode uses Up/Down.
If the deadband is longer than the time from Up to Down of CMPA, do OutA and OutB always maintain Low and High outputs?
I'm not very good at English, so I'm not sure if the question is correct.
So I drew a chart.
Is the chart I drew correct?
Thank you for checking.

Additional question.
TBCTR became Zero as it counted down.
However, when the FED Deadband value is too large and it is not finished yet, is the FED value initialized?
Or does it affect the next cycle (TBCTR=Count Up) until the end of the FED value?

  • Hi Bae Su-min,

    Is the chart I drew correct?

    Your diagram looks correct for the first two set of outputs when RED/FED=50 and RED/FED=150.

    For the case when RED/FED is 200, EPWMA output is correct, the waveform will always be low. However, EPWMB output will have a 20% duty cycle. The value does get delayed onto the next cycle so it will require 150 from the current cycle (starting from the CMPA Down event) and then 50 from the next cycle. It will be high from 50-150 (until the CMPA UP event). Please let me know if a figure will help.

    However, when the FED Deadband value is too large and it is not finished yet, is the FED value initialized?
    Or does it affect the next cycle (TBCTR=Count Up) until the end of the FED value?

    I answered this in the first part but it will affect the next cycle until the end of the FED value.

    Best Regards,

    Marlyn

  • Bae Su-min,

    Here is some code you can use to test out different DB values with the setup you have. I only coded one output (EPWM2) but you can always just configure more outputs to call the setupEPWMActiveHighComplementary(base) function and maybe pass in the DB value as an input parameter.

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //
    // Included Files
    //
    #include "driverlib.h"
    #include "device.h"
    #include "board.h"
    #define EPWM_TIMER_TBPRD 250UL
    //
    // Function Prototypes
    //
    void initEPWMWithoutDB(uint32_t base);
    void setupEPWMActiveHighComplementary(uint32_t base);
    void main(void)
    {
    //
    // Initialize device clock and peripherals
    //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Best Regards,

    Marlyn

  • Thanks for your detailed explanation, I understand everything.
    Thank you very much for your help.