7-segment design safe for Due outputs?

This question arguably belongs in the LEDs and Multiplexing forum, but it’s very Due-specific so I’ll try it here first.

My project includes a 4-digit 7-segment display (common anode) that will be driven using the usual multiplexing approach. I’m buffering the Due digital outputs and ideally I’d like to get the current from the 9V rail. I’m assuming that the 3.3V rail doesn’t give me enough headroom (LED forward voltage + transistor Vce + R drop probably exceed 3.3V). Using the 5V rail might overload the regulator, so the raw 9V is favourite. I also assume that using either the 5V or 9V rail runs the risk of damaging the Due outputs. So I’ve ended up with the attached design (showing 4 segments of one digit).

The extra transistor on the right protects the Due output from 9V.

Can this be simplified without risking damage? Do I need to be so concerned about the Due outputs being damaged?


No prob. Your buffer stage is just fine. You can use any sort of buffering I/O, eg. TTL '373 or whatever. Btw, I have never experienced any sort of flashover from collector to base as long as the drivers operating within their specs. Even a in a damaged transistor I think this case is very rare. But beware of metallic tools and wires on your bench, they are a real threat during initial operation.

Thanks for the reply. Could I eliminate the base resistors by using the internal pullups with the pin set to input when I want the transistor turned on, and driving the pin low to turn it off?

"Could I eliminate the base resistors"

No. You must consider that the pin of the transistor is like a diode to connected to the cathode, which connects to Gnd. The base resistor limits how much current can flow into the base.
The pullup resistor will allow some feeble amount of current to flow into the base:

(5V-0.7V)/30,000 = 0.14mA, or less as the pullup can be as much as 50,000 ohm

and likely will not turn the transistor on as needed. Driving it low will then certainly keep it off.

Thanks, I thought that might be a problem so I was going to try it out to see what happened. In fact I was going to use ULN2003 as they're readily available. So with a Darlington pair I obviously get double the (external) base-emitter voltage, but with a much higher gain. Worst case:

(3.3 - 2 * 0.7) / 50000 = 38uA

Is that still unlikely to work?

Using the pullup resistors to drive external devices is not likely to work for most things.

OK, I'll just have to find space on my PCB for the resistors (or arrays).