I2C (SDA-SDL) Voltage problem

Hi, i'm a little bit confused about the I2C and wiring library.
I need to use a sensor witch need 3.3v both on the Vcc and on the SDA-SCL.
From what i understood arduino has an internal pull-up resistor on SDA-SCL lines therefore their voltage is 5v, is this right?
If this is right all i need to do is to disable the internal pullups and use two external pull-ups resistor between SDA-SCL and the 3.3v to have SDA-SCL running at 3.3v right?

Tx.

Gabriele

The internal resistors are not automatically used and wouldn't be strong enough anyway, normally you add some externally.

What is the sensor? Some chips can handle 5v on SCL and SDA.

If you add resistors to 3v3 the voltage levels probably won't be high enough for the Ardiuno, it normally needs about 3v5. It might work though.


Rob

Well, i already fried a mag 3110 and i'm going to try a hmc 5883l. I didn't understand already if the 5883l from spark fun can handle 5v SDA-SCL

The hmc5883 chip appears to need a 2V supply, I assume it's on a Sparkfun breakout board. Does that have a regulator?


Rob

From the Sparkfun site

There is no on-board regulator, so a regulated voltage of 2.16-3.6VDC should be supplied.

Looks like 3v3 is good, I miss read the data sheet.

That doesn't means that the I2C will work but people seem to be using it so I guess it's OK.


Rob

Well i think i will first use a level converter on SDA-SCL and then i will do further investigation, if anyone is interested i'll post the results here

The internal resistors are not automatically used

The Wire library does enable the internal pullups by default.

It's always safer to use a logic level converter just in case.

Well, thanks to Fabio Varesano help i figured it out:

-Wire enable pull-ups by default so SDA-SCL lines are 5v

Reference: varesano.net -

-Internal pull-ups actually degrade the signal so i suggest you to disable them also with sensor that tolerate 5v voltage

Reference: http://www.dsscircuits.com/articles/effects-of-varying-i2c-pull-up-resistors.html