On 2 Nov 2011 at 21:03, Tony Duell wrote:
Charlie
Allen of Maxim. Pretty nuch the right idea, but most
variations also make use of the ability to float a line (high
impedance) as well.
I think that's required to avoid other LEDs turning on, isn't it. If a
pin has to be either high or low, then (without giving it much
thought) can you do any better than conventional multiplexing?
If you count an n-input decoder/demux, then no, you can drive 2**n
Sure, I meant if you added no external logic.
lines; Charlieplexing is n*(n-1). e.g., if you have 6
output pins,
you can drive 64 LEDs using a traditional demux or 30 LEDs using
If you regard those 6 oupuyts as row/column drives to a conventional LED
matrix, yhe bes you can do is to split them in hald and have 3 rows and 3
columns, for a total of 9 LEDs.
I think that for this sort of circut, given n outputs :
n even : (N^2)/4 (or (n/2)^2)
n odd : (int(n/2) * (int(n/2)+1)))/4
Charlieplexing with no additional logic. It saves
money, but can't
beat regular muxing. CP also suffers from issues with leakage
current, where some LEDs remain dimly illuminated.
It beats normal multipelxed LED matrix (not adding any external logic).
But for charlieplexing to work, and not haev other LEDs turn on, you need
indivdualy-controllable 3-state outputs -- that is any of the pins must
be able to be high, low, or high-impedance, independant of all the others.
-tony