By Texas Instruments 152
Texas Instruments' TCA9509 integrated circuit is an I2C bus/SMBus repeater for use in I2C/SMBus systems. The device can provide bidirectional voltage-level translation (up-translation/down-translation) between low voltages (down to 0.9 V) and higher voltages (2.7 V to 5.5 V) in mixed-mode applications. This device enables I2C and similar bus systems to be extended without degradation of performance even during level shifting.
The TCA9509 device buffers the serial data (SDA) and the serial clock (SCL) signals on the I2C bus allowing 400 pF bus capacitance on the B-side. This bus repeater can be used to isolate two halves of a bus for voltage and capacitance.
The TCA9509 has two types of drivers including the A-side drivers and the B-side drivers. The inputs and B-side I/Os are overvoltage tolerant to 5.5 V. The A-side I/Os are overvoltage tolerant to 5.5 V when the device is unpowered (VCCB and/or VCCA = 0 V).
The bus port B drivers are compliant with SMBus I/O levels, while the A-side uses a current-sensing mechanism to detect the input or output LOW signal which prevents bus lock-up. The A-side uses a 1 mA current source for pull-up and a 200 Ω pull-down driver. This results in a LOW on the A-side accommodating smaller voltage swings. The output pull-down on the A-side internal buffer LOW is set for approximately 0.2 V, while the input threshold of the internal buffer is set about 50 mV lower than the output voltage LOW. When the A-side I/O is driven LOW internally, the LOW is not recognized as a LOW by the input. This prevents a lock-up condition from occurring. The output pull-down on the B-side drives a hard LOW and the input level is set at 0.3 of SMBus or I2C-bus voltage level which enables the B-side to connect to any other I2C-bus devices or buffer.
The TCA9509 drivers are not enabled unless VCCA is above 0.8 V and VCCB is above 2.5 V. The enable (EN) pin can be used to turn the drivers on and off under system control. Caution should be observed to only change the state of the EN pin when the bus is idle.