I am designing an I2C level translator using MOSFET. I am using BSS138 DATA SHEET. My clock can go up to 1 MHz. The output is not coming properly for fast mode plus (CLK = 1 MHz, RISE TIME = FALL TIME = 120 ns). The 1.8 V output is peaking to 2.1 V and slowly settles to 1.8 V.Please find the attached circuit diagram and waveforms. Is it a pull-up resistor issue?

May I know what is wrong with my circuit?




  • \$\begingroup\$ i2c doesn't work that way. i2c output switches between High Z and low. \$\endgroup\$
    – esehic
    May 17, 2021 at 8:08
  • \$\begingroup\$ I took the circuit from this app note nxp.com/docs/en/application-note/AN10441.pdf \$\endgroup\$
    – HARI T O
    May 17, 2021 at 8:19
  • 3
    \$\begingroup\$ The circuit is ok, but your simulation not. I2C output is open drain output. In your simulation, your output (SDA5V) switches between 0 and 5V. During switching, there is a current flow between 5V (V4 and V3) and 1.8V (V1) through MOSFET drain-gate capacitance, which is limited only by Voltage source internal resistance. \$\endgroup\$
    – esehic
    May 17, 2021 at 8:39
  • \$\begingroup\$ My input is 5V side and output is 1.8V side.To solve the issue you mentioned,may I know what I need to do \$\endgroup\$
    – HARI T O
    May 17, 2021 at 8:50

1 Answer 1


I2C output is an open drain output. It means it can not provide 5V at output. It can only switch between 0 (low) and High-Z (high - in this case pullup resistor provides 5V at the line, and not i2c Output).

Your simulation should look like:

enter image description here

LT Spice uses some parameters when you don't give it right model. As you see it looks good.

But as you can see at Page 3 of AppNote (Chapter 2), this solution is not good for high speed mode.

The bidirectional level shifter can be used for both Standard-mode (up to100 kbit/s) or in Fast-mode (up to 400 kbit/s) I2C-bus systems. It is not intended for Hs-mode systems, which may have a bridge with a level shifting possibility.

If you try with BSS123 FET in your simulation you don't get perfect result. FET can't turn off fast, because of gate-drain and gate-source capacitance.

You could maybe try with other FETS and different values of pullup resistors.

enter image description here


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.