Recently I got a task to design a double pulse tester that requires 2 dozens of bipolar gate drivers with 8 of them needs precise voltage control, both positive and negative.
So, I designed this far over engineered gate driver that accepts UART command to change positive/negative driving voltage.
The output stage can do 28A peak at 18V, and it can drive super heavy load (in my case, 25mR 1.2kV SiC MOSFET) in <20ns.
The reason for the programmable voltage is because I want a device that can test a range of devices, plus I plan to test devices in saturation region, so precise voltage control is crucial.
The original design was just passing voltage control PWM signal to the secondary stage, but without feedback control, accuracy will suffer a lot, especially in this case the power module is not regulated. So I added in a Cortex M0 MCU.
Using an ARM MCU is a bit overkill, but it just happened that I have a copy of a commercial ARM compiler (ImageCraft, courtesy of forum member Richardman), and most 8 bit MCU don't have 12 bit ADC.
It has 3 control pins: boot0, txd, rxd for device programming or normal operation. It also has an output pulse control input, which bypasses the MCU directly into the gate driver.
All signal and power is isolated at 3.75kv RMS (UL only, operating this device at its designed full 1.2kV won't pass CSA, VDE or CQC).
I could just use 3kv isolated power modules, but I chose 5.2kv ones for its lower barrier capacitance, since we are talking about really fast dv/dt.
At 1kv/20ns switching, its common mode achieves 50kv/us, where the isolator's limit is 100kv/us. The output cable will pass a toroid ring for a couple turns to further bring its apparent dv/dt down for more margin.
//Edit: added block diagram.
//Edit: fixed minor bugs, removed common mode filters at DC/DC converter since I decided to add a toroid at the output, removed output driver disabling capability.