He is doing a row scan not a column scan.Positive supply to the LED's will comes from 74HC595 & flow current to GND via row side.So you don't need additional ULN drivers.
I haven't use N-fets as he mentioned because those are very hard to find.
With that "cathode row" design, you could replace the 74HC595's with Micrel MIC5891 serial-to-parallel "sourcing" driver ICs but they're a bit expensive. Use two sets of Si2312BDS N-FET "sinking" row drivers (inputs connected in parallel) with outputs from each set driving the rows for a single 8x64 block.
With an "anode row" design, you could use MIC5821 or TPIC6C595 "sinking" column driver ICs and P-FET "sourcing" row drivers. Or you could use the 74HC595's driving ULN2803A's you mentioned.
I had a similar issue on the current design 16 X 64 multiplex.
For a 16 rows design you are divided into two rows & do the scan in this case brightness will be 1/8.When its comes to real life adding two sets of column shift registers to the top row 8s (8, 595’s) & bottom row 8s (8, 595’s) becomes very hard.
I planed to scan 1/16 using 8, 595’s by adding some 64 PNP transistors to the each 595 outputs.
My current LED arrangement is "Cathode row design" that's why when the no of rows gets bigger the hardware part goes hell of a mess.
Thinking to do my LED arrangement like "Anode row design" so all I have to place ULN with each 595 on column side & only need 16 current source transistors on row side.
I prefer to use a lower duty cycle to reduce "peak" current requirements. To get the brightness of 10-ma "average" current per LED you would need to provide about 160-ma "peak" current to each lighted LED on your 1/16th duty cycle design. This is beyond the typical 100-ma "peak" spec' for many LEDs.
The "anode row" design provides a lot more choices for your sinking column drivers. A 74HC595 driving a ULN2803 should work fine. You can also replace that combination with a single but somewhat more expensive IC like the TPIC6C595 or MIC5821 (many others too).
mike, another question, my LEDs are 20ma, someone on allaboutcircuits forum informs me that your design, as it says, only sources 4ma to the leds, how can I up this to 20ma?
You'll want to drive them at more than 20mA as they're only on 1/8 of the time. 60mA is common and may not damage them as quickly as 160mA. Also HE red are nice and bright with less current that standard red LEDs.
One way is PNP driving transistors.
mike, another question, my LEDs are 20ma, someone on allaboutcircuits forum informs me that your design, as it says, only sources 4ma to the leds, how can I up this to 20ma?
The design uses inexpensive 74HC595 ICs to provide about 32-ma "peak" current or about 4-ma "average" current to each LED. If you want 20-ma "average" current you'll need to provide about 160-ma "peak" current which is probably above the "peak" current spec' for your LEDs.
As I mentioned earlier, if you want a brighter display then you should either replace the 74HC595 ICs with higher current sourcing driver ICs, or as Bill (blueroom') mentioned, you could add PNP or P-FET sourcing driver transistors between the column lines and the 74HC595 outputs. The sourcing driver ICs are easier but they're also more expensive (unless you 'sample' them as I did).
Good luck on your project.
Cheerful regards, Mike
<added>
You got a link to that AllAboutCircuits thread? I can't find it.
How exactly would the 74ABT574's speed up the interface?
This particular MacMux design loads the 16 column driver ICs (with 128 bits of column data) during each row update interval by writing 16 bytes and clocks onto the 10 pin buss in just 64 instruction cycles. I'm not sure how you might do any better than that with daisy-chained 74ABT574's.
Other than your claim of a faster interface, the 74ABT574 "sinking" driver might be a good choice for cathode column drivers in an anode-row display. If you could really get 100-ma "sinking" current (the spec' sheet I downloaded says 64-ma), you wouldn't be violating your LED "peak" current spec' and you might get about 12.5-ma "average" current, which is pretty darned bright.
The design uses inexpensive 74HC595 ICs to provide about 32-ma "peak" current or about 4-ma "average" current to each LED. If you want 20-ma "average" current you'll need to provide about 160-ma "peak" current which is probably above the "peak" current spec' for your LEDs.
As I mentioned earlier, if you want a brighter display then you should either replace the 74HC595 ICs with higher current sourcing driver ICs, or as Bill (blueroom') mentioned, you could add PNP or P-FET sourcing driver transistors between the column lines and the 74HC595 outputs. The sourcing driver ICs are easier but they're also more expensive (unless you 'sample' them as I did).
Good luck on your project.
Cheerful regards, Mike
<added>
You got a link to that AllAboutCircuits thread? I can't find it.
I don't want to risk breaking anything so if 160ma is too risky, and everyone seems to suggest 60ma, then I would prefer to use something not risky. so I can add a source after the 74hc595s pnps or whatever sampling is always nice, good idea.
My only question left at this point would be the Nfets on the cathode rows, would they also have to be able to sink more given a source of 60-100ma per led?
My only question left at this point would be the Nfets on the cathode rows, would they also have to be able to sink more given a source of 60-100ma per led?
hehe, thanks, I just don't want to figure it out wrong. The help of people like you, gayan and tom66 (on ACC) and others around me, are invaluable in understanding the concepts behind these circuits.
through you guys answering my silly questions I learn a lot in a much shorter time period.
one last silly question since I'm kind of new to using sources and sinkers. I do need resistors on the cloumns as per the voltage being fed to them and the wanted ampheres per led, correct? I can figure out the numbers from there.
Thanks! Soon as I place my order, I will start the project thread with tons of fun building pics (as puttine this many LEDs in a sign and soldering will take a while)
How exactly would the 74ABT574's speed up the interface?
This particular MacMux design loads the 16 column driver ICs (with 128 bits of column data) during each row update interval by writing 16 bytes and clocks onto the 10 pin buss in just 64 instruction cycles. I'm not sure how you might do any better than that with daisy-chained 74ABT574's.
Other than your claim of a faster interface, the 74ABT574 "sinking" driver might be a good choice for cathode column drivers in an anode-row display. If you could really get 100-ma "sinking" current (the spec' sheet I downloaded says 64-ma), you wouldn't be violating your LED "peak" current spec' and you might get about 12.5-ma "average" current, which is pretty darned bright.
Out of curiosity, are you running a matrix from serial over a computer through the mcu? What kinds of speeds do you achieve?
Mike, looks like I need 12.8A of N fet power for the rows if I use 100ma currents per LED
and if I use 60ma * 128 = 7.68 amps of N fet current ability
I'm going to start searching for some suitable N fets, What should I look for? low Rds? I am not really sure what made you pick the Si2312BDS, so if you could inform me I would love to learn why.
I would really like to use the MIC5891, as it seems ideal and I actually find it to be cheaper to use these than drive transistors with 74hc595s..... however it would inihibit me to 60ma of output as that would be a 480ma load on each mic5891 which each can sink 500ma of current.
SO, right now I'm going to send out some 12.5% duty cycles out to my one of my LEDs with some transistors I have laying around at 60ma and 100ma. I will report back to you after I decide what I truely need.
10% of an 8051 at 12MHz drives the display at 95% duty cycle refreshing a 64x10 array 100 times a second. (column off, send 8 bytes, column on, wait, repeat)
8051 also runs a PID and a keyboard interface and scrolls the display