Electronic – I2C Level translation

i2clevel-shifting

In our current design, we have two devices which communicate with each other using I2C. But their I2C logic levels are different, so we need to use a level translation?
Can I use a simple level translator for this?
I have chosen this part MAX13003
http://datasheets.maximintegrated.com/en/ds/MAX13000E-MAX13005E.pdf

Best Answer

It can be easy to level shift the I2C signals between two voltage domains using any one of a number of different buffer parts that are made specifically for this purpose. However for most applications there is another discrete solution that works very well as shown below.

enter image description here

This solution will be lower cost to implement as long as you do not need additional buffering of the I2C bus. If buffering for long buses or excess capacitance or going between boards is needed then it is recommended to look into the chip type buffer solution.

You can gain additional information and understanding from the NXP (formerly Philips) application note on Bi-directional Level Shifters.