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.
- I2C/SMBus (Open Drain) up to 2 Mhz
- UART/GPIO (Push Pull) up to 24 Mhz
- Voltage levels from 1.65 - 3.6v (VccL) to 2.3 - 5.5v (VccH)
- Fully bidrectional 2 channels with no direction control pin needed
- Output Enable pin
- No need for external pullup resistors
- 0.1" headers included