MAX7219 noise in audio circuit

This is my first Arduino project: an integrated amplifier controlled by an Arduino Uno. Everything is working, but I need to fine tune some things. By process of elimination I've found a considerable amount of noise in the audio output coming from the LED circuit which consists of a MAX7219 and 15 LEDs. I'm wondering if anyone has experience as to why this may be.

My best guesses are that either it's due to the nature of breadboarding and will go away on a properly routed PCB or the MAX7221 would be a better chip for this situation because it's supposed to have lower EMI.

IMG_2544.jpg

MAX7221 would be a better chip for this situation because it's supposed to have lower EMI.

What makes you say that?

Any high speed digital signals generate signals that can be picked up on audio circuits, it is quite common.
You need to make sure your analogue ground and your digital ground are kept separate and only joined at one point. Keep digital lines as far away as possible from analogue lines. Make sure the digital power supply is separate or at least decoupled from the analogue supply.

You can also limit the bandwidth of the audio circuits so they don't pick up as much.

Yes tiding up that rats nest will help but without correct layout it will not be enough.

The MAX7219/7221 multiplex at 800 Hz.
The slower rise & fall times, see page 4
http://datasheets.maxim-ic.com/en/ds/MAX7219-MAX7221.pdf

may help with noise.

Thank you both for the quick replies!

Grumpy_Mike:

MAX7221 would be a better chip for this situation because it's supposed to have lower EMI.

What makes you say that?

The description on the data sheet. It's a guess, but for a few bucks I'm tempted to try it.

Grumpy_Mike:
Any high speed digital signals generate signals that can be picked up on audio circuits, it is quite common.
You need to make sure your analogue ground and your digital ground are kept separate and only joined at one point. Keep digital lines as far away as possible from analogue lines. Make sure the digital power supply is separate or at least decoupled from the analogue supply.

You can also limit the bandwidth of the audio circuits so they don't pick up as much.

Yes tiding up that rats nest will help but without correct layout it will not be enough.

The analog and digital grounds are separate and joined at one point near the volume control IC. Both DGND and AGND on that IC are connected to the analog ground as per (Ask the Applications Engineer-12: Grounding (Again) | Analog Devices). The system as a whole is a "star of stars". I've used Dave Davenport's Audio Component Grounding and Interconnection guide to get me this far with the grounds.

The amp has its own 12V supply and I have a +/- 5V supply for 5V to digital and +/- 5V to analog, so the +5V line is being shared between the digital and analog ICs. It's decoupled when it hits the board with a 10uF and .1uF in parallel to ground and each IC is decoupled with a .1uF near the supply pin to ground as well. I read the page on your site on decoupling and it was helpful.

Does it help to say that the amplitude of the noise increases as the number of illuminated LEDs increases?

*edit: added photo of ground layout

IMG_0004.jpg

so the +5V line is being shared between the digital and analog ICs.

That doesn't help, try this circuit and if you haven't got any inductors then try with 10R resistors, not as good but better than nothing.

Double_Decouple.pdf (15.8 KB)

I changed the location of some parts so some leads were shorter/straighter last night and then added the decoupling circuit you shared this morning. There is a drastic difference in the amount of noise now. Thanks Mike!

Now to tackle the capsense circuit...