Go Down

Topic: Due I2C Voltage (Read 2119 times) previous topic - next topic

crazyben

Hello all,

as mentioned here http://arduino.cc/en/Main/ArduinoBoardDue
Arduino Due's I/O Voltage was changed from 5V to 3.3V.

Does this also mean that we have to change the voltage of the I2C Devices like DS1307, DS1820?

Thanks
Ben

Graynomad

#1
Dec 21, 2012, 12:20 pm Last Edit: Dec 21, 2012, 12:28 pm by Graynomad Reason: 1
Normally that would be the case. Sometimes 3v3 chips allow higher voltages and currents on I2C pins because they know it's often required.

If nobody answers for sure soon I'll have a look at the data sheet, for that matter so can you.

EDIT: No mention of 5v tolerance in the data sheet so it looks like if you need that you'll have to use voltage translators like the PCA9306.

_____
Rob
Rob Gray aka the GRAYnomad www.robgray.com

Markus_L811


Hello all,

as mentioned here http://arduino.cc/en/Main/ArduinoBoardDue
Arduino Due's I/O Voltage was changed from 5V to 3.3V.

Does this also mean that we have to change the voltage of the I2C Devices like DS1307, DS1820?

Thanks
Ben

Think so I'm sure (I don't have the I2C Spec to read it) but if the Chip (DS1307 or DS1820) works with 5V the I2C would talk with it to, so if the IC can understand I2C with 3.3V he can listen but the answer would at 5V level so it will damage the Due

stimmer

I thought that I2C was open-collector / open-drain - so it shouldn't matter what the voltage level is.
Due VGA library - http://arduino.cc/forum/index.php/topic,150517.0.html

Graynomad

It is. but if you pull it to 5v to satisfy a peripheral chip you are applying that 5v to the Due pin.

It will be through a resistor of a few k so may not do any harm, but also the ESD diodes on the Due pins will clamp the voltage level to ~3v9 (depending on their forward voltage) which may or may not work for the 1W chip.

I've seen chips that can handle this, I assume they don't have the ESD diodes on those two pins, but I can see no mention of this in the SAM data sheet.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

retrolefty


I thought that I2C was open-collector / open-drain - so it shouldn't matter what the voltage level is.


True, but only true when the Due's I2C pins are in output mode driving the signals, however when it's in receive mode reading the I2C signals it would be subject to whatever the external pull-up voltage is.

SomeRandomGuy

If you use your own pull-up resistors attached to the i2c pins and the due's 3.3V supply, then all the high pulses on the line will be 3.3V, even if the peripheral is running on 5V. That is one of the beauties of I2C. I successfully did this to a DS1307 the other day. Run 5V to the DS1307's supply pins, but be sure that the pull-up resistors for the i2c are tied to 3.3V on the Due.

Also, I got lucky that the DS1307 has TTL logic levels, which means that it interprets 3.3V to still be logic high. You will have to check your datasheet for each peripheral to see if it will recognise 3.3V as a logic high input.

Go Up