View Single Post
  #5   Spotlight this post!  
Unread 17-01-2011, 20:25
Matt Krass's Avatar
Matt Krass Matt Krass is offline
"Old" and Cranky. Get off my lawn!
AKA: Dark Ages
FRC #0263 (Sachem Aftershock)
Team Role: Mentor
 
Join Date: Oct 2002
Rookie Year: 2002
Location: Long Island, NY
Posts: 1,187
Matt Krass has a reputation beyond reputeMatt Krass has a reputation beyond reputeMatt Krass has a reputation beyond reputeMatt Krass has a reputation beyond reputeMatt Krass has a reputation beyond reputeMatt Krass has a reputation beyond reputeMatt Krass has a reputation beyond reputeMatt Krass has a reputation beyond reputeMatt Krass has a reputation beyond reputeMatt Krass has a reputation beyond reputeMatt Krass has a reputation beyond repute
Send a message via AIM to Matt Krass
Re: I2C Cable Length issue?

Quote:
Originally Posted by EricVanWyk View Post
I'm putting my vote behind Matt's suggestion. However, just be sure to check that there aren't any shorts between the wires first.

If you have an oscope available, take a look at the wave forms. If they look a bit too curvy (as opposed to square), your RC time constant is too long. You can fix this by reducing C (shortening the cables), or reducing R.

To reduce R (increase pull up strength), the header just behind the NXT connector is a convenient place to do it. Try putting a 2k or 3k resistor in parallel to start. Check the schematic for details.
I hadn't thought of that, clever trick.

For those not sure what Eric is referring to, putting resistors in parallel lowers the resistance of the circuit, unlike putting them in series, which adds up all the resistances.

If you have two resistors in parallel, you can calculate their resistance as:

Code:
Rp = (R1 * R2) / (R1 + R2)
This means with the 10k (I believe) pull up in the sidecar, putting a 2k in parallel with it (by connecting the resistor to the +5V and the signal line on the sidecar) you'd get:

Code:
Rp = (10k * 2k) / (10k + 2k) = (20k / 12k) = 1.67k approximately
This would give you considerably more driving power and may be enough to overcome the bus capacitance.

Be warned though, I'm not sure on the legality of this, and I'd make sure to look up the technical specs on the digital sidecar to ensure your new resistors don't exceed any maximums on the output. (I'm still catching up on the new control system, I was an IFI guy back in the day...)

EDIT:

According to section 3.4.3 Specifications in this document: http://www.usfirst.org/uploadedFiles...Rev1_enc .pdf
the sidecar is capable of supply 3A continuous current nominally with a 5V supply. I would try not using all of that current on one GPIO it should be more than enough to drive any reasonable resistors you pick for your i2c bus. However I'd still be wary of the rules on this, I'm not sure how it falls
__________________
Matt Krass
If I suggest something to try and fix a problem, and you don't understand what I mean, please PM me!

I'm a FIRST relic of sorts, I remember when we used PBASIC and we got CH Flightsticks in the KoP. In my day we didn't have motorized carts, we pushed our robots uphill, both ways! (Houston 2003!)

Last edited by Matt Krass : 17-01-2011 at 20:40. Reason: Clarified current availability
Reply With Quote