Interference with Max7219

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

Reply to
ecmcn
Loading thread data ...

How often are you writing to the 7219's ? When you say intermittant, what is needed to recover from this mode ?

-jg

Reply to
Jim Granville

I'm sending a frame of data to the 7219's about 20 times per second. One frame of data is 32 bytes, plus another 32 bytes overhead for the

7219's (each instruction is one byte to tell it which row you're setting, then a byte for the row data).

Right now I'm not doing anything to recover. It'll run for a while, then the problem crops up and the only recovery is to power it off and on. One display works fine in my studio and in one other location, but has lots of problems in my apartment. On the other display I saw the problem a few times in my studio, then it sat in an art gallery for a month running 24/7 and it didn't have any problems at all.

The shotgun fix I've considered is to just reset the 7219's from the Rabbit every once in a while, but I'd rather figure out the cause of the problem because I don't want to have periods of time where things are screwy.

Eric

Reply to
ecmcn

Having been intrigued by this one I would consider some of the following as ways to look at this.

You do mean 6 feet x 6 feet?

Is this per quadrant or for the whole display?

What are the size of the actual LEDs and current per LED you are using?

I would definitely keep the 7219's close to the LEDs, as each chip could potentially draw up to 45mA per segment and 8 segments when LED is ON.

Keep the leads to the LEDs as short as possible or put in higher current 'ROW' drives closer to the LED rows. These are likely to cause more problems as they are the relatively higher current switching which could cause _more_ EMI.

ESPECIALLY if your display is 6 feet x 6 feet.

The datasheet says put a 10uF AS WELL close to the chip do that.

If you use higher current 'ROW' drives near the actual LED rows consider some extra decoupling by the 'ROW' driver.

Considering the possible overall size check for power supply being within tolerance with all leds off and all leds on at all parts of the quadrants.

I would check your software and the actual data and clock lines as some event in the software from another source (LIKE floating interupt pin) could be causing changes you are not expecting.

I would consider a pull up and pull down bus termination as a possible solution at the far end of the common clock and load lines and on the far end of of each daisy chain for the data lines.

On a 6 feet x 6 feet display I would also put in a driver for the signals and a schmitt receiver for EACH stage of the daisy chain.

All your signal lines need proper transmission line analysis on that length as I doubt a straight micro pin is going to be good at driving potentially 18 feet or more.

Consider positioning the 7219s as close as possible to the LEDs on the centre line (horizontal or vertical) of the display to also reduce the control signal line.

Put in a good heavy guage power AND ground cabling, as potentially you have a maximum peak current when 4 quadrants are all displaying a row of 8 LEDs at the SAME time of:-

4 x 8 x 45mA = 1.44 A peak current

You have also checked the power dissipation calculations for each chip using the datasheet and your LED drive current?

Consider shielding the control signals as they could be picking up EMI from the led drive.

Sounds way off track to me.

For something this size I would have considered using MORE chips to keep the LED lead length short and having a mux control that output enabled a line of 16 LEDs at a time (8 in two quadrants horizontally together). Possibly using 8 wide drivers to drive 8 LEDs and a shift register to cycle a mux control for each quadrant linked together.

For the type of information you are driving bitbanging or even hardware shift register transmission to receiving shift registers with row selects to enable destination, may be more hardware but better on power consumption, EMI, signal transmission lengths and coding!

--
Paul Carpenter          | paul@pcserviceselectronics.co.uk
    PC Services
 Click to see the full signature
Reply to
Paul Carpenter

EMI? Cell phones? Mounted against the wall with a bunch of power and data cables behind it? How long are the traces between the bunny and the 7219s?

Sounds like flaky power to me, but without a scope it's hard to catch that sort of thing.

Kelly

Reply to
Kelly Hall

Sounds like a 'bonus clock' - look at the 7219 data, and imagine what an extra clock would do to the control registers. If this kicks it into the shutdown address, you then have a 50/50 chance of putting the chip to sleep @ D0, and voila, a blank tile...

If you have the bandwidth, send a frequent refresh set for the control registers.

-jg

Reply to
Jim Granville

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.