You could use a '168P, need 16 lines to the matrix and 2 lines for serial comms.
Make 8 bytes to represent the 8 columns of LEDs, 1 bit each row.
For each column, drive the anode, sink the cathode of the LED in that row if it is to be on.
Unsink the cathode, hit the next part.
In between columns, check for serial data coming in, update the bytes as needed and keep on going.
MAX7219 refreshes at 800 Hz.
If you leave each LED on for 500uS * 64 LEDs = 0.032mS, or 31.25 Hz refresh rate.
Better way would be to add part like ULN2803 (or transistors) and drive a while column at a time, bumps up the refresh rate a lot.
@JoeN: I'm probably going to have them made in batches of about 50 to 100, still a bit early to know for sure.
@CrossRoads: Thanks! That seems perfectly logical. Im still pretty new when it comes to serial, but I was thinking it would be better to send a whole frame to the second atmega, and have it display it till a new frame comes in.
You could do that, only need 8 bytes, maybe a starting sync byte, ignore all messages until the synyc byte comes in.
Or a sync message every 10 frames or something similar.
I'd probably need SPI, though how slow is slow if I wanted to go the serial port route? Also the main atmega, would run at 8MHZ so it wont be super speedy anyways...
Well I figure since its an 8x8 matrix, I would need to transmit 64bit strings of data at a time (maybe a few extra bits to signal a new frame is coming in or things like that)
30 frames/second * 64 bytes/frame * 11 bits/byte = 21,129 bits per second.
Go to 90 frames/second (for "overhead") = 63K bits/second
Serial will not be a problem. Use 115,200 if you are concerned.
2 MBit/second SPI is not needed.
Sweet! That actually makes perfect sense. Now as to how I would do that, would I just do a Serial.write on one end and a Serial.read on the other? and when setting it up I would set Serial.begin to 115200?
Sweet, its good to know that I can be done! But i'm going to go with the atmega method. Since it is meant to be a production thing (hopefully). And im actually doing a layered pcb assembly à la EEV Blog so its going to be two .8mm pcbs, with a 1.6mm pcb core. The core will have all the places for the ICs and other parts milled out. And the Top and bottom will make it look good, also all of the parts will be on the top pcb. Then ill stick them all together with double sided tape (2mm around the perimeter of the board).EEVblog #130 - The µCalc Credit Card Scientific Calculator / Computer - YouTube
Yeah, I wouldn't use that circuit either then. That is going to raise the cost quite a bit. I think about this stuff from a hobbiest point of view that I can get 4 or 6 of anything as samples and if I need to buy a few more that isn't going to break the bank - all because I make these things quantity 1 or 2.
Yep you really cant compare the two in terms of price. If/when I do finish the project, ill be sure to post the code so everyone else can take advantage of the cheaper driver.