I know there's a bunch of topics on this already and I've read a few of them but I'm new to electronics and would like to have some knowledgeable people confirm my assumptions and give me some advice with regards to how to best drive the matrix.
The scenario is as follows: I have a common anode matrix. Let's say I have the anodes hooked up to one 74HC595 and the cathodes to two TPIC6B595 - one for red and one for green. If I turn on the red LED at position 0, 0 on the matrix I'll have 20mA flowing through 1 pin on the red TPIC6B595 as well as 1 pin on the 74HC595. If I also turn on the green LED at the same position I'll have 20mA flowing through 1 pin on the red TPIC, 20mA flowing through 1 pin on the green TPIC and 40mA flowing through 1 pin on the 74HC. Is this correct?
Only one column will be active a time on the matrix so there will be a max of 16 LEDs that can be on at any given time. From what I understand, a 74HC595 can handle up to 20mA on a pin but only 70mA through VCC so if I were to use something like 750 Ohm resistors I'd have only 4mA per LED and 64mA if all 16 are on which would be safe for the chip. Between the high resistor value and multiplexing though the matrix would be too dim which won't work.
So the question becomes what's a good combination of chips to use to drive it? I've tried the MAX7219 with the LedControl library and found it to be a major headache so I'd rather stick with dumb shift registers and do my own multiplexing. The main concerns are cost and space. For example, from what I understand I could use a 74HC595 with a ULN2003. However, I want to have 4 matrices arranged in a square configuration for a 16x16 "display" so having 4 chips (74HC595, ULN2003 and two TPIC6B595) per matrix would probably take up too much space.
Are my assumptions correct and can anybody give me some ideas as to how to proceed?