1
\$\begingroup\$

I want to interface with two I2C slaves operating in different voltages. By searching around for possible solutions, I stumbled upon this AN by NXP. Although I understood everything and makes perfect sense, I am still a little skeptic about it for possible pitfalls since I don't want to ruin the entire design due to I2C interface failure.

The slaves operate in 1.8V and 3.3V respectively, the I2C clock line should operate in 400 kHz (both devices support that) and the master has configurable I/O levels, so I can connect it on either side. I am thinking of using either a single SSM6N7002KFU or two 2N7002NXAKR for the job.

As far as I can see, it should work fine. Am I missing anything?

There is, also, the option to connect the ICs separately, so each one has its own dedicated bus and voltage levels, but I would like to avoid that for obvious reasons (layout + firmware complexity).

\$\endgroup\$
3
  • 1
    \$\begingroup\$ You can also get the level shifter IC made for this task, without using discrete MOSFET IC. ti.com/logic-circuit/voltage-level-translation/overview.html \$\endgroup\$ Aug 11, 2020 at 12:31
  • 1
    \$\begingroup\$ Ah, some years ago me newbie read the same NXP app notes, and like you, I understood everything and everything makes perfect sense. So I soldered 2N7000 x2 on a proto board and found everything working OK. But later I found chips like"TXS0102 2-Bit Bidirectional Voltage-Level Translator for Open-Drain and Push-Pull Applications": ti.com/lit/ds/symlink/…. So I just use those cheapy breakouts and so far so good. So I think TSX010x's is a better idea. \$\endgroup\$
    – tlfong01
    Aug 11, 2020 at 12:43
  • \$\begingroup\$ I also found TI and others make different version (TXS/TXB), some for open drain only, some are for both open drain and push pull. My experience is that open drain only is better than the general purpose for I2C application. I also remember TI has another version specially designed for I2C applications. \$\endgroup\$
    – tlfong01
    Aug 11, 2020 at 12:50

3 Answers 3

0
\$\begingroup\$

After some serach on web I have found TI LSF0102.

CERN CERN

enter image description here

Intel

There are also other possibilities, different packages, other manufacturers. What's important that those devices are made just for resolving your issue, high speed, stable.

\$\endgroup\$
0
\$\begingroup\$

just use a TXS0102 for the 1.8V side of the bus.

\$\endgroup\$
1
  • \$\begingroup\$ Why not LSF0102? \$\endgroup\$ Aug 11, 2020 at 12:41
-1
\$\begingroup\$

Section 2.1.1 No. 2 of the application note says:

A 3.3 V device pulls down the bus line to a LOW level. The source of the MOS-FET also becomes LOW, while the gate stays at 3.3 V. VGS rises above the threshold and the MOS-FET starts to conduct.

This requires that the transistor's threshold is sufficiently below 3.3 V. The 2N7002 is designed for 5 V and might still work at 3.3 V, but the 1.8 V in your circuit is most likely not enough to make it conduct.

You have to choose a MOSFET with a low enough threshold; ideally, it has an RDS(ON) specification for a VGS of 1.8 V or lower. A common choice for this application is the BSS138 (made by many manufacturers).


Alternatively, use a specialized level-shifting chip. The LSF0102/PCA9306/NLV9306 simply contain the same two MOSFETs (but requires an extra 200 kΩ resistor for Vref_B); the TXS0102/NXS0102/FXMAR2102/TCA9406 already have integrated pull-up resistors.

\$\endgroup\$
2
  • \$\begingroup\$ On page 6 of 2N7002NXAKR datasheet mentions that VGSth is typ. 1.6V. Isn't that the required voltage difference so it conducts? \$\endgroup\$
    – Mr.Y
    Aug 11, 2020 at 13:36
  • \$\begingroup\$ It's 2.1 V in the worst case, and at the threshold voltage, the transistor is considered almost off (the current is too small, and the drain/source voltage is too large). To find out at which voltage the transistor is safely switched on, you have to look for R_DS(ON). \$\endgroup\$
    – CL.
    Aug 11, 2020 at 14:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.