Max 7219 daisy chain not working beyond three

I am doing something wrong. I am trying to do five 8x8 LED panels using the Max7219chg and can't seem to get more than three of the grids working at a time. I have created five boards (see attached schematic) and five 8x8 grids (these are 2ft by 2ft square). If I take any three of the five boards and daisy chain them with any three of the five grids, everything works perfectly. Add a forth board and it no longer works correctly. Sometimes 1 or 2 of the boards will work but the other 2 or 3 won't Disconnect the fourth board and everything is good again for the remaining three.

As I said, I have mixed and matched the grids and boards many times and regardless of which I use, the results are the same .... 3 go, 4 no go.

The only termination am currently using a pull down on the load line on the last board in the chain. Can someone tell me what I might be doing wrong?

Should I have a pull down on every board?

Should I have some other form of termination on the data and/or clock line?

According the data sheet, I should be able to daisy chain 8 of these suckers. Is there something else I need to do when I get beyond 3?

Also I should say that on the left, if this is the first board, it goes directly to the pins on the Arduino (mini in this case)

How long is the wiring between boards? Fast logic signals aren't good at travelling any distance. You might want
to buffer the clock/data lines on each board.

A friend made a digital zoetrope which involved 12 TFT boards daisy chained with fast SPI bus going to them all,
I helped out with the boards there and ensured the signals were all buffered on each board - although the
wiring was short I was concerned the total load capacitance would degrade / slow the signals with 12 boards in
total. It worked so I have reasonable confidence this precaution would help here.

make sure you have sufficient decoupling.
.

Hi,
You may need to remove the 10K resistors, only have them in the furthest 7219 PCB.

Tom... :slight_smile:
4 x PCB = 4x 10k in parallel = 2k5

I'm with TomGeorge - only terminate at the end of the chain.

Why would you imagine the "termination" resistors to be necessary at all?

10k is going to be nowhere near the impedance of your wiring, so we are not talking about reflections; there may be some minor "ringing". Capacitance is your enemy. And it would be the clock line, not the load line that is the problem.

The first thing to do is to slow down your transfer speed. Use software rather than the SPI hardware.

The quickest way to review your construction for obvious issues is to post a perfectly focussed photo, taken in daylight from no less than a metre using real camera zoom to frame your complete setup.

If you are operating at any distance between units, you really need to buffer each of the three control lines on the input of each board with two gates of a 74HC14. That will match the propagation delay of the signals.

Buffering: I am thinking this is something to try. The distance between boards is approx. 23 inches so anything past the third board would be nearly 8 or more feet.

74HC14 is a good one to use? I have never used a buffer chip, but will start looking for examples?

Termination: I AM only terminating the last board on load. I tried to say that in the narrative, but t guess I didn't do a very good job.

You all are great!!!

Yes, its an inverter though so you'd need two gates per signal to restore the logic sense.
The '14 has schmitt-trigger inputs which helps clean up signals.

8 foot is too far for a clock signal, you could get runt pulses or double-triggering due to
signal degradation reflection and crosstalk. The rise & fall times of logic signals are a few feet
at most

What speeds are you clocking anyway?

Ok...found that I have some 74HC04AP chips (not sure why). It appears that this is the schmit trigger version of the 74HC14 (he says as if he knew what that meant). Question....

Can the 74HC04AP chip be used for the buffering function suggested above, or do I need to use only the 74HC14 chip recommended or is there something better?

MarkT When you say that 8 feet is too long for the signal, do you mean too long without buffering or too long period.

I am using the Arduino Mini Pro 5v which I think is 16mHz

They are inverters, the '14 has schmitt-trigger inputs, the '04 does not.

Any logic gate buffers a signal. 8 foot is too long. Buffering means you only have 2 foot runs, not
8 foot.

Ok, great. I have created a small board containing the 7404 and will insert that in the line to see if it helps my problem. If it does, I will make three more and put a buffer between each of the five boards.

I have also ordered some 7414s in case they work better.

Thank you.

74AC125 work well, lots of drive current available, 24mA.
Non-inverting as well.
Other buffer/line drivers in 74AC family in thruhole package:

Yeah, CrossRoads, actually I ordered some SN74F125N as well. So between three different chip configurations, I should find a good fit.

crchisholm:
Yeah, CrossRoads, actually I ordered some SN74F125N as well.

No, you do not want a SN74F125N; it is an obsolete part used only for repair of old systems and not compatible with CMOS in this application.

CrossRoads correctly specified a 74AC125, though using 74HC14s with two buffers in series with each line would be the cheapest and most readily available option. The 74HC04 (HC essential) will do the job almost as sell.

And slowing the transfer using software SPI would probably work in the meantime. The problem most certainly is the substantial capacitance of your long cables (not "reflection") and "termination" is not relevant as previously explained. It is of course essential that the five connecting wires are always in a single cable.

Ok, here is what I ended up with and it seems to be working. I used the 7405. I still have the 7414 on the way along with the 74F125 chip that I guess I should not have ordered. (I ordered it before seeing CrossRoads recommendation, unfortunately, based on another posting).

At any rate, It seems to be doing exactly what I want it too do. Attached is the final board schematic minus the terminating resister that I have on the final board. (needed or not)


Looks OK.

just curious...how are you getting the images inline?

crchisholm:
just curious...how are you getting the images inline?

If you right click the image link you can "Save link address" and then use "Insert an image" from the text editor.

If you want to insert your own image, you have to submit the post and them edit the post after you've saved the link address. When you edit the post use the "More" > "Modify" option so you get the "Insert an image" button as part of the editor (or you add the IMG tags yourself).

There might be an easier way to insert an image you upload, but I don't know what it is.

I've read of people using RS485 chips with SPI signals. I think the buffer chips mentioned in this thread are likely a better option for this application but there may be times when RS485 chips would be a good option for long SPI lines. I know I've seen app notes on the RS485/SPI option.

Ahhhh...got it. Thanks. That will be handy.