I2C Level Translator

So, I was happily working away, designing in a 2.5V part to talk to the I2C bus from a 5V processor, when reality caught up to me.

2.5V. 5V. I2C.

It appears that NXP has some I2C level translators -- does anyone have any mileage with them? Do they work? Anyone have any parts to either embrace or avoid? I can certainly see some issues with trying to make it all reliable, and back when NXP was Phillips I had to coerce some pretty weird stuff into working correctly, up to and including yanking one of their I2C to microprocessor bus chips off a board and bit-banging the I2C. So I'm not ready to fully believe in the NXP parts.

--

Tim Wescott 
Wescott Design Services 
http://www.wescottdesign.com
Reply to
Tim Wescott
Loading thread data ...

The SCL and SDA lines of I2C are open drain / open collector so as long as your 5V part has TTL levels (0.8V and lower is a zero, 2V and higher is a one), all you need is two pull-ups to 2.5V. Make the pull-ups stiff, 1K - 2.2K.

Reply to
papabear546

Would work -- except that the processor is 5V CMOS levels, so it wouldn't see 2.5V as high.

Hence the need for level translators in the first place.

--

Tim Wescott 
Wescott Design Services 
http://www.wescottdesign.com
Reply to
Tim Wescott

Den mandag den 9. maj 2016 kl. 20.35.24 UTC+2 skrev Tim Wescott:

we use a tca9509 from a 1.8V master to 3.3V slaves, though I'm not sure if it works in the opposite direction

Reply to
Lasse Langwadt Christensen

I2C is open collector. You can connect a 2.5 volt bus to the 5 volt bus through a quickswitch without interfering with the logic in any way. You might need to use a diode in series with the power supply to the quickswitch part which already drops the 5 volt supply just enough to limit the low voltage side to 3.3 volts. One more diode drop gets you pretty close to 2.5 volts.

--

Rick C
Reply to
rickman

formatting link

Reply to
papabear546

Hi,

Or see figure 45 of the I2C Bus Specification which shows how to connect devices with different voltage levels using MOSFETs.

Here is a link to the document:

formatting link

Best regards, Martin

Reply to
martinbosch.imb

Yep, I've done it that way also. I used BSS123 FETs.

Reply to
papabear546

As Philips originated and standardized both, you'd be better off reading up on the difference and limitations built into the methods than blaming the parts. No profit in it.

Your scope may tell you more than bus monitoring tools can, if there are issues in a specific app, even if the solution ends up being in firmware. Timing and impedance levels, rather than bit banging.

RL

Reply to
legg

So, have you actually used it? Did it work?

I understand the principle involved -- I want to know if anyone's done this and been happy.

--

Tim Wescott 
Wescott Design Services 
http://www.wescottdesign.com
Reply to
Tim Wescott

Yes sir, I have successfully used the GTL2010PW (same family, 14-bits). TI second-sources these parts as SN74GTL20XX.

Reply to
papabear546

Oops, should have typed GTL2010 as 10-bits.

Reply to
papabear546

That's a quickswitch except the quickswitch is powered from the 5 volt side and they lower the voltage to the gate to limit the voltage that can be driven through to the low voltage side.

--

Rick C
Reply to
rickman

I've used a lot of these in multiple designs. Never had a problem.

formatting link

Regards, Allan

Reply to
Allan Herriman

Here is the same part at NXP.

Regards, Allan

Reply to
Allan Herriman

the

BTW, these are (as other posters have pointed out) just a pair of mosfets with some biasing circuitry to limit the voltages on one of the ports. (Hint: the PCA9306 "EN" pin will be regulated to the lower supply voltage

  • Vgs(th).)

This is perfectly fine for low speed I2C with its open drain drivers and resistive pullups. Some of the faster I2C modes have active pullups and won't work at full speed through this class of voltage level translator.

Regards, Allan

Reply to
Allan Herriman

I have also used the mosfet method with no problems at 30kHz.

John

Reply to
jrwalliker

Very much like the quickswitch devices. I'm pretty sure the quickswitch devices I've used have a diode drop from the higher of the references to drive the gates, so the low voltage is fixed. I wonder how they set the gate voltage in these devices since that seems to be controlled by the Vref on the low side. The gate voltage should be a bit higher than the Vref to allow the high driver to drive the low side to the full Vdd without driving it too high.

--

Rick C
Reply to
rickman

I guess they use a third mosfet, with G shorted to D, to measure the threshold voltage. The 220k resistor (to the higher rail) determines the drain current. The I2C pass fets have their gate volages set to the lower voltage rail + the threshold voltage.

Allan

Reply to
Allan Herriman

Makes sense, thanks.

--

Rick C
Reply to
rickman

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.