Electrical – How to filter noise out from large PWM system

noisepower supplypwm

I have a system that drives 300m of 24V LED strips. The strips are in 25 sections, each controlled by a MOSFET attached to an 328P.

enter image description here

When PWMing the strips (f=500-1000hz depending on the pin), the micros were becoming unresponsive. Suspecting it was a power rail noise problem, I connected the micros to a separate 12V power supply (all grounds are connected) and added a bunch of 100V 2200uF caps to the 24V supplies (as seen in the photo), some 470uF caps to the 12V rail, and some 100uF caps to the 5V rail of each board. This has seemed to help a lot.

However, every now and then, a micro still hangs. How can I further reduce the noise, and avoid a micro hanging?

Extra info:
AC coupled probe of the 12V line
AC coupled probe of the 12V line

AC coupled probe of the 5V line on the controller boards
AC coupled probe of the 5V line on the controller boards

AC coupled probe of the 24V line
AC coupled probe of the 24V line

Controller board
Controller board

Closer view of the boards
Closer view of the boards. The light gray cable is the 12V line.

Best Answer

I'd suggest you have a couple of problems with your design, particularly since you've mixed high and low current circuits on the same PCB.
You can add capacitive and inductive filters to your hearts content but you'll be chasing your tail for quite some time.

  1. Quite high levels of noise on the ground are acceptable if you have extreme isolation (PSRR) on the MCU supply lines. In your case you've used an LM7805 to supply the '328 VCC and this is inadvisable in a noisy environment. Consider using a shunt regulator such as the TL431 from the 12 V supply to increase the impedance to that supply.
    The TL431 is good to about 100 mA so should be enough for your '328.

  2. Your serial connection between processors is another potentially noisy connection. It's usually advisable when connecting multiple MCU board in an environment like this to optically isolate these lines.
    I'd assume you are feeding the same serial data connection to all boards (a single serial line from your source PC/MCU), so you could arrange the inputs to be multiple opto diode inputs in series driven by a single output from your source.