Other Parts Discussed in Thread: TM4C1294NCPDT
PWM0 Configuration:
PWM0 Up/Down count, dead band GEN local update, GEN sync, GEN sync global updates. PWM output update mode is set as sync local.
Conditions steps of PWM0 output call:
1. Cyclic enabling or disabling dead band delay register via PWMDBnCTRL for PWM0 specific test criteria. 2. Turn off all previous PWM output pins. 3. Assert a binary code change to PWMENABLE output register.
Issue:
The PWM output on GPIO pins delay period ends up as an unintended pulse period being posted after a new binary code and trapezoidal pulse is output on low side of inverter, versus an delay being appended to a new pulse. However the pulse output PWM-A (high side) of any generator seems to have the required delay period appended to the new output pulse but PWM0 generators may not be dropping PWM-B until after the pulse is output or something like that is occurring.
TM4C1294NCPDT data sheet states:
If the dead-band generator is enabled, the pwmB signal is lost and two PWM signals are generated based on the pwmA signal. The first output PWM signal, pwmA' is the pwmA signal with the rising edge delayed by a programmable amount. The second output PWM signal, pwmB', is the inversion of the pwmA signal with a programmable delay added between the falling edge of the pwmA signal and the rising edge of the pwmB' signal.
Question is should SW be made to return after enabling the dead band generators, now existing in step 1 in the call used to change binary code, step 3 above? Are dead band generators automatically updated but only after each local GEN count zero and that is not exactly synchronous to PWM0 Output mode sync local when step 3 is occurring after PWMnDBCTRL enable bits are set or cleared in step 1?
What is best method to enable and clear dead bands on 3 generators prior to cyclic binary code changes to PWMENABLE register output? Should the dead band PWMnDBCTRL enable bit handling be a post operative update only after the binary code change step 3? Who's on first to catch any shoot through balls or does it even matter in the first few and very low duty cycles of PWM motor control?