

The Adafruit LTC4316 (Manufacturer Part ID: 5914) is an I2C address translator designed to resolve address conflicts on I2C buses. It allows multiple I2C devices with identical addresses to coexist on the same bus by dynamically translating their addresses. This component is equipped with Stemma QT / Qwiic connectors, making it easy to integrate into projects without the need for soldering. It is ideal for applications requiring multiple identical sensors or devices on a single I2C bus.








The Adafruit LTC4316 features the following pins:
| Pin Name | Type | Description |
|---|---|---|
| VIN | Power Input | Power supply input (2.9V to 5.5V). Connect to the system's power source. |
| GND | Ground | Ground connection. |
| SDA_IN | I2C Data Input | Input for the I2C data line from the primary bus. |
| SCL_IN | I2C Clock Input | Input for the I2C clock line from the primary bus. |
| SDA_OUT | I2C Data Output | Output for the translated I2C data line to the secondary bus. |
| SCL_OUT | I2C Clock Output | Output for the translated I2C clock line to the secondary bus. |
| ADDR_SEL | Address Select | Configures the address translation offset. |
| EN | Enable | Enables or disables the LTC4316. Pull high to enable, low to disable. |
SDA_IN and SCL_IN pins.SDA_OUT and SCL_OUT pins.ADDR_SEL pin to set the desired address translation offset. Refer to the datasheet for specific configurations.EN pin high to activate the LTC4316. If left floating, the device may not function correctly.ADDR_SEL pin floating; always configure it properly.Below is an example of how to use the LTC4316 with an Arduino UNO to translate the address of an I2C device:
#include <Wire.h> // Include the Wire library for I2C communication
void setup() {
Wire.begin(); // Initialize the I2C bus
Serial.begin(9600); // Start serial communication for debugging
// Check if the I2C device is detected at the translated address
Wire.beginTransmission(0x72); // Replace 0x72 with the translated address
if (Wire.endTransmission() == 0) {
Serial.println("I2C device detected at translated address!");
} else {
Serial.println("No device found at translated address.");
}
}
void loop() {
// Add your main code here
}
No Communication with the I2C Device:
EN pin is pulled high to enable the LTC4316.ADDR_SEL pin is configured correctly for the desired address translation.SDA_IN, SCL_IN, SDA_OUT, and SCL_OUT.I2C Bus Not Functioning:
Device Not Detected at Translated Address:
ADDR_SEL pin.Can I use the LTC4316 with 5V and 3.3V devices on the same bus? Yes, the LTC4316 supports mixed-voltage systems as long as the voltage levels are within the specified range.
What happens if the ADDR_SEL pin is left floating?
Leaving the ADDR_SEL pin floating may result in undefined behavior. Always configure it properly.
Can I use multiple LTC4316 modules on the same bus?
Yes, multiple LTC4316 modules can be used, but ensure that each module's ADDR_SEL pin is configured uniquely to avoid conflicts.
This documentation provides a comprehensive guide to using the Adafruit LTC4316 I2C Address Translator. For additional details, refer to the official datasheet or Adafruit's product page.