|
DESCRIPTION
Have you ever had to connect a 3.3 volt I2C device to a 5 volt microcontroller before? Have you ever tried to figure out what the correct pullup resistor size you need for the converter?
Well here is a very simple board that performs the conversation and removes the need for external pullup resistors. That's right you don't need external pullup resistors on the lines. As with other I2C conversion methods you need to select proper pullup resistors to match the amount of devices you have on the communications lines and also what speed you are running the buss at plays a large part. See HERE for a detailed explaination. Since the TXS-0102 uses one-shots instead of standard MOSFETS it's effects due to larger buss capacitances is minimized.
As an example, here is a device with a relatively large input capacitance that is using the standard MOSFET level translation circuit running at 100 kHz buss speed. As you can see the signal on the SCL is usuable with the default pullup resistors in the circuit. As more and more devices are added to the buss though the signal quality will begin to degrade and the pullup resistors will once again need to be resized.

Switching the same circuit to 400 kHz high speed mode, as you can see below, only worsens the quality of the signal and reduces the speed of the buss. Again you'll need to resize the pullup resistors accordingly.

Now using the I2C Level Translator in place of the MOSFET and external pullup resistors shows a vastly improved improved signal for both standard speed and high speed communication.


And as a bonus the boards can also be used for your average UART (Push Pull) communications also!
Board includes 0.1" headers.
|
Comments
Sorry I don't understand the question. If you're using the Arduino it already has a 3.3v pin that can be used for the board.
Would make a cleaner package: four wires in, four wires out, for remote sensors.
Ok I understand what you're asking now. I've thought about adding regulators to some of my breakout boards but it's a tough call. On the one hand it can make it easier for some people (people that just use 3.3v logic for example) but then it restricts the use from others that use say, for example, 1.8v logic or 2.85v logic. It's always a difficult decision when laying out boards.
Or, can I use one level converter and connect two or more 3.3V sensors to a single level converter?
Thanks
You only need one converter for multiple 3.3v devices.
Thanks - I figured so but wanted confirmation.
So if I may ask - what is the big advantage in using the I2C Mux (sold on this site)? I could connect multiple devices the I2C Level Converter just as well.
I2C devices have an address number they respond too. Some I2C devices can only be set to a single address which means you can't have multiples of that device on the same bus. The MUX connects only one of those devices at a time to the bus. You tell the MUX chip which one you want to talk too.
thanks
Yes. Just connect the VccL to your 3.3v supply and VccH to your 5v supply for power and unless you have a need to shut off communication between the two just connect output enable (OE) to 5v.
I think the answer is yes, but never hurts to ask those with more experience .
Correct, you won't have any problems. Just make sure the lower voltage device is on the VccL side and the higher voltage devices are on the VccH side.
RSS feed for comments to this post