I have a level shifter that uses a transistor to control the gate of a high voltage P-channel MOSFET, like this:


simulate this circuit – Schematic created using CircuitLab

This is designed to work at a nominal 100V HV supply, and works okay between 50 and 150V or so. The input is logic level. It works fine, except the switching time is a few microseconds.

I'd like to speed up the switching time to tens of nanoseconds if possible.

The things that make a bit tough are that the circuit is power constrained (drawing 1mA from HV through the level shifter while it's on is already kinda a lot), and also cost and space constrained (the circuit shown here fits in 15mm^2 and each component is under $0.01). I probably can't use a gate driver IC, optoisolator, or isolated gate power supply or anything along those lines. I could for example add a second BJT, some dioides or a few passives.

Is there a simple topology for speeding up switching in this type of circuit without increasing the constant power draw?

  • \$\begingroup\$ You could replace the pull-ups with current sources or "active pull-ups" \$\endgroup\$ – DKNguyen Jun 12 '19 at 18:59
  • \$\begingroup\$ @DKNguyen Could you tell me how that would help in this case? The pullups already only draw current while the switch is on. I need some way to draw a lot more current but only while the switch is transitioning from off to on. \$\endgroup\$ – Alex I Jun 12 '19 at 19:06
  • \$\begingroup\$ What you just described is an active pull-up. The reason lower R pull-ups are faster is because you charge the capacitances (parasitic or otherwise) more quickly. But going too small = excessive power dissipation. Using active-pull ups or current sources is basically a way around the RC time constant and power dissipation. Current sources make it so the current charging the capacitor does not level out with time like the capacitor does. Active pull-ups are similar but might instead provide an initial burst of current instead. \$\endgroup\$ – DKNguyen Jun 12 '19 at 19:07
  • \$\begingroup\$ @vangelo It's a ZVP3310F. There are other good choices in SOT23, that's just what I got. \$\endgroup\$ – Alex I Jun 12 '19 at 19:12
  • \$\begingroup\$ @DKNguyen Thanks! Could you draw a schematic? :) \$\endgroup\$ – Alex I Jun 12 '19 at 19:13

I think this'll work. Don't start out trying it with expensive hardware. R4 and C1 are guesses -- the smaller you make R4 the quicker it'll switch and the bigger the current pulse on the HV line. If you're going to use it over a wide span of HV voltages (you cited 50V to 150V) then you'll need D1 -- choose something with low capacitance, but that'll still absorb the current pulse at the highest supply voltage.

I'd reduce R3, or parallel it with a series RC for speedup, with the resistor sized for that 10mA that your microcontroller pin will put out.


simulate this circuit – Schematic created using CircuitLab

| improve this answer | |
  • \$\begingroup\$ Oh, nice! I see how this would work. I'd try different R4, maybe as low as 1k. Looks like a good and cheap solution that is perfect for my use case... also I think this speeds up both turn on and turn off. Thanks! \$\endgroup\$ – Alex I Jun 12 '19 at 22:34
  • \$\begingroup\$ R4 reduces the equivalent. Gate R only 9k to 9k//22k to get rated switching time Rg needs to be as tested in datasheet \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Jun 12 '19 at 22:41
  • \$\begingroup\$ @AlexI Whew! I was just about to sit down and pony something up. But better people have helped. So I can relax. I would have used three BJTs, one of them in a cascode (common base) form and the other two in class-AB output form. (Finding the output pair with enough \$V_\text{CEO}\$ would have been the only issue and I had a few ideas in mind for that.) \$\endgroup\$ – jonk Jun 12 '19 at 22:55
  • \$\begingroup\$ @jonk I'd still be interested to see that - I'd like to think through all the possible topologies here, and it may be useful to other folks that are trying to do fast level shifter for a slightly different use case. If you feel like it, maybe you could sketch that in an answer - no need to worry about component values or the like, just how you were thinking of connecting it. Many thanks! \$\endgroup\$ – Alex I Jun 12 '19 at 22:58
  • 1
    \$\begingroup\$ @AlexI Actually, you can just look here for the template I was considering. \$\endgroup\$ – jonk Jun 12 '19 at 23:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.