design features 2-Channel and 4-Channel Pin-Selectable I2C Multiplexer Features High Noise Margin, Capacitance Buffering, Level Translation and Stuck Bus Recovery Rajesh Venugopal The inherent simplicity of I2C and SMBus 2-wire protocols has made them a popular choice for communicating vital information in large systems. Both standards employ simple open-drain pull-down drivers with resistive or current source pull-ups. Nevertheless, several practical problems arise as systems grow in complexity. The first problem with large systems is that devices with hard-wired I2C addresses require address expansion to prevent conflicts. Second, noise causes glitches that can be interpreted as legitimate clock or data transitions, compromising data reliability. Third, I2C devices can cause the bus to stick low. Finally, timing specifications are increasingly difficult to meet, and clock frequencies are limited by the equivalent bus capacitance, which increases with system size and complexity. The LTC4312 and LTC4314 pin-selectable 2-channel and 4-channel I2C multiplexers with bus buffers address these issues with a number of powerful features (see Table 1). Since these two devices share the same features, except for the number of channels, this article focuses on the LTC4314. An upstream I2C bus (SDAIN, SCLIN) can be connected to any combination of downstream buses through the LTC4314’s bus buffers and multiplexer switches by driving the ENABLE pins of the desired output buses high. Multiple devices having the same address can be placed on different buses and isolated using the ENABLE pins, thereby achieving address expansion. The buffers provide capacitance isolation between the upstream bus and the downstream buses, allowing for partitioning of the bus capacitance. In single supply systems, the buffers regulate the bus up to 0.33 • VCC , providing a large logic low noise margin. Rise time accelerators (RTAs) of appropriate strength can be activated to overcome bus capacitance limitations, reduce rise time and allow for higher switching frequencies even when operating with heavy loads. The LTC4314 is compatible with the I2C standard and Fast Mode, SMBus and PMBus specifications. Stuck bus recovery circuitry disconnects the upstream bus from downstream buses when SDA and SCL have not been simultaneously high at least once in 45ms, freeing the upstream bus to resume communications. The recovery circuitry also attempts to convince Table 1. Key features of the LTC4312 and LTC4314 FEATURE BENEFITS 2- and 4-Pin Selectable Downstream Buses • Maximum flexibility of bus configurations I 2 C Buffers Selectable V IL Level Translation Rise Time Accelerators (RTAs) Disconnection and Recovery from Stuck Bus • Address expansion when used as a MUX • Breaks up bus capacitance, which allows large I 2 C compliant systems to be built, by keeping the capacitance of each section < 400pF • High logic low noise margin up to 0.33 • V CC • Selectable RTA Operating voltage range • Provides I 2 C communication between 1.5V, 1.8V, 2.5V, 3.3V and 5V buses • Reduce rise time • Allow larger bus pull-up resistors for better noise margin • Selectable RTA pull-up current strength • Free masters to resume upstream communications • Generates up to to 16 clock pulses and a stop bit on the stuck buses to convince the stuck device to release high October 2011 : LT Journal of Analog Innovation | 11 The LTC4314 is compatible with the I2C standard and Fast Mode, SMBus and PMBus specifications. Stuck bus recovery circuitry disconnects the upstream bus from downstream buses when SDA and SCL have not been simultaneously high at least once in 45ms, freeing the upstream bus to resume communications. the stuck device to release high by generating up to 16 clock pulses and a stop bit on the enabled downstream buses. SCLOUT 2V/DIV (AC-COUPLED) Finally, cards can be hot-swapped into and out of the LTC4314’s I2C output buses provided that the channel being hotswapped has been disabled. The LTC4314’s operating voltage range is VCC from 2.9V to 5.5V, VCC2 from 2.25V to 5.5V and bus voltages from 2.25V to 5.5V. The LTC4314 can level translate down to 1.5V and 1.8V buses under certain conditions if RTAs are disabled on the low voltage bus. SCLIN 2V/DIV 500ns/DIV Figure 1. The LTC4314 transmitting a noisy 400kHz I2C signal applied to SCLIN. The SCLOUT1 waveform tracks SCLIN when SCLIN is a logic low. During logic highs, noise on SCLIN above 0.33 • VMIN is not propagated to SCLOUT. HIGH BANDWIDTH BUFFERS IMPROVE NOISE MARGIN AND SPEED WHILE MAINTAINING LOW OFFSET the high bandwidth buffers do not limit the rise rate of the bus, permitting them to stay on to a higher bus voltage. High noise margin is obtained by leaving the LTC4314 buffers on until both the input and output bus voltages are > 0.33 • VMIN, where VMIN is the lower of the VCC and VCC2 voltages. This is possible because As seen in Figure 1, when a noisy 400kHz square wave signal is applied to SCLIN, the SCLOUT1 waveform tracks SCLIN when 3.3V C1 0.01µF R1 10k R2 10k the SCLIN voltage is < 0.33 • VMIN, and releases high when the SCLIN voltage is > 0.33 • VMIN . The low offset makes the SCLOUT1 waveform almost identical to the SCLIN waveform for voltages < 0.33 • VMIN . No output glitches occur as the input crosses the VIL level of 0.33 • VMIN , as seen in the SCLOUT1 waveform. 2.5V R4 10k VCC2 VCC R5 10k C2 0.01µF SCLIN I2C DEVICE SDAIN ENABLE1 ENABLE1 SCLOUT1 ENABLE2 ENABLE2 SDAOUT1 ENABLE3 ENABLE3 ENABLE4 ENABLE4 LTC4314 ACC SCLOUT4 DISCEN FAULT FAULT SDAOUT4 GND • • • R3 10k ADDRESS = 1001 000 • • • 3.3V I2C DEVICE 5V R6 10k R7 10k I2C DEVICE ADDRESS = 1001 000 Figure 2. The LTC4314 in a nested addressing and level shifting application where a device on the upstream 3.3V bus communicates with devices on the 2.5V and 5V downstream buses. Only buses 1 and 4 are shown for simplicity. 12 | October 2011 : LT Journal of Analog Innovation As the buffers are disconnected when both input and output bus voltage are > 0.33 • VMIN, any noise applied to the logic high state on one side is not propagated to the other side as long as that bus voltage does not drop below 0.33 • VMIN . This is seen in Figure 1 where the logic high state of SCLOUT1 is unaffected by noise on SCLIN. Designers who are in control of the entire I2C system can set the LTC4314 to operate at frequencies of up to 1MHz by adjusting the RC load on the bus and using strong RTAs (see Table 2). The LTC4314’s highto-low propagation delay tPDHL is always positive, on the order of 100ns. Depending on bus loading conditions on the upstream and downstream sides of the LTC4314, the low-to-high propagation delay tPDLH of the LTC4314 can be either positive or negative. For systems operating at high frequencies (>400kHz) designers should quantify the tPDLH -tPDHL skew in their SDA and SCL pathways and ensure data set-up and hold times are acceptable on all buses. design features BACKPLANE SHMC #1 3.3V R1 10k VCC SDAIN µP 3.3V VCC2 R2 10k LTC4314 #1 ENABLE1 ENABLE2A ENABLE2 SDAOUT2 ENABLE3A ENABLE3 SDAOUT3 ENABLE4A ENABLE4 IPMB-B SDA1 SDAOUT4 • GND • • • • • • • 3.3V VCC2 VCC • SDAIN LTC4314 #6 ENABLE1 SDAOUT1 ENABLE22A ENABLE2 SDAOUT2 ENABLE23A ENABLE3 SDAOUT3 ENABLE24A ENABLE4 SDAOUT4 3.3V • ENABLE21A R3 10k IPMB-A SDA24 SDA1 IPMB-B (×24) • • • GND • ACC IPMB-A SDA1 • ENABLE1A SDAOUT1 ACC Figure 3. The LTC4314 used in a radially connected telecommunications system in a 6 × 4 arrangement. The ENABLE pins of only one shelf manager are high at any given time. Only the SDA pathway is shown for simplicity. FRU #1 3.3V FRU #24 SDA24 SHMC #2 (IDENTICAL TO SHMC#1) IPMB-A (×24) SDA1 • • • IPMB-B (×24) IPMB-B SDA24 SDA24 LEVEL TRANSLATION AND NESTED ADDRESSING The circuit shown in Figure 2 illustrates level translation and nested addressing features of the LTC4314. The LTC4314 can level translate the input and output buses to voltages between 2.25V (1.5V and 1.8V under some circumstances) and 5.5V. In Figure 2 the LTC4314 translates a 3.3V input to 5V and 2.5V outputs. Only downstream buses 1 and 4 are shown for simplicity. Each output channel has a dedicated ENABLE pin select that allows the master to communicate independently with slave devices with identical I2C addresses provided that only one downstream bus is enabled at a time. RADIALLY CONNECTED TELECOMMUNICATIONS APPLICATION Figure 3 shows the LTC4314 used in a radially connected telecommunications application such as ATCA. Two shelf managers (SHMCs) are used to communicate with slave I2C devices for redundancy. Each shelf manager can have as many LTC4314s as required depending on the number of boards in the system and the desired radial/star configuration (6 × 4 in Figure 3). The ENABLE pins inside only one shelf manager are asserted high at any time. Since the LTC4314 can be cascaded with other Linear Technology bus buffers, up to 24 FRUs with Linear Technology bus buffers on their edges can be plugged into the backplane. PARALLELING LTC4314s TO ACHIEVE MULTIPLEXING OF MORE BUSES Multiple LTC4314s can be connected in parallel to perform higher order multiplexing. Figure 4 shows a 1:8 multiplexer using two LTC4314s. INTEROPERABILITY WITH NONCOMPLIANT I 2C DEVICES The high buffer turn-off voltage of the LTC4314 ensures interoperability with noncompliant I2C devices that drive a high VOL > 0.4V. This is shown in Figure 5 where a noncompliant device on channel 4 drives a high VOL = 0.6V. The buffer turn-off voltage is 1.089V, yielding a logic low noise margin of > 0.4V at both the input and output. October 2011 : LT Journal of Analog Innovation | 13 3.3V C1 0.01µF R1 10k 3.3V R2 10k R4 10k VCC2 VCC R5 10k C2 0.01µF SCLIN I2C DEVICE SDAIN Figure 4. Paralleling LTC4314 devices to realize a 1:8 multiplexer ENABLE1 SCLOUT1 SCLOUT1 ENABLE2 ENABLE2 SDAOUT1 SDAOUT1 ENABLE3 ENABLE3 ENABLE4 ENABLE4 LTC4314 3.3V • • • • • • ENABLE1 ACC R3 10k DISCEN FAULT 5V R6 10k R7 10k SCLOUT4 SCLOUT4 SDAOUT4 SDAOUT4 generated, whichever comes first. After the final clock pulse, a stop bit is generated to reset the bus for further communication. GND 3.3V A rising edge on one or more ENABLE pins, after all ENABLEs have been taken low, is required to reestablish connection between the input and output. Doing this also clears the FAULT flag. The master can wait for the fault condition to clear (FAULT released high), either on its own or through the 16 clock pulses issued by the LTC4314, before toggling the LTC4314’s ENABLE pins, or it can do so preemptively before the fault has cleared to reestablish connection. The master can then take appropriate action to clear the stuck low condition. 3.3V C3 0.01µF VCC2 VCC R9 10k R10 10k C4 0.01µF SCLIN SDAIN ENABLE1 SCLOUT1 SCLOUT5 ENABLE6 ENABLE2 SDAOUT1 SDAOUT5 ENABLE7 ENABLE3 ENABLE8 ENABLE4 LTC4314 3.3V R8 10k • • • • • • ENABLE5 ACC DISCEN FAULT HOT SWAP™ APPLICATION I/O cards can be hot swapped into the downstream buses of an LTC4314 residing on a live backplane as shown in Figure 6. Before plugging or unplugging an I/O card, care must be taken to disable the corresponding output channel so that the card does not disturb any I2C transaction that may be in progress. The connection to the inserted card must be enabled only when all ongoing transactions on the bus have completed and the bus is idle. 5V R11 10k R12 10k SCLOUT4 SCLOUT8 SDAOUT4 SDAOUT8 GND 3.3V C1 0.01µF Figure 5. The LTC4314 in operation with a noncompliant I2C device that drives a VOL = 0.6V. The buffer turn-off voltage is 1.089V yielding a logic low noise margin > 0.4V. R2 10k 3.3V R4 10k VCC2 VCC C2 0.01µF R5 10k SCLIN SDAIN ENABLE1 ENABLE1 SCLOUT1 SCLOUT1 ENABLE2 ENABLE2 SDAOUT1 SDAOUT1 ENABLE3 ENABLE3 ENABLE4 ENABLE4 LTC4314 3.3V • • • • • • 14 | October 2011 : LT Journal of Analog Innovation R1 10k I2C DEVICE STUCK BUS DETECTION AND RECOVERY Occasionally, slave devices get confused and get stuck in a low state. The LTC4314 monitors the enabled output buses to detect if clock and data have been simultaneously high at least once in 45ms. If this condition is not detected, the LTC4314 asserts the FAULT flag low. If DISCEN is Figure 7 shows the waveforms during an SDAOUT1 stuck low and recovery event. After the 45ms timeout period has elapsed, the FAULT flag is asserted low and the input and output sides are disconnected. This causes SDAIN to release high. tied high, the LTC4314 also disconnects the input and output sides and generates clock pulses on the enabled downstream buses in an attempt to free the stuck bus. Clocking is stopped when data releases high or 16 clocks have been ACC R3 10k DISCEN FAULT GND 5V R6 10k R7 10k SCLOUT4 SCLOUT4 SDAOUT4 SDAOUT4 NON-COMPLIANT I2C DEVICE VOL = 0.6V design features Table 2. ACC control of the rise time accelerator current IRTA and buffer turn-off voltage VIL,RISING(typ) ACC I RTA V RTA(TH) V IL,RISING Low Strong 0.8V 0.6V Hi-Z 3mA 0.4 • V MIN 0.33 • V MIN High None N/A 0.33 • V MIN 3.3V C1 0.01µF R1 10k R2 10k 3.3V ENABLE1 SCLOUT1 ENABLE2 ENABLE2 SDAOUT1 ENABLE3 ENABLE3 ENABLE4 ENABLE4 DISCEN FAULT R7 10k IO CARD GND ENABLE1 5V/DIV CONNECT AT RISING EDGE OF ENABLE1 RECOVERS SDAOUT1 5V/DIV STUCK LOW>45ms CONNECTOR I2C DEVICE SDAOUT4 For heavily capacitive buses with low to moderate noise, tie ACC low to meet system rise times and maximize SCL switching frequency. Tying ACC low provides the strongest pull-up current over the maximum voltage range. For higher noise immunity, leave ACC open or tie it to 0.5 • VCC to set the buffer VIL to SDAIN 5V/DIV R6 10k SCLOUT4 FAULT DISCONNECT AT TIMEOUT 5V • • • LTC4314 into the buses making them rise at a typical rate of 40V/µs. The RTA current and the buffer turn-off voltage are selected by the ACC setting as shown in Table 2. RISE TIME ACCELERATORS The rise time accelerators (RTAs) of the LTC4314 can be configured either in current source mode (ACC open), slew limited switch mode (ACC grounded), or disabled (ACC high). In the current source mode the RTAs source a constant 3m A current into the bus. In the slew controlled switch mode, the RTAs turn on in a controlled manner and source current IO CARD ACC R3 10k I2C DEVICE • • • • • • If automatic stuck bus disconnection is not desired, this feature can be disabled by tying DISCEN low. In this case, during a stuck bus event, the FAULT flag is asserted low, but no stop bit or clock generation occurs and the input and output sides stay connected. C2 0.01µF SDAIN ENABLE1 3.3V Clock pulses are generated on SCLOUT1. SDAOUT1 releases high before 16 clock pulses have been generated. Clock pulsing is stopped and a stop bit is generated. When the ENABLE1 pin is toggled, a connection is established between the input and output and a driven low level on SDAOUT1 is propagated to SDAIN. R5 10k SCLIN I2C DEVICE Figure 6. The LTC4314 in a Hot Swap™ application where cards are being plugged in to or unplugged from the outputs. The corresponding ENABLE pin must be driven low before a card can be plugged or unplugged and should only be driven high when the other buses are idle. R4 10k VCC2 VCC DRIVEN LOW SCLOUT1 5V/DIV AUTOMATIC CLOCKING 1ms/DIV Figure 7. Bus waveforms during a SDAOUT1 stuck low and recovery event CONNECTOR 0.33 • VMIN and to get 3m A of RTA current. The 3m A RTA current is enough to meet the 1µs standard mode I2C rise time requirement (100kHz operation) for bus capacitances up to 690pF with DC bus pull-up currents < 4m A. Tie ACC high if no acceleration is needed. To selectively disable RTAs only on the outputs, ground VCC2 and either ground ACC or leave ACC open. CONCLUSION The LTC4314 and LTC4312 are pin-selectable I2C multiplexers that solve practical design issues associated with large I2C bus systems by providing capacitance buffering, nested addressing and level translation. These parts maintain a low offset and high logic low noise margin up to 0.33 • VCC . Their high bandwidth buffers and integrated RTAs allow for operation at frequencies up to 1MHz with guaranteed stability from zero to 1.2nF capacitive loads. They also disconnect and recover buses when buses are stuck low and allow I/O cards to be hot swapped into and out of live systems. n October 2011 : LT Journal of Analog Innovation | 15