Electronic – Using BSS138 in Level Switcher

level-shiftinglevel-translationmosfetnmos

I am trying to interface 1.8v UART and 3.3v UART using NXP app note here. Unfortunately, my circuit does not perform as expected. I am using BSS138 as mentioned in Adafruit and Spakrfun.

When I measure Vgs, it read 0v, but drain and source is somehow connected (same voltage, I checked also using buzzer). Therefore, no level switching happened on my circuit. Is this due to defect in my MOSFET?
After reading about MOSFET, I learn that drain and source will only connect if Vgs >= V threshold which is 0.8 – 1.5 in BSS138.

Best Answer

Here's what that app note says that may be relevant: -

The lowest possible supply voltage VDD1 depends on the threshold voltage VGS(th) of the MOS-FET’s. With a threshold voltage of about 1 Volt below the lowest VDD1, the level shifter circuit will operate properly. If for example the lowest VDD1 is 3 Volt, a threshold voltage VGS(th) of maximum 2 Volt is allowed.

I'm pointing this out because you are using 1.8V as lowest Vdd and the BSS138 is: -

VGS(th) Gate Threshold Voltage is 0.8(min) 1.3(typ) 1.5(max) V

So immediately you should not be expecting this to work if you go on the typical figure of 1.3V - this would imply your lowest Vdd can be no-less than 2.3V.

Going back to what you said in your question you say

When I measure Vgs, it read 0v

If you've used the circuit in the link you provided the gate is tied to Vdd(low) and the source is your low voltage IO pin so for you to measure 0V this must mean your your IO pin is at Vdd(low) and this would be the case unless the drain pin is being activated low.

I think you need to measure the voltages on the FET with respect to 0V on all three pins. Maybe it's correct but there's not enough to go on in your question BUT like I said originally I don't think this circuit is going to perform how you expect with the BSS138 FET.