Noise on I2C bus

Thread Starter

skybox

Joined Mar 2, 2009
68
Hi guys,

Designing a mini robot with the following motor drivers:
http://focus.ti.com/lit/ds/symlink/drv8402.pdf

I am getting noise on my I2C bus whenever the motor drivers are activated. This is causing various errors on devices I am communication with I2C

Are there any tips on how to cancel out this noise? I am using a 10k pullup with 3.3V from the uP (PIC 33F series) for the I2C SDA, SCL lines.

I know this is not really detailed post, but I am looking for design tips more than anything else.

Any tips would be appreciated. Thanks!
 
Go a bit lower in resistance if you can. (5k?)

Slow the I2C speed as slow as you can without affecting performance.

Use a little RC low-pass so long as it won't affect your bits.

Do you have a picture of the noise, or an idea of the time-scale? What's your preferred bit rate?
 

Papabravo

Joined Feb 24, 2006
21,225
Separate the digital logic ground and the motor ground on your PC board. Connect the two grounds at "one point only" at the power supply. Make sure you have sufficient bulk storage and HF bypass caps on both supplies. Is this a prototype or have you already cut PC boards?

"please Vasily - one ping only!"
Capt. Ramius -- The Hunt for Red October
 

Skeebopstop

Joined Jan 9, 2009
358
Post a schematic and might be able to help more.

1. I2C is not a robust communication protocol for noisy environments. Use strong pull ups, my guess is you might get away with 3k3. Check the drive strength of the driver IC to ensure it can sink and source enough current.
2. Star point grounding.
3. Strong segreggation of motor power and logic power (i.e. differential cap followed by common mode choke followed by two common mode caps - aka to earth).
4. Hit your I2C with some checksums and retry loops
5. Ensure your power rails driving the IC are on linear regulators (less ripple and much higher bandwidths).
6. Beware of miller capacitance making the driver outputs to the motor very very dirty (see literature) and coupling into your micro where I assume your I2C resides.
7. confirm a reset line isn't being hit with some noise

just pick out any of these suggestions and give em a whirl and see if it quiets up. Schematics and layout for potentially more suggestions.
 

kubeek

Joined Sep 20, 2005
5,795
Don´t use I2C, it is not good for noisy environments. CAN should get you better reliability as it is an automotive standard.
 
Top