# Simple high side driver for multiplexed 7-segment displays?

How can I best drive and switch high side power (for multiplexing) between the 7 displays with as few components as possible, for under $2. I am trying to simplify a design. I have a custom board design with seven common anode 7-segment displays. I plan to build a large amount of them where I want to minimize components as well as keep component costs down. Currently, on the high side, I use a SN74HC595 to switch power between 7 IMD10AT108 (combined NPN/PNP on 1 chip) drivers which power the displays. One IMD10AT108 (NPN/PNP driver) powers each display. That makes 8 components to drive the high side of 7 displays. I'm not satisfied with this, although it works great. For comparison, I'm able to handle to low side of all 7 displays with only 2 components...chip + resistor. It seems "odd" that I can't find a single chip shift register style solution to this at low cost, like is quite easy to do on the low side via a number of different chips and methods. (Yes, I see$5 chips (qty 100) are available do to this.)

I'd be happy to switch over to common cathode if that made a solution available. I am also looking to stay with something that can be driven via shift register logic, because these board chain together to add more displays in a chain.

This seems to be a question that has been asked in a number of forums, and is a common design problem for people trying to drive a number of multiplexed 7-segment displays.

A PNP array chip seems like the easy answer, until you start looking and find out they don't exist. To me, this seems like a common problem without a simple (cheap) answer.

Since the design is about to be finalized, I'm making one last ditch effort to find an alternative. Thanks for any input.

• The only 8-bit serial-to-parallel high-side (source) driver I've found is the Microchip/Micrel MIC5891... – user96967 Jan 13 '16 at 9:03

## 1 Answer

To multiplex the high side, all you need is a shift register circulating a single zero and a resistor and PNP for each digit, like this:

• This is indeed the way it is conventionally done, and close to what I have in the current design. My goal is to reduce the component count of this, ideally with a single chip, at reasonable cost. So far, I have come to the conclusion (to my disappointment) that there is no cost effective component (or two) to do this job, and the answer to my question may indeed be "what you want does not exist". – starvingmind Jul 25 '14 at 2:22
• If you're planning to build a few of these, DigiKey's 100 piece price for the 164 is US 22 cents each, for the resistors, qty 1000, a penny each, and for the transistors, (BCS407) qty 1000, 13 cents each, so it'd cost you USD 1.20 each to populate 100 boards, (and you'd have 300 transistors and resistors left over for next time) while one-offs would cost you about USD 2.50 each. – EM Fields Jul 25 '14 at 7:07
• Was thinking something like PDTB113ZT transistors, pre-biased so I don't need a resistor. \$0.062 qty 1k. With SN74HC595DW, because I need the 595's latch. The PDTB113ZT should work, right? (I am just learning this, and know I don't fully understand the nuances of transistor behavior and resistor requirements.) 5v atmega 32u4 as microcontroller. – starvingmind Jul 25 '14 at 12:57
• I'm not sure whether it'll work or not because I.m not sure what you're doing with the high-side latch. Can you post a schematic showing what you're wanting to do? – EM Fields Jul 25 '14 at 14:30
• Schematic would exactly match what you posted above (yours looks much cleaner than my actual schematic), but driven by 74HC595 instead of the 164 since I need a latch. The PDTB113ZT to eliminate need (???) for external resistors. 5v 500ma (USB) Arduino Pro Micro power source and microcontroller. Current draw for per display could be up to 240ma (30ma per segment * 8 segments), with only one display ever intended to be lit at a time (multiplexed). – starvingmind Jul 25 '14 at 15:01