Go Down

Topic: Maximum Number of 595's ? (Read 4521 times) previous topic - next topic


Sparkfun (http://www.sparkfun.com/commerce/product_info.php?products_id=760) has an RGB backpack that can be chained. Now the question is "how many can you control from one arduino?".
Their photo shows 7 RGBs linked together.


May 19, 2009, 06:41 pm Last Edit: May 19, 2009, 07:09 pm by zooto68 Reason: 1
At that price no thanks !! I'd be cheaper with an RGB Matrix each one with it's own Arduino chip controlling it. Could do that for less than $20 each.

So I guess it is looking like each Matrix would need it's own controller chip. With one master chip sending data out along a daisy chained serial line.

Could data be sent out fast enough?


May 19, 2009, 07:32 pm Last Edit: May 19, 2009, 07:37 pm by pvercello Reason: 1
FWIW, the AtXMEGA chips (the next step up from AtMEGA series) support DMA channels, which means you could just ask the DMA controller to pump out your "video buffer" (the LED bit buffer) to the output without using CPU resources (might have to use SPI or a UART for that though).  So your CPU could spend the rest of its time calculating the next frame, etc., rather than having to sit there and pump out bits for the shift-out.

Of course, the XMEGA's run at 32MHz as well, so it might be a moot point, but is something to consider.



I think that the amount of cells (one RGB + one atmega) one can connect to a master uC depends on the application. If you want control over each specific cell, pixel by pixel, that may take more bandwidth than just scrolling a string of characters. In the latter case, each cell could control itself, receiving an "input" character from the previous cell, and sending an "output" character to the next cell. Thus, for this scenario (scrolling text) you could have an unlimited number of cells, each taking care of its own slice of action.


I was thinking of having each unit have it's own font array, plus an array for sprites. Then the master controller could send simple commands for what character or sprite is to be displayed and where.


I just thought I would tell my experience whit a atmega and a lot of matrixes...
Well, my current project consists of 6 8x8 bi color matrixs and one atmega168, the construction i pritty simple, there are 13 595 chips, 2 for the colums in each matrix(8 red, 8 green), and then the last one is used for driving all the rows at once(whit some mosfets).
Now, one 595 from each matrix is connected to the same PORT on the atmega, which means that I only need to write one byte to update all six 595(there are no full ports on the atmega168 doh, only PORTD, but I need UART...).
Oh and the second 595 in each matrix is connected to the otherone that is connected to the atmega.
So I only need to shift 16 times to update the entire matrix, and this can be made really fast since all the data lines from the 595 is connected to the same port.
However this is the upper limit that I've found, sure you could probably do more in the isr but you will like me run out of ram really fast.

The software is really simple, I have one isr running around 50% of the time, reading from one of the buffers. Then I have the main application that is writing to the other buffer, and when it's done they shift buffer and starts to load the next frame.
The main application could however be done much faster by writing my own serial functions, cause now it first receives the data and writes to one buffer that my main application then reads form and putts it in the frame buffer.

So, it's really the ram and serial speed that is the limit here, but if you upgrade to 328 and rewrite the serial functions you could probably double then number of matrixs...

I will do a write up on my project later... I think.



A write up of this would be good thanks. This is encouraging. If I could get up to 6 matrix working with 1 Atmega328 then that will cut the costs down.



Think you could do even more than 6 matrix's the biggest the reason I didn't do it bigger was that the ram on the atmega168 is limiting... but whit a atmega328 i think you could perhaps 8 rgb matrix's whit out any problem..



If that is possible it would be good. I plan on making an 8x8 matrix of the modules so would only need 8 Atmega328's.

Go Up