I needed a 2 digit display for a project and simply ordered a device 1, without the proper thought. To be fair I have learned a few things about 7 segment LED displays. Unfortunately I got one which is a common anode type, rather then a common cathode, for which there seem to be plenty of drivers, like the MAX6955.
That's OK I'm not short of GPIO pins on a uC so just control the 7 segment from the uC. Be a bit of timing involved illuminating each segment one at a time but not great issue. So I set about thinking of a control circuit and started with 9 BJT NPN transistors acting as switches. That seems to work in my head, but I'm wondering about efficiency. I better add a circuit:
Obviously I'm missing base resistors for all 9 BJTs which will be connected via a base resistor to a uC GPIO pin.
I'm happy enough with the 7 transistors switching the segments, as they just switch to ground, like a low side switch.
However the two transistors which connect power to either of the two 7 segment displays aren't as good in my head. To switch a 7 segment digit off I have to turn on the BJT, effectively shorting the Collector to the emitter. So with the 7 segment digit disabled VCC is connected to Ground through Rc1 or Rc2 and wasting power.
I guess since I'm timing the 7 segment displays and only lighting one segment, A-G, at a time I can get rid of the 7 resistors on the cathode side of the LED segments and only have Rc1 and Rc2. But the voltage drop across an LED is 2V so with a segment connected in there's VCC - 2V drop across Rc1, or Rc2, depending on which is on. Turning off the digit by shorting Collector to emitter means there's the whole VCC dropped across Rc1, or Rc2, so there be more current drain when the digit is turned off, rather then powered.
I'm going to look for another solution, but I wondered was my thinking correct. Using the BJT as a high side switch means there's more current drain when the load, in this case an LED, is off rather then switched on. If it wasn't for that I'd go with this solution but it seems not right to me.