Post Go back to editing

How to use the LTC4317 I2C address translator?

I have an embedded board that has 2 separate I2C bus connections.  The I2C slave devices have a fixed address of 0x52, so I'm restricted to only 2 instances right now, but I would like to support up to 4.  I know I will have to make Linux driver changes to support the translated addresses, but I need advice on how to wire it up.

The I2C slave devices are Nintendo Classic controllers and have a 6-pin pinout shown here.

My questions for the LTC4317:

  1. What are the READY# and ENABLE# pins for?
  2. Do I wire up the device's 3.3V to the READY# pin?


  • Hi tqhoang,

    The ENABLEx pin will disconnect the matching set of SCLOUTx and SDAOUTx. So for example if you were to hold the ENABLE1 pin low, the SCLOUT1 and SDAOUT1 would be disconnected from SCLIN and SDAIN. 

    READYx indicates that the part is ready to start doing address translation on that channel. If you intend to make use of the feature, you'll need an externally pull-up since the pin is an open drain output. 



  • Thanks Jason.  I'm not an electrical engineer, so your advice is much appreciated.

    It appears the READYx hookup is not appropriate for my use-case given the Nintendo Wiimote pinout.  But I believe the ENABLEx should be hooked up to the Wiimote PIN3.

    Pin Description LTC4317 PIN
    1 + 3.3V (to original source on ARM platform) Not connected
    2 SCL. I²C Serial Clock. (400 kHz) SCLOUTx
    3 Device Detection (Connected to 3.3V inside attachment connector) ENABLEx
    4 Not connected. Not connected.
    5 SDA. I²C Serial Data SDAOUTx
    6 Ground Ground