Fermion: LTC4316 I2C Address Shifter Module

SKU: DFR1185

The Fermion I2C Address Shifter Module is designed to enable seamless I2C communication by translating I2C addresses effectively across a voltage range of 2.25V to 5.5V. With a compact design, it supports easy integration into various electronic projects. The module includes a pinout for both controller and sensor sides, ensuring straightforward connections. Its dip switch functionality allows for selective bit inversion of the I2C address, providing flexibility in device management. This ensures compatibility and efficient communication between I2C devices, making it an essential component for projects requiring precise sensor management and address handling.

Overview of Fermion: I2C Address Shifter
  • Docs
  • Tech Specs
  • Specification

    Parameter Value
    Working voltage 2.25V-5.5V
    Working temperature 0~70℃
    Working current 2mA @3.3V
    Dimension 19*19mm
    R2 pad package 0805

    Pinout

    Controller Side Description
    VCC DC2.25V-5.5V input
    GND Ground
    SCL I2C Clock(To I2C controller)
    SDA I2C Data(To I2C controller)
    RDY Outputs a high level when I2C sensor address translation is complete
    I2C sensor address translation not completed output low level
    Sensor Side Description
    VCC DC2.25-5.5V Output
    GND Ground
    SCL I2C Clock(To I2C sensor)
    SDA I2C Data(To I2C sensor)
    Dip Switch Description
    A5 Controls whether the fifth bit of the I2C address is inverted (1 is invert, 0 is not invert)
    A4 Controls whether the fourth bit of the I2C address is inverted (1 is invert, 0 is not invert)

    FAQ

    • How to quickly confirm the new I2C address after changing toggles or soldering resistors

      You can connect the sensor to an Arduino or ESP32 via an address converter and upload the I2C Scanner code below. The serial monitor will output the new I2C address.

      /**

      @file i2cScanner.ino

      @brief The i2c_scanner see if a device did acknowledge to the address.

      @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)

      @license The MIT License (MIT)

      @author [thdyyl]([email protected])

      @version V0.1

      @date 2024-08-05

      */

      #include <Wire.h>

      void setup(){

      Wire.begin();

      Serial.begin(115200);

      Serial.println();

      Serial.println("I2C Scanner");

      }

      void loop(){

      uint8_t error, address;

      int numDevices;

      Serial.println("Scanning...");

      numDevices = 0;

      for (address = 1; address < 127; address++ ){

      // The i2c_scanner uses the return value of the

      // Write.endTransmisstion to see if a device

      // did acknowledge to the address.

      Wire.beginTransmission(address);

      error = Wire.endTransmission();

      if (error == 0){

      Serial.print("I2C device found at address 0x");

      if (address < 16)

      Serial.print("0");

      Serial.print(address, HEX);

      Serial.println(" !");

      numDevices++;

      }else if (error == 4){

      Serial.print("Unknow error at address 0x");

      if (address < 16)

      Serial.print("0");

      Serial.println(address, HEX);

      }

      }

      if (numDevices == 0)

      Serial.println("No I2C devices found\n");

      else

      Serial.println("done\n");

      delay(2000); // wait 2 seconds for next scan

      }

    Explore More Related Questions >

    Was this article helpful?

    TOP