If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

• Resolved

# TXB0104: For appliying pull up register in TXB0104

Part Number: TXB0104

Hi team,

TXB0104 supports push pull output, but I'm wondering if this device can support I2C interface which requires external pull up.

In datasheet, "If pull up or pull down resistors are needed, the resistor value must be over 50kohm."

So, when using over 50kohm pullup for I2C on some ch, can you tell if it's okay?

Thanks,

Best Regards,

Sam Lee

• Hi Sam,

I would recommend using the LSF0102 or TXS0102 instead of the TXB0104 for an I2C application.  If you need more channels, the LSF0204 or the TXS0104 both have 4 channels.

The TXS series of translators have built in 10kohm pull-up resistors -- if you need a different value, the LSF series of translators use external pull-ups, so you can select the value best suited for your application.

Here's an application report on how to use each:

#### Have a question about Logic ICs? Get it answered with our newly updated Logic FAQ page

• In reply to Emrys Maier:

Hi Emrys,

Yes, I can understand that you recommend LSF or TXS series. However, my question is because the device is only limited with TXB0104. So, I'd like to confirm if TXB0104 can be used for I2C with 2bits out of 4.

Thanks,
Sam Lee
• In reply to Lee, Sam:

It's possible that you could use the TXB0104 for I2C, but you would need to set the pull-up resistors extremely large to make this work.

The TXB0104 has internal series 4kΩ resistors on the output of each buffer to limit current. It is easy to calculate the low output voltage given a specific pull-up resistor value:

VOL ~= VCC * 4kΩ/(RPU + 4kΩ)

I2C typically uses 10kΩ or 4.7kΩ pull-up resistors, so using these values with a 3.3-V supply, you can see the problem:

VOL ~= 3.3 * 4000/(10000 + 4000) = 0.9429 V

VOL ~= 3.3 * 4000/(4700 + 4000) = 1.5172 V

These 'low' output voltages would likely be problematic for your system.  In order to get an output voltage in a more reasonable range (say, 0.3V), we can rearrange and solve for RPU.

RPU >= ((VCC * 4kΩ) / VOL) - 4kΩ

RPU >= ((3.3 * 4000)/0.3) - 4000 = 40kΩ

Using 40kΩ resistors will cause the rise time of the circuit to be 4x slower than typical (with 10kΩ resistors), which could cause loss of data.