The Situation:

Basically, I would like to switch a load that requires 30v using a switch that cannot have more than 5v across it. More descriptively, I am trying to drive the anode of a VFD segment from the output of a shift register (probably a 74HC595).

What I Have So Far:

Because the segments are essentially common-cathode, the anode has to be switched. You can't really switch that with an N-Channel FET, as when current is flowing drain to source, the source would instantly be at ~30v, which being higher than the gate voltage (5v), would instantly turn off (I guess maybe it would actually reach equilibrium at some very low conductance?). If a P-Channel FET were used, the gate can be pulled up to the 30v rail for off, but then you have 30v at the logic output, which is far, far outside of spec. Short of shifting the logic-level ground up to 25v, which seems like a major pain, the best that I can think of is to add an N-Channel FET to drive the main P-Channel FET, and pull down the gate of that to ground, like this:

Two-FET Switch Circuit

(I showed it with just a simple switch and load rather than an IC output and a floating anode so that this will be hopefully more applicable and/or easier to understand for people with other applications...)

The Question:

The problem that I have with this is that it seems like an excessive number of components for such a simple task. There has to be a simpler way to switch the higher voltage, right? I feel really stupid having so much trouble with something so simple, but I've spent all day on it, and this (or shifting up the logic ground) is all that I've been able to think of. I guess in the grand scheme, it's only one extra transistor and one extra resistor, but it kind of adds up when you're driving a large number of lines...

  • \$\begingroup\$ Q1 gate source volts will get too high. \$\endgroup\$
    – Autistic
    Nov 28 '15 at 7:39
  • \$\begingroup\$ I'm assuming that you know that there exist VFD controllers like MAX6922 that can drive them directly. I'm guessing the point of this exercise is to build your own. \$\endgroup\$
    – Fizz
    Nov 28 '15 at 8:08
  • \$\begingroup\$ @Autistic, just looking at cheap generic FETs, I saw Vgs values of 20v (on a Vds 60v part), so I assumed that a higher voltage part wouldn't be that hard to find. I'll make a note to not take that for granted... Thanks! \$\endgroup\$ Nov 28 '15 at 8:09
  • \$\begingroup\$ I'm guessing you're doing something like kerrywong.com/2013/06/13/… but with FETs. \$\endgroup\$
    – Fizz
    Nov 28 '15 at 8:18
  • \$\begingroup\$ @RespawnedFluff, No, no I did not... I just assumed that VFDs were kind of an old technology and that there wouldn't be generic drivers for them (just custom ones for integrated modules, like Noritake, etc.). That's kind of part of why I chose them, since I thought it would force me to take the next step up in learning experiences (the last display that I did was just seven-segment LEDs driven by an MM5450). Plus I've never used tubes before :P. \$\endgroup\$ Nov 28 '15 at 8:19

You can indeed get rid of Q2, although a normal open-drain part will have trouble with high voltage on the drain as the output FET will break down -- normal HCMOS output FETs are not rated to drive 30V! A part like the TPIC6B595 will do the job, though -- that right there will save significantly on parts count.

Once you have the level-shifting handled, you can then use a high-side switch array to take care of the rest of the work. (Oh, and the pullup on the output of the TPIC6B595 can be a resistor-pack, if that helps you any.)

Or, you can simply use an integrated high-side driver/level shifter array.

  • \$\begingroup\$ I'm marking this as the answer, at least for now, as the referenced TPIC6B595 appears to be a good solution (in my case; I guess not as much in the generic case of a simple switch). I know what you mean about the transistor arrays; I've only been able to find at most two in a SOT363, and even that doesn't have a lot of selection... \$\endgroup\$ Nov 28 '15 at 8:27
  • 1
    \$\begingroup\$ "power PMOS arrays don't exist"? See my answer for some. I guess it depends what you mean by "power". Ok, some cheat by having a charge pump and N-mosfets inside. But from the user's perspective they're just high-side switch arrays. \$\endgroup\$
    – Fizz
    Nov 28 '15 at 9:03

There has to be a simpler way to switch the higher voltage, right?

No, there isn't. Not from the high side. You can put a single N-channel FET on the low side of the load though.

If you use an open-drain or open-collector device where you have your 5V switch, you can reduce the parts count though by eliminating Q2. But conceptually it's the same thing.

Also, there exist integrated high-side switches that incorporate Q2. These can be frustrating to find for your application because a lot of them only go up to 8V on the high side (they shift from really low levels like 1.8V), e.g. TPS27081A, NTJD1155L, Si3865DDV. IPS511 would work for you voltage-wise, but it has more stuff in it than you probably want [over-temperature protection etc.] and I don't know if you can still buy it. Shop around, there are surely more.

There exist some high-side switch/driver arrays of this kind; TPD2005F would work and has parallel inputs. This one "cheats" by actually having a charge pump and N-MOSFETS as outputs. There are a lot more with serial inputs, e.g. AMIS-39101. You could of course just buy one such array dedicated for VFDs at this point, e.g. MAX6922, or even an integrated array+controller like STM86312.

Which one of these to chose depends how much of a DIY exercise you want to make of this...


This circuit has a problem -- when Q2 turns on, it will put 30 V across R1 -- which is also the VGS of Q1-- and this will exceed its specification significantly.

There are a few ways to fix this, but the most robust is to put a 5 V zener in parallel with R1 to keep the voltage reasonable. Now, to control the total current, you have to put a new R in the source of Q2.

Assuming your speed requirements are simple, here are some good values to use:

R2: Not critical -- 10k or 100k would work. R1 -- controls the turn off rate of Q1 -- 1k or 10k might be suitable (depends on FET and on speed requirements). Select 10k

Rnew -- needs to drive 5V/10k = 0.5 mA. When you drive the gate of Q2 with (say) 5 V, and VTH is 2 V, there is 3 V across this R ==> R = 3V/0.5 mA = 6k ohm -- use 4.7k.


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.