Skip to main content

I2C voltage level converter

Posted in

I have created a schematic and PCB to solve the problem of different host device I2C voltages.

Here is the original reference material used to create the PCB
AN97055

This will allow a 3.3v host I2C to communicate with 5v slave device, and vice versa.
This implementation is tolerant up to 12v I2C bus, resistor values may have to be changed to compensate.

The connectors on either end are edge connectors, but to minimise bus capacitance, I recommend soldering the cables.
The best results come when the adapter is connected close to the host end of the chain.

Construction is either single, or double sided. Single sided is achieved using 3 links as in the diagram below. For Double sided, just etch the link too.

It could be noted that this could be reduced in size with the substitution of SMT resistors for the full size through hole type I chose for convenience.

The MOS-FET used is an NDS351AN, which loosely fits the specification in the application note. A suitable SOT-3 substitution may be made.

Pins are laid out according to I2C specification regarding the adjacent placement of SDA and SCL lines.

Constructed board. Made by hand in a hurry.

Here is the schematic

(Click to enlarge)

And the PCB top

PCB parts placement

EDIT: Thanks to Dave in the comments, he noticed that the 3.3v and 5v are swapped in this image!

Wire links placement

Download the schematic

Download the PCB

Circuit Board labeling is backwards

Dude,
Reeally hate to have to say this, but your circuit board labeling is backwards from your schematic.
The schematic is correct but the board has the 3.3V and 5V reversed.

Okay? :)

I am building one of these now.
Thanks for all your hard work on this, it has saved me a bunch of time!!

Dave

Dude! Nice catch. Apologies

Dude! Nice catch. Apologies and all that :)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.