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.

TM4C1294NCPDT dead band control inverts pwmB (FED) invoking PWMnDBCTRL Enable set 1 and clear 0.

Guru 55603 points

It would seem there are undocumented and multiple modes of dead band delay control in the TM4C/LM3S PWM peripherals. The PWMnDBCTRL ENABLE acts more like a Polarity bit of dead band pwmB output rather than simply an ENABLE control. 

The oddest mode seems to occur after PWMnDBRISe/FALL registers have been initialized with a value, PMWnDBCTRL ENABLE set and some time later in program flow clearing PWMnDBCTRL ENABLE bit 0 thusly inverts the pwmB output of dead band generator to the opposite polarity. No need to say the programmer would then deduce the dead band is disabled when in fact the polarity of pwmB has changed and polarity of pwmA remains untouched. Invert of pwmB is necessary for creating proper drive current in 3 phase commutation but should perhaps Not be labeled as the ENABLE bit. That gives the impression typical logic if it ain't enabled then it surely must be disabled and pass through mode.

Tivaware sets PWMnDBCTRL ENABLE 1 asserts a non-inverted pwmB/pwmA RED/FED and ENABLE later cleared 0 inverts pwmB output. 

Suspect this toggle Polarity has escaped past documentation clearing PWMnDBCTRL ENABLE 0 re-inverts dead band pwmB after the initial setting of FED/RED which also sets PWMnDBCTRL ENABLE bit 1 at that time. Clearing ENABLE 0 leaves both RED/FED asserting in PWM cycles (Inverted ENABLED pwmB ) when it was cleared 0 (disabled) in PWMnDBCTRL.

Note below the Piccolo F280 has multiple modes of dead band and gives a nice illustration of the various wave forms depending on the mode set by the Polarity bit.

 

 

  • BTW Piccolo table 2-13 mode 6 comes closest to the behavior being described above post (set, reset inverts pwmB). Notice points 6:7 Bypass modes in table 2-13 are seem reversed in the table, likely by mistake.

    That of course if By passing pwmA