I wanted to ask if anyone had guidance on making a transmission gate (with body diodes, however) to use on the high side of an H bridge.
For context, I am making an H-bridge to drive a resistive load. Unfortunately, I must use pre-approved components and these do not include any high-side / floating gate drivers or boost circuitry.
It wasn't too bad to make a dead-time circuit and use high-side PFETs and low-side NFETs, but there's one inconvenience: the positive rail going to the H-bridge load can vary from 0V to 12V with a constant 12V available to use for the driving circuitry. Thus, the PFETs may not have a high enough voltage on their source to be biased. My solution was to make something similar to a transmission gate with a discrete NFET in parallel to the high-side PFETs. Thus, when the rail going to the H-bridge is too low for the PFET, it's low enough to allow the high-side NFET to be biased by 12V and vice-versa when the rail going to the H-bridge approaches 12V.
I have attached an example of my proposed circuit constructed in LTSpice.

- R1 is the load
- H_CTRL0 and H_CTRL1 are the digital signals used to control the H-bridge. They are timed to include a dead-time
- M1+M4 and M2+M3 are the "transmission gates" that I am referring to here
It appears to simulate okay, but I wanted to ask a few questions here if anyone could answer:
- Are there any obvious bad characteristics of this strategy that I'm not considering?
- I understand it's not exactly a transmission gate due to the body diodes of the discrete FETs, but I believe I only lose the bidirectionality, right?
- I do notice some large current pulses (maybe 20% more than the load current) when the FETs turn off in the simulation. I had hoped my dead-time circuitry would account for it (not included in the schematic, I just used correctly timed pulses instead), but the addition of the high-side NFETs is when this behavior started. Any ideas what the cause is or how to mitigate?
- It seems like I can lower these current pulses by lowering the series resistance of the control signals H_CTRL0 and H_CTRL1 if that gives any hints.
Thank you for your time!