We met one strange DPWM behavior on UCD3138 in one of our projects; under some test condition, there is no output signal for all DPWM;
We use UCD3138 as the controller of full bridge converter and use DPWM in normal mode; in this strange situation, through memory debugger, Dpwm0Regs.DPWMFILTERDUTYREAD shew that there should be max duty cycle output; while there is no PWM signal on all DPWMs;
We checked DPWMCTRL0.PWM_EN, LoopMuxRegs.GLBEN and MiscAnalogRegs.GLBIOEN, all of them enabled the DPWM;
MiscAnalogRegs.GLBIOEN’s reading was 0x14004000, if we write 0x1400407F to disable DPWM and write 0x14004000 to enable DPWM again, without changing anything else, there was still no DPWM output;
LoopMuxRegs.GLBEN’s reading was 0x50F, if we write 0X50F again, the write was success, but there was no DPWM output; if we write 0x500 to disable DPWM and write 0x50F to enable DPWM again, without changing anything else, all DPWM came back;
DPWMCTRL0.PWM_EN’s reading was 0x01, if we write 0X01 again, the write was success, but there was no DPWM output; if we write 0x00 to disable PWM and write 0x01 to enable PWM again, without changing anything else ,this DPWM would come back;
The DPWM could recovery by reset LoopMuxRegs.GLBEN or DPWMCTRL0.PWM_EN, but their original values were right to enable DPWM, why?