Hi -
I've built some 16x16 LED displays using four Max7219 seven-segment drivers (each can multiplex an 8x8 array). I use a Rabbit micro to update the 7219's, enabling me to show lo-res video. The problem I'm having is that intermittantly one or more of the 8x8 quadrants goes blank, while the rest of the display continues to work correctly. It works better in some locations than others. I'm guessing there's interference in the control lines between the Rabbit and 7219's, or maybe the power is dipping and resetting the 7219's, or something like that.
The displays are pretty large: 6' x 6'. On one of them I had all four
7219's on the same PCB with the Rabbit's PCB right next to it, then ran all 64 row/column leads around inside the frame to that one spot. On another display I distributed the 7219's around to each corner of the frame, which allowed me to greatly reduce the length of the LED leads, but it increased the wire length of the serial connections between the Rabbit and the daisy-chained 7219's. For the most part both displays work fine, but they both occasionally have the problem.My questions are:
- Is either (or both!) of the above options inherently a really bad idea? The Maxim literature says to keep leads short, but in a display of this size that's not really an option.
- I have 0.1uF tantalum decoupling caps at each chip. Decoupling's kind of a black art to me - would adding more and/or different sized caps help?
- The Max7221 has an SPI/QSPI/MICROWIRE interface. Could this more relaibly ensure that the data from the Rabbit gets there? Currently I'm just bit-banging data to the 7219's, and I'm thinking a more controlled communication might have better success.
- Would pull-up resistors in the serial connection help make sure there's a clean and strong signal?
- I found a reference to wrapping long LED leads around a ferrite core. Could this help? This seems more black magic than the decoupling caps.
thanks much for any insight,
Eric