Hey Peabody thanks this is brilliant thinking
I really like the idea of dropping a few resistors and the transistors. My system has 8 segments (with DP) and 3 digits.
If I make the math, I had before:
* 8 segments
* 8mA per segment
* 64mA total (with all segments on)
* duty 1/3
To get the same brightness I need to change my resistors by 8/3. Then I get:
* 3 digits
* 8mA * 8/3 = 21.3mA per digit
* 64mA total (with all digits on - yes there's no free lunch)
* duty 1/8
I still think it is brilliant, it removes the transistors which in my case will be one thing less off the BOM. Problem is 21.3mA is close to the limit for one GPIO, my small MCU has a 25mA absolute maximum rating limit. But truth is I think I can go a bit lower, it will also lower the 64mA total.
I will try it and let you know!
EDIT: Ahh wait - I just realized that still means that if you are sourcing 21.3mA per digit, and for a given segment you have all 3 digits on, then it means your segment pin is sinking the 64mA! That would be over the specs for most MCUs :/ One way is to stick to the 8mA, that means maximum 24mA for one pin (still a bit too close to 25 IMO), but since the duty is 1/8 that makes the display significantly less bright. It will works ok on a two digit display depending on the brightness requirements
So I think I will go back to the original idea - I will make a new post to ask about the Miller effect/caps on the transistor since this post's question is answered. Thank you all
EDIT2/PS: Peabody I have given it a few more thoughts, actually the one and only thing you gain by multiplexing on the segments instead of the digits is a few resistors. My analysis with (f.x.) 8 segments and 2 digits:
Case 1 - You are multiplexing on the segments (like you said)
Let's say using 10mA per digit
In this case you get on your MCU:
* 10mA on each digit pin
* 20mA (max) on each segment pin
* What you "see" is 10/8 = 1.25mA per segment (since you have a duty cycle of 1/8)
Let's compare with
Case 2 - You are multiplexing on the digitsIf you are using 2.5mA per segment, then you get on your MCU:
* 2.5mA on each segment pin
* 20mA (max) on each digit pin
* What you "see" is actually 2.5/2 = 1.25mA per segment (with a 1/2 duty cycle)
Basically in both cases you are limited by how much one pin of your MCU can handle. And when using transistors to get to higher currents, clearly multiplexing on the digits makes more sense since then you only need 3 transistors (instead of 8 ).