I2C devices stop working after brief time of operation

Thread Starter

ehabawni

Joined Dec 7, 2011
7
Hello Engineers,
I'm facing a problem with the I2C devices in which they stop working after a brief time of operation. They are connected to a control board that I have designed to control a disinfection machine over cables.
When testing the controller off-machine it works well, but inside the machine is another story.
previously I had some EMI issues in another machine uses the same controller caused by the switching of the AC motors using Mechanical contractors, which caused the MCU to hang, but I have managed to solve it by replacing the contactors with solid-state relays.
I know it's not recommended to use I2C devices over cables but it was the easiest way to get the job done without designing some child board with RS-485 or CAN controller, and because I have experimented with I2C over CAT6 cables before without problems.
Here is a brief description of the system to get an idea:
- The controller is connected to multiple digital and analog sensors and controls DC and AC loads (induction motors), and communicate with the LCD, IR temperature sensor, ToF IR Sensor using I2C (the Bus lines are buffered using PCA9515B I2C Bus repeater).
- The controller has an ESP32 module on-board and is connected to the wifi network and Bluetooth is also activated.
- the board is 2-layers with ground planes on both sides with a strong connection through stretching vias
- 3x I2C device connected to the board using unshielded CAT6 Cables, two of them share the same cable, and the third is using a separate cable, the length of the cables are 4.5M(14.8ft) and 1.6M(5.2ft) respectively.

Any suggestion or solution to this problem?
Thank you.
 

cmartinez

Joined Jan 17, 2007
7,176
I had a similar problem to what you're describing, and at first I attributed it to EMI too. In the end, the problem was that the power supply for the controller was too small and unfiltered, and the electric motors were "stealing" power during startup.

I solved the problem by adding a filter to the controller board in the form of a diode followed by an inductor in series and few big fat caps in parallel. The diode is there to prevent the caps from discharging back into the power supply when it starts to "cough"
 
Top