Tool/software:
I seem to be getting some missed PWM pulses on the low side of my half-bridge when using a very large dead-time. This causes the synchronous bootstrap FET in the half-bridge to never turn on so the high-side FET can't turn on either.
Here's what I'm trying to do:
I'm controlling a 3-phase bidirectional DC-DC converter using a C2000 F28388D microcontroller.
PWM frequency is 500kHz.
Using HRPWM.
Each phase is shifted by 120 degrees to minimize ripple on the output.
The half-bridge IC is an EPC2152 which has a synchronous bootstrap FET which turns on when the low side PWM signal is high to charge the bootstrap capacitor.
There is a back-to-back FET on the output of each phase to disconnect each phase from the load while the converter starts up.
The PWM duty cycle is controlled by a task running on the CLA to maintain the target current.
During converter startup, I want to achieve the following behavior:
1. Start with a very low duty cycle for a short period of time to charge the bootstrap capacitor. Small dead-time during this phase.
2. Set a fixed duty cycle to charge the output capacitors to the same voltage as on the output side of the back-to-back FET (there is a battery connected) to minimize the current transient across the FET when it gets enabled.
3. Set a very large dead-time to reduce the maximum current output of the converter. This dead-time is just under half of a PWM cycle. This large dead-time is set so that during start-up when we 'guess' an initial duty cycle (which is inevitably wrong), then the current flow between the system output and the converter is minimized. I want to have a very long dead-time, but have the on-times of the pulses to the high and low side FETs be proportion according to the duty cycle.
4. Enable the back-to-back FET, connecting the output of the converter to the system (there is a battery connected). At this point, there is a small transient current between the battery and the output capacitors of the converter to equalize the small voltage difference.
5. Enable the CLA task to control the duty cycle of the converter, with a target current of 0A. This task runs at 350kHz. After 1023 iterations of the CLA task (~3ms), an interrupt is generated on CPU1. At this point, the dead-time is still very large.
6. When the interrupt is generated, CPU1 checks the current to ensure it is stable near 0A (make sure the CLA is able to control the load). If the current is near 0, then decrease the dead-time.
7. Eventually, when the dead-time has reached the target dead-time (very small), then converter start-up is finished. We can now set whatever target current we want and the CLA will control the duty cycle to meet the current requirement.
I hope that setup makes sense.
Here's the problem:
When we set a very large dead-time (step 3), then the pulse on the low side of the DC-DC converter disappears, and causes the bootstrap voltage to fall because the synchronous bootstrap FET never turns on to charge it back up.
Any help would be appreciated. My guess is that I'm not using the configuration of the dead-time and duty cycle correctly and there is some setting or limit that I'm violating without knowing it.
