Simplest high-side LED switch

I'm working on a project with a multiplexed 4 character, 14-segment display. I'm making two versions; one with nixie-type tubes (B7971s) at and one with large LED segment displays at - both common-anode devices - and am trying to keep the circuit as similar as possible for both.

For sinking each segment/cathode, I'm using ULN2803As, which work just fine for both versions. For switching the current to the anode, I'm working on the tube version first and am using a TLP627-4 optoisolator, which is working well. But although it handles the high voltage of the tubes, it's limited to 150ma and the LED version will require > 350ma when all segments are lit.

The TLP627-4 is a very neat solution. Is there a similar IC that I could use for switching the higher current of the LEDs? Otherwise, what's the simplest (both in terms of execution and understanding!) switch for doing this - it seems not as straightforward as a single ground-side transistor would be. I'm planning to run them at 12v - factor in the rest of the circuit and it seems a bit close to what the arduino can supply from it's 5v pin.

Use P-channel MOSFET with gate pulled high to 12V to turn it off.
If you have an extra ULN2803 channel, use that to buffer the arduino output to pull the P-channel MOSFET gate low to turn it on.
If no free channels, then a simple NPN can be used instead.
Arduino 1K to NPN base, collector to gate, emitter to Gnd. High in turns on NPN, connects collector to Gnd to turn on P-channel.

Not as simple as using a UDN2981 (if they're still available)...

...but works better (IMHO).

UDN2981 is not available anymore.

MIC2981 is tho:

UDN2981 is not available anymore.

MIC2981 is tho:

They are available on eBay and while I understand where you are coming from that you would never design with a discontinued product for something you would consider selling, not all of us sell our hobby project designs:

Old stock from 2010. Definitely not for a design you'd want to repeat.

this is getting me close to the now I have seen it all point in my life.

"Seller refurbished: An item that has been restored to working order by the eBay seller or a third party not approved by the manufacturer. This means the item has been inspected, cleaned, and repaired to full working order and is in excellent condition. This item may or may not be in original packaging. See the seller’s listing for full details"

so, the seller, 'refurbished', inspected, cleaned, repaired.

and makes a profit when selling them for 89 cents each with free shipping.

how can you go wrong ?

how can you go wrong ?

Concern noted. Alternate: 10pcs UDN2981AT UDN2981A UDN2981 8-Channel Source Drivers DIP-18 | eBay

Same date code, year 2000 week 35.

Same date code, year 2000 week 35.

Interesting. Maybe they have the last batch - remainder sale from the manufacturer? Any ideas? The "refurbished" ones look brand new, though who knows what you get compared to the image.

I have bought 50 of these from an eBay vendor and used them in projects within the last year, they work. I just can't say at this point which vendor I used.

At least the 1st ones shown were on pink antistatic foam. The 2nd looks to on blue carpet. Zap!

UDN2981 is not available anymore.

MIC2981 is tho:

Thanks for that Bob. Can you help me interpret the data sheet please? Suppose I plan to use this with 5V supply, with each output supplying perhaps 320mA (e.g. 8 leds in parallel @40mA each as part of a multiplexing circuit). What would be the voltage drop caused by the chip? (This might limit the type/colour of led I could use). The "electrical characteristics" table gives some "emmiter-collector saturation voltages" at different currents. Are these the figures to use? They are quoted at a rather low supply voltage of 2.4V - any idea why this is and how those figures would vary with supply voltage?

Thanks in advance, Professor Bob!


As I was first to mention these horrible things, I will weigh in.
Their outputs are Darlingtons, still, so all of that Darlington baggage goes with them.
I thought that I probably should not mention them, but a few people now are seeing them as a pancaea, a real fix-all.
For the record: They stink.

The "electrical characteristics" table gives some "emmiter-collector saturation voltages" at different currents. Are these the figures to use?


Thanks RP. Though so. For the benefit of the OP, this seems to indicate that the chip drops almost 2 volts off the supply voltage. If you also have a low-side driver dropping a similar amount, then with a 5V supply, you may not have enough left to drive even a red led!

Not such a problem if you have ~7V or more supply, although, even then, if you draw a lot of current, you could get heat problems.

I have been warned about this before. I was told the reason is that its difficult to make high-current pnp transistors on a chip, so the output stages of high-side drivers often use npn and so you get a big voltage drop.

That said, max7219 seems to work well with a 5V supply and blue/white leds with forward voltages of 3.2V for example.

Are there any high-side driver chips that use fet output stages?

Yes, apply up to 50V on Vs, Vout will be 1.9V typical to 2.2Vmax lower at 350mA output.

Digikey shows this list of parts when searching for "high side mosfet", but they are surface mount & pricey, and I don't believe they are all MOSFET - the lowest price one is NPN in emitter follower configuration.

The Toshiba TD62783 is a replacement for the UDN2981. Maybe you can use these. I recently bought them in DIP18 package here in The Netherlands for 1,65 euro a piece. They are also available on ebay.

So as mentioned earlier, a less simple but arguably much better high side switch is a pnp bjt or a p-channel fet. Have a resistor pull its base/gate up for off and pull it down with either an npn or an unused '2803 output for on.

There's something else I was once told was a bad idea but I can't remember now why... pulling the pnp base down using an Arduino output directly (via, say, a 4K7 for example). There was some reason this was not a good idea when the voltage being switched was higher than the Arduino's supply voltage. E.g. switching 12V with 5V Arduino output. Now obviously, if the Arduino output is LOW, the pnp will get switched on. When the Arduino output is HIGH (5V) the pnp will still be on because there will still be a difference of 7V (=12-5) across its base/collector. But if the Arduino output is high-impedance (pinMode is INPUT) no current should flow and the pnp will be off. This is a bad idea, but I cant remember why.

The Toshiba TD62783 is a replacement for the UDN2981.

Good find. But for lower supply voltages (not a problem for the OP), same npn darlington output driver stage and same 2V saturation/voltage drop problem.

But if the Arduino output is high-impedance (pinMode is INPUT) no current should flow and the pnp will be off. This is a bad idea, but I cant remember why.

You should.

There are internal protective diodes which shunt any voltage (0.6V) higher than Vcc.

0.5V, and only up to 1mA.