Pages: [1]   Go Down
Author Topic: I2C (Wire) pull up resistors, Arduino Due, 20 (SDA0-3), 21 (SCL0-3)  (Read 1455 times)
0 Members and 1 Guest are viewing this topic.
Austria
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The I2C bus needs pull up resistors.

I looked at the Arduino Due schematics and saw that there are pull up resistors RN5A (1K5) and RN5B (1K5) for the I2C pins 20 (SDA0-3), 21 (SCL0-3).

pin 20 (SDA0-3) = TWD1
pin 21 (SCL0-3) = TXCK1

My first question:

Is it true that I do not need additional pull up resistors if I connect an I2C slave to pins 20 (SDA0-3), 21 (SCL0-3) of the Arduino Due? (On the Arduino Due schematics it is noted as "I2C Voltage Translator".)

My second question:

If I use the Wire-Library the I2C communication is via pins 20 and 21 ?

My third question:

How do I do (which library) I2C communication via pins 9 (SDA1 = TWD0)  and 10  (SCL1 = TWCK0) ? There are no pull up resistors for pin 9 and 10?

Greetings, Conrad
« Last Edit: March 05, 2014, 03:20:44 am by conradelektro » Logged

White River Junction, Vermont USA
Offline Offline
Full Member
***
Karma: 5
Posts: 106
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Conrad,
Is it true that I do not need additional pull up resistors if I connect an I2C slave to pins 20 (SDA0-3), 21 (SCL0-3) of the Arduino Due? (On the Arduino Due schematics it is noted as "I2C Voltage Translator".)
Yes.  You do not need to add (nor should you) any additional pull-ups anywhere in this I2C bus.  The resistors on the DUE are very aggressively sized (small).  Adding any additional pull-ups on the I2C bus could destroy these IO pins.  Also, the last time I checked, the print says that they are 1.5k pull-ups.  However, in reality, 1k pullups are installed on the PCB (double check to be sure).

Quote
If I use the Wire-Library the I2C communication is via pins 20 and 21 ?
Yes.

Quote
How do I do (which library) I2C communication via pins 9 (SDA1 = TWD0)  and 10  (SCL1 = TWCK0) ? There are no pull up resistors for pin 9 and 10?
It's the same wire library.  Do a quick search for "wire1" for solutions.  Also, become familiar with the limitations of the current wire library, as many of the lower-level (more advanced) routines still do not work.

In addition, yes, you will need to add external pull-ups for SDA1/SCL1.

Good luck!

-Chris
Logged

Austria
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Chris,

thank you for your reply.

I could connect a MCP4725 Breakout Board (12-Bit DAC) with an I2C Interface ( http://www.adafruit.com/products/935 ) via SCL1 and SDA1 (Wire1.xxx) to an  Arduino Due.

If some one is interested I will post the code once I have a more intelligent sketch (e.g. dimming and increasing the light output of a red LED)  than the stupid first version which just tested the I2C connection to the 12-Bit DAC (reading it and setting a few DAC values).

The "MCP4725 Breakout Board" has 10 K pull up resistors for SCL and SDA which made it necessary to use the SCL1 nad SDA1 on the Arduino Due (because SCL1 and SDA1 have no pull up resistors on the Arduino Due board).

It is a shame that the standard I2C interface ( SCL = pin 21  and SDA = pin 20) has 1 K pull up resistors on the Arduino Due board, which makes it pretty much useless for most I2C ICs (because they can not pull down 3.3 mA).

My question: Where are these 1 K pull up resistors (RN5D and RN5C) on the Arduino Due board? I might try to remove them.

Greetings, Conrad


* MCP4725 breakout board.jpg (241.19 KB, 976x701 - viewed 101 times.)
« Last Edit: March 06, 2014, 01:25:29 pm by conradelektro » Logged

White River Junction, Vermont USA
Offline Offline
Full Member
***
Karma: 5
Posts: 106
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

My question: Where are these 1 K pull up resistors (RN5D and RN5C) on the Arduino Due board? I might try to remove them.

As you might guess from their designators, RN5D and RN5C are part of a resistor array.  Fortunately, they are the only two resistors used in the array (the rest are not connected), so it's ok to remove the whole thing.

See the attached pic for location.

I always remove them (with hot tweezers).

Regards

Chris


* ArduinoDue_Front.jpg (238.92 KB, 1024x546 - viewed 112 times.)
Logged

Austria
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Chris,

thank you again, you are solving my problems in real-time.

I like the idea to use hot tweezers for removal of the pull up resistors from the Arduino Due board. Have to build up courage to do it.

What I am aiming for is to connect this 3-axis compass via I2C to the Arduino Due:

http://at.mouser.com/ProductDetail/Olimex-Ltd/MOD-HMC5883L/?qs=%2fha2pyFadugIcApImewx497gG5mUfdX%2ftp9xN8EFA%252bOhLLPFn4VYKg%3d%3d

It is in the mail and will arrive soon. I just wanted to clear the I2C issues with the 12-Bit DAC (which I had available).

Greetings, Conrad
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

My question: Where are these 1 K pull up resistors (RN5D and RN5C) on the Arduino Due board? I might try to remove them.

As you might guess from their designators, RN5D and RN5C are part of a resistor array.  Fortunately, they are the only two resistors used in the array (the rest are not connected), so it's ok to remove the whole thing.

See the attached pic for location.

I always remove them (with hot tweezers).

Regards

Chris

Hi guys,

 just want to ask if this is the only way to remove the pullup resistors from 20,21 or is there another way to disable it?

did anybody else tried using  SCL1 and SDA1 and how?
Logged

Pages: [1]   Go Up
Jump to: