8x 16 segment displays

I'm trying to drive eight 16-segment displays (http://www.betlux.com/product/LED_seven_segment_display/single_digit_seven_segment_display/BL-S120A-12.PDF). The datasheet says each has a forward current of ~30mA, with a peak of 150mA, and <125mW. My thinking was that I could use two open-drain 8x LED driver chips to control the segments of a digit, and then use another chip to supply power to only 1 of the 8 digits at a time, and strobe them along. I've found plenty of 'power shift registers' that can handle 150mA, but they're all open drain, and I'd need the opposite (3V -> mystery chip -> digits -> LED driver -> ground). Does anyone know of a chip that would work here?

My backup right now is to use a regular shift register (SN74HC164N ?), with each output connected to a NPN transistor (I've got a MPSA06G (80V, 500mA, http://www.farnell.com/datasheets/168091.pdf), which seems a bit overkill, but hey, they're like 5 cents each) which would then drive the digits. Would that work? Would the switching be fast enough?

I don't see why it wouldn't work?

To save space you could replace the NPN transistors with a transistor array such as the ULN2003.

It's still awfully many parts for driving the display... A simpler alternative would be to use two MAX7219 ICs which can drive 128 LEDs in total and handle refreshing automatically.

The datasheet says each has a forward current of ~30mA, with a peak of 150mA, and <125mW.

No it doesn't.

The data sheet says that those are the absolute maximum ratings, that is the values that will damage the device. It is always good to run at the most 80% of the maximum. The series resistor you use will determine the current the display runs.

(3V -> mystery chip -> digits -> LED driver -> ground).

Here you have a problem:-
Note that segments B,C,E & F have two LEDs in them so the resistor values you use on those segments need to be calculated differently than the others. However if you only have a 3V supply then you can not drive this display. You do not say what colour it is but what ever it is the lowest forward voltage is 2.1V and therefore for the segments with two LEDs you need at least 4.2V.

but they're all open drain, and I'd need the opposite

A BTS6143 is a high sided switch, that is one that sources current and not sinks it.

Grumpy_Mike:
Here you have a problem:-
Note that segments B,C,E & F have two LEDs in them so the resistor values you use on those segments need to be calculated differently than the others. However if you only have a 3V supply then you can not drive this display. You do not say what colour it is but what ever it is the lowest forward voltage is 2.1V and therefore for the segments with two LEDs you need at least 4.2V.

(I was planning on orange (-E))

so to use this, I'd need to drive the whole thing with ~5V, and then drop the voltage down to ~2.1V for half of the segments?

I have 5V and 3V sources, so that wouldn't be a horrible problem, but I could also downsize to a smaller digit (0.80"), which doesn't have the double LEDs: http://www.betlux.com/product/LED_seven_segment_display/single_digit_seven_segment_display/BL-S80A-13.PDF

@PetriH
thanks for the ULN2003, that should save me some space/effort/money compared to the individual transistors

I'd need to drive the whole thing with ~5V,

Yes

and then drop the voltage down to ~2.1V for half of the segments?

No.

You need to limit the current with series resistors on each segment and the resistor values need to be different on these segments. Or you need to use a driver chip that contains a constant current supply and so there will be no issue.

thanks for the ULN2003, that should save me some space/effort/money compared to the individual transistors

Remember these only sink current.

Oh, I forgot that ULN2003 can only sink. Sorry for the noise!

Transistor arrays that can source current seem to be very rare. Quick googling revealed the M54564P and few others but they all seem to be obsolete and not sold by e.g. Digikey.

EDIT: found the MIC2981 High-Voltage High-Current Source Driver Array, available from Mouser
http://micrel.com/_PDF/mic2981.pdf

The VN750-E and the Allegro 2981 & 2982 are high side drivers.