I am building a gimbal and passing I2C through sliprings. Right now I have 1.6Vpp spikes at about ~32kHz on the i2c bus. (The spikes are harmonics from motors which are driven at 16~17kHz).

The i2c bus is at 400kHz, so I believe I need a high pass filter to block anything below maybe 100kHz? How else would I clean the i2c bus?

I added an CR filter (cap in series, tried 1nF, 10nF and 100nF with 2k, 1k and 800R pull up) but the sensor wont even start with this modification.

I also added ferrites on both ends of the cable to kill any higher frequency spikes.

P.s.: it works perfectly if I pass the wires outside the sliprings with motors on and through the sliprings with the motors off.

  • \$\begingroup\$ Passing I2C even on wires is not recommended because of high noise sensitivity, but slip ring is much worse.. If you filter the higher frequencies, you will kill the harmonics of the signal itself. I would recommend converting the signal to a more robust protocol. Maybe to a differential pairs. \$\endgroup\$ – Eugene Sh. Apr 30 '15 at 21:53
  • 1
    \$\begingroup\$ Bad idea from the get go. Maybe with optical slip rings.... \$\endgroup\$ – Scott Seidman Apr 30 '15 at 22:41
  • 1
    \$\begingroup\$ I suspect you will find that you need a signaling method which is inherently able to work with AC coupling, which I2C is not. Consider if SDA is a byte of '1's in a row, it would be indistinguishable from sending a byte of '0's through the high pass filters you propose. \$\endgroup\$ – Zuofu Apr 30 '15 at 23:04
  • 1
    \$\begingroup\$ Your slip rings may very well be acting like a nice little pickup antenna and responding directly to the rotating magnetic field from the motor. Is there any possibility to shield the slip ring assembly? Have you tried removing the slip rings from the motor assembly and evaluating sensitivity by having the motor running and then moving the slip ring subassembly around - both orientation and distance evaluation? This needs to be investigated simply because any digital protocol you try to pass through the slip rings as fitted now is going to be affected by interference to some degree. \$\endgroup\$ – Michael Karas May 1 '15 at 4:54
  • \$\begingroup\$ ok, I thought it would be worth the try but it seems its just waaay too much of a long shot. thanks all. \$\endgroup\$ – Wesley Lee May 3 '15 at 21:10

High-pass filter? At first, I suspected that it was a typo.

I would think that a high-pass filter would fundamentally clobber the I2C communication (before the bus capacitance and EMI get a chance to clobber it). The level on the data line would decay by the time that it's sampled.

I2C was intended for communication within a circuit board. Okay, one might push his luck and run I2C though some wires as long as the wires are short enough and EMI is not too bad. Okay, one might buffer the I2C and push it a little further. Gimbal with moving slip rings? Consider some other communication method for the gimbal. Or you might end up like this guy.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.