View previous topic :: View next topic |
Author |
Message |
arunb
Joined: 08 Sep 2003 Posts: 492 Location: India
|
I2C using 3.3V instead of 5V |
Posted: Thu Jul 04, 2013 12:55 pm |
|
|
Hi,
I am working on a project that uses a 18F4620, two MCP23016 I/O port expanders. Communication between the MCP23016 and the PIC is done using I2C.
My question is can I2C work on 3.3V ?
I know the 18F4620 can work on 3.3V and so can the MCP23016.
thanks
a |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9225 Location: Greensville,Ontario
|
|
Posted: Thu Jul 04, 2013 1:35 pm |
|
|
Yes, I2C will work at 3volts. Most 'modern' chips are that voltage.
However an 'F' version PIC may not run correctly at 3 volts. You'll have to check the datasheet for specs on frequency, etc.
You can use an 'LF' PIC though at 3 volts.
Also, if you plan to mix the voltages, you'll have to use level translator chips in between.
hth
jay |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19504
|
|
Posted: Thu Jul 04, 2013 2:39 pm |
|
|
and the pull up resistor values depend on current, so have to rise at lower voltages.
It is in the I2C reference documents, including tables of resistor values versus capacitance and speed for several voltages. |
|
|
dyeatman
Joined: 06 Sep 2003 Posts: 1933 Location: Norman, OK
|
|
Posted: Thu Jul 04, 2013 4:05 pm |
|
|
Be careful! According to the datasheet the 18F4620 will NOT run at full
speed at 3V. It will only run at full speed with 4.2V or greater. _________________ Google and Forum Search are some of your best tools!!!! |
|
|
Markdem
Joined: 24 Jun 2005 Posts: 206
|
|
Posted: Thu Jul 04, 2013 5:12 pm |
|
|
Have a look at a PCA9306. Sounds like what you are looking for. With it you can still run the 18F4620 at full speed and keep the MCP23016 at 3.3v.
Or, if you feel like doing it your self look at;
http://www.nxp.com/documents/application_note/AN10441.pdf
Have Fun |
|
|
PCM programmer
Joined: 06 Sep 2003 Posts: 21708
|
|
Posted: Thu Jul 04, 2013 6:14 pm |
|
|
If the PIC is running at +5v and the i2c slave chip is running at +3.3v,
you don't need to use level converters if you do it this way:
1. Use any pins from B0 to B5 on PortB for the SDA and SCL signals.
Don't use any other port. Only PortB will work for this method.
(Don't use B6 and B7, because your ICD is connected to those pins).
2. Use a suitable resistor value for the i2c pullups, such as 2.2K.
3. Connect the pullups to +3.3v.
This method will use software i2c to talk to the i2c slave chip.
All of the above items are explained in these two posts by me
and Ttlemah:
http://www.ccsinfo.com/forum/viewtopic.php?t=48899&start=10
http://www.ccsinfo.com/forum/viewtopic.php?t=48899&start=21 |
|
|
arunb
Joined: 08 Sep 2003 Posts: 492 Location: India
|
RE |
Posted: Fri Jul 05, 2013 12:26 am |
|
|
Thanks for the replies.
I think 5V supply will be fine.
thanks
a |
|
|
|