Quote:
Originally Posted by EricVanWyk
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