I bought a BME280 from eBay (temp, humid, pressure) and the board comes with an integrated logic level converter (from what I see).
The seller states the board's Supply Voltage is 1.8 - 5V DC but doesn't say if the inputs are 5V tolerant. According to sparkfun "The breakout provides a 3.3V SPI interface, a 5V tolerant I2C interface"
My knowledge of MOSFETS is rusty so I was wondering if I got that right. The sensor's output is 3.3V and the MOSPHET converts it to 5V for the Arduino.
However I don't see how the Arduino's signal can get through to the BME.
Can someone remind me about the MOSFET magic?
Thank you and have a nice day!
Time to brush up
Note that this is a standard "power" MOSFET with integral body-diode, and its necessary for this
In one direction the body diode conducts so that LOW on the drain pulls the source LOW too (less
a diode drop).
In the other direction the source pulled low causes the FET to conduct and pull the drain low too
(in fact this happens the other way once the body diode has started the job).
Note that the drain side of the circuit can operate at a higher voltage safely, it cannot pull the
source any higher than the gate (which is pinned to Vcc on the lower-voltage side).
This circuit isn't universal, it works for the I2C bus which is open-collector. In particular if the source
was pulled low and the drain high, the device would carry large damaging currents.
Note that this is a standard "power" MOSFET with integral body-diode
It seems obvious now that you are reminding me, I forgot about the assumed package diode!
Interesting explanation, thank you
From what I see this is a pure 3.3V version.
I just bought recently a BME280 device which comes with on board bi-directional 3.3V / 5V conversion and this has one chip (the converter chip) more on board.