I2C noise suppression solution

Discussions relating to development and use of the OpenServo hardware.

Moderators: jharvey, Secondary Admin, Admins

Post Reply
ginge
Site Admin
Posts: 1031
Joined: Sat Jan 14, 2006 2:34 pm
Location: Manchester, UK
Contact:

I2C noise suppression solution

Post by ginge » Mon Jun 26, 2006 8:25 pm

Hi all,

A couple of people, myself included, have been wrestling with i2c bus data corruption, and generally odd read errors. At the extreme of these corruptions, the I2C host loses arbitration, and the AVR gets stuck in an odd error state. (I don't know enough to say what is really going on)

There is a very simple solution to all of these data corruption errors.

Very effective noise suppression can be achieved by soldering a 10nF ceramic capacitor across the terminals of the motor.

This completely cleared up all I2C issues, enabling me to do over 10000 successive block reads while the servo was in motion.

I have spoken to Mike over this issue, and he is going to add provision for a small SMT ceramic capacitor between the motor terminals in the next PCB revision.

It's been a hard problem to track down, with a very simple solution.

Barry

DKNguyen

Post by DKNguyen » Tue Jun 27, 2006 2:11 am

Isn't that already done in the OpenServo schematic? (Or does the schematic use 0.1uF=100nF?)

mpthompson
Posts: 651
Joined: Mon Jan 02, 2006 11:38 pm
Location: San Carlos, CA
Contact:

Post by mpthompson » Tue Jun 27, 2006 4:08 am

The capacitor Barry describes is directly across the terminals of the motor within the H-Bridge. My guess is this catches higher frequency noise that the other capacitors miss.

-Mike

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests