Electronic – Properly grounding 2 MCUs using I2C

groundinggroundloopsi2cpic

I'm building a mechatronic system that consists of 1)XY Gantry controlled with PIC32 and a DIY motor shield and 2)control box with PIC24 three potentiometers + room for expansion, typically located fairly far away. The two systems are to be connected using an XLR line because this is in an audio setting.

In designing the system, two big concerns have been to not introduce noise into the rest of the system, and to comprehend the ground loop problem. My knee jerk as an EE student was to use Op-amps to interrupt the ground loop. The plan was to send the three signal lines from the wipers of the pots over xlr, and to use the control system ground to measure the differential voltage at the system. I went to great pains to design something that would work with a true rail-to-rail swing. Works decently well on the bench, and I think this would work for the final system, but it seems like im turning into the guy who only has a hammer in the toolbox.

So I get to thinking about I2C. Allows plenty of room for expansion, and it only takes up two lines. Potentially, this means the system that was going to take two XLR cables might only need one now. So, here is the system I envision:

enter image description here

This image is ommiting the pull-up resistors on the bus AND the XLR's SHIELD. I plan on having pull-ups on the three segments of the bus (pre-buffer on both ends, and on the buffer.) The CLK will be operating relatively fast, so I don't want to introduce EMI into the audi0 lines as they will all be sharing an XLR bus, So im wondering how to properly connect the grounds. I've read the RANE notes, and from what I gather, to make a functioning faraday cage, I need to connect both chassis to the cable shield to make a complete enclosure.

My confusion is this: chassis ground is becoming an extension of the shield to keep out EMI. A lot of what people write assumes that you've got earth ground handy, and that you might tie earth, signal and chassis together at some point, via a direct, RC coupled, or diode coupled connection. First off, it has occurred to me that I don't have earth ground at my circuits via DC barrel because I'm sitting on top of two different power supplies via a switched and transformer coupled power supplies. So, do I tie the shield to the signal ground (barrel sleeve)? If so, with direct, RC or diode? My thoughts are yes, and to use an RC circuit with <= 100Ω. In a bad case – where the power supply grounds 1&2 are very different – will the offset at ground affect my logic levels? The P82B715's are supposed to be 'level translating'.

Thanks for the input.

Best Answer

There are a few options available.

The most industry-standard approach to this issue is to use a different bus instead of I2C. Many microcontrollers support CAN bus or ModBus natively. Another common choice is RS-232.

The other approach would be to use isolated transcievers. I recommend doing this regardless of which bus you use.

The third approach would be to pass power along with your communication. You specifically note that it's low power, but don't define how low, so I don't know if this is viable.