element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Embedded Forum I2C communication between 3.3V uC and 5V uC
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Verified Answer
  • Replies 4 replies
  • Answers 1 answer
  • Subscribers 475 subscribers
  • Views 2213 views
  • Users 0 members are here
  • level_conversion
  • i2c
  • arduino
Related

I2C communication between 3.3V uC and 5V uC

vish
vish over 11 years ago

Hello all,

 

I'm currently working on a project which has a few different microcontroller boards to form a network. I'm planning to use I2C to communicate with each other. But two of my development boards are working on 3.3V range and other boards( arduinos ) are working at 5V range. As I want to use same I2C bus to communicate with them all, what kind of conversion circuit I have to use to interface my 3.3V development boards to I2C bus?

 

Thanks ahead,

vish

  • Sign in to reply
  • Cancel

Top Replies

  • Former Member
    Former Member over 11 years ago +1 verified
    The correct way to do it is given here http://www.nxp.com/documents/application_note/AN10441.pdf There are also specific devices designed to do it like http://www.ti.com/product/pca9306 What John alludes…
  • johnbeetem
    0 johnbeetem over 11 years ago

    I2C devices have open-drain drivers, which only pull the SCL and SDA lines low to 0V.  Each I2C line should have a single pull-up resistor: make sure they pull up to 3.3V and not 5V.  Also make sure that each 5V part has a reasonable Vih (Input voltage high) threshold.  Many 5V chips use TTL Vih which is 2.0V, which works.  Others may have Vih = 0.7 x 5.0 = 3.5V, which means you'll have to do something else.

     

    If you want to make sure 3.3V I2C inputs don't go too high, clamp SCL and SDA to 3.3V with Schottky diodes.  That will limit them to 3.5V or so.  They should not be needed if the SCL and SDA pull-up resistors are connected to 3.3V, but it doesn't hurt and may protect you from killing a board accidentally.

     

    Wikipedia has a good article on I2C: http://en.wikipedia.org/wiki/I2C

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago

    The correct way to do it is given here http://www.nxp.com/documents/application_note/AN10441.pdf

     

    There are also specific devices designed to do it like http://www.ti.com/product/pca9306

     

    What John alludes to above is that you have to check the spec of the device. If the spec says 0.7 * Vcc for a 5V part, then follow the spec and use proper level translators. While it's true that the device may well use 2.0V today, you don't know if that'll be true tomorrow.. and I feel that it would be irresponsible to design something that you know is operating outside the manufacturers defined spec, or to encourage others to do so.  If the spec for the 5V part says Vih=2.0V then it's perfectly ok to do it.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Reject Answer
    • Cancel
  • vish
    0 vish over 11 years ago

    hello both,

    thanks a lot for your reply. I just found this article where they are connecting 3v3 rPi to 5V arduino directly for I2C. Thought I might share with you. image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • electronichamsters
    0 electronichamsters over 11 years ago in reply to vish

    Probably too late to the discussion.  But there are a lot of Arduino clones that include a 3.3V to 5V switch.  I think that makes them easier to use.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube