I am building a class D amplifer and I have getting shoot-through despite my best efforts to mitigate them using dead-time, miller clamping, and using high V_GS_threshold MOSFETs. Here is the circuit on LTspice:
The problem occurs when the high side switches on. You can see in the image below that the current through M1 and M2 spikes up. Building the circuit works but only if V2 is under 7 V and a PC audio volume less than 40%. If I increase either variable, the current spikes, activating my power supply's overcurrent protection and sometimes burning the UCC27282 MOSFET driver (I've burnt over 20 MOSFET drivers already, each costing me 4 CAD).
I initally thought I would need external dead-time, which I can add by adding two reverse parallel diodes on the inverting input of the comparator U3, thereby reducing Square-'s duty cycle:
Now going into the simulation, the shoot-through current is even worst, going from about 5 A previously, to about 27 A.
So, I undid the changes to the comparator U3 and decided I would test what would happen if I replaced the Square- signal on the MOSFET driver's LI with ground (I think doing this might affect the bootstrap circuit as the bootstrap capacitor is now charging through a higher impedance path via the load) and this is what I get.
WOW! 40 A of shoot-through current?! How is the low-side MOSFET turning on even though its gate voltage is zero? Or... is it? Upon further inspection there appears to be spike of 1 V of V_GS before completely going to zero. But the 1 V spike occurs when the shoot-through current drops and 1 V is less than the IRFZ44N's V_GS_threshold of 2 V. Is this actually not shoot-through current? Does the MOSFET enter the linear region? How am I in engineering?
If I replace the 10 kΩ resistors on the MOSFET's gate to source with 1 kΩ, there is a slight decrease in shoot-through current, it's almost negligible. I ended up reading about miller clamp circuits and thought that its low ON impedance would quickly discharge the MOSFET's gate-source capacitance as opposed to using a resistor. Still negligible effects.
I ended up trying a higher V_GS_threshold MOSFET (IRF530) instead, and the shoot-through current did decrease to about 1 A, but adding dead-time is still not completely getting rid of it.
Could someone please help me figure out this mysterious shoot-through problem (assuming it is even shoot-through) and finally put me out of my misery?
Here is the working circuit on a real scope. x10 attenuation is used to minimise probe capacitance. You can find the board layout link in one of the comments below (sorry, not enough reputation apparently).
In the image below, we have yellow as High (M1's V_G to GND), and blue as Low (M2's V_GS).
The yellow signal in the image below shows M1's V_DS, so my thinking here is that, M1 is ON when the V_DS is zero as that is the voltage drop across it.
Finally we have M2's V_DS as a yellow signal again. I can't have both V_DS show on the scope, since their reference points are not the same and I don't have differential probes. Yes, this is probably going to limit the information we have. Anyways, M2's V_DS looks weird since the wave is slanted a bit.
UPDATE 2023/03/25:
I made a new circuit board for the MOSFET driver and I discovered that using a different brand of capacitors for C7 (noise decoupling capacitor) fixed the slanted voltage curves from above. Below is an image M2's V_DS
You will notice that I'm using a higher supply voltage compared to the image above. That's because the current draw has decreased dramatically. Before, my circuit wouldn't even function above 7 V as the current would start rising exponentially over time. Now this circuit at 12 V is running only 27 mA without sound playing.
I've also tried out Simon Fitch's Miller clamping circuit on the actual circuit this time and here are the results. Blue is High (M1's V_G to GND), and yellow is Low (M2's V_GS).
You can see that the signal to M2 turns off a little faster and reduced the ringing on the High signal after it switches on. These results were taken after I replaced C7. I would also like to mention that before C7 replaced the ringing was much higher that it was outputing a constant high pitched noise on my speaker.
Conclusion So the issue in the live circuit was a bad brand of capacitors that were used for the MOSFET driver's noise bypass. I found out they were Tantalum capacitors and I believe all Tantalum capacitors are polarised and Ceramic capacitors are non-polarised. I blame the electronics shop for putting them in the non-polarised section.
My circuit now works as intented and even works in FULL-BRIDGE mode.
I am still not sure why LTspice is showing shoot-through. Even using Simon's miller clamp circuit didn't do much on the simuluations, but his answer proved to be useful in supressing ringing and quickening turn off times
I didn't end up trying Russel's snubber circuit as an extra 10 Ω would cause a huge voltage drop, reducing my output volume. However, I think his method is worth a try in combination with Simon's miller clamp circuit if anyone decides to use very low V_GS_threshold MOSFETs for their projects. I think in the live circuit, the MOSFET's V_GS while OFF is not reaching the V_GS_threshold, so there are no false turn ON's caused by it. Instead, it was the due to a wrong capacitor type that was adding a lot of noise into the MOSFET driver which caused the false turn ON's or semi-turn ONs as you saw in the M2's V_DS figure, where the voltage was slanted.
I would like to thank everyone for contributing their ideas. I know it's kind of lame that I'm solving my own problem, so I do apologise. However, Simon and RusselH provided a solution that improved the overall performance of my live circuit, which helped supress some of the noise from my speaker. The question regarding the shoot-though in the LTspice simulation is still up for grabs as I'm still very confused what is happening there.