Post Go back to editing

MAX96712 GMSL Deserializer I2C address translation

Thread Summary

The user encountered issues with I2C address translation on the deserializer side of the MAX96712 and MAX9296, despite working on the serializer side. The problem was due to the internal I2C master on the remote side replacing the device address, which does not apply to the user's setup with the master on the local side. The user confirmed that the translation feature does not work in the intended direction for the deserializer and abandoned the approach.
AI Generated Content
Category: Software
Product Number: MAX96712

Hello ADI support! MAX96712 data sheet promises 2 i2c address translation per GMSL2 port. I already use it on the serializer side, with my MAX9295 and it is working fine. However, when I set it up on the deserializer side ( I have more than 2 i2c devices to translate), it doesn't do anything.

My setup is the following: one Nvidia AGX ORIN is connected to the MAX96712, and I have a camera that is connected to it using a GMSL2 cable.

The camera is connected to the port A of the MAX96712. The i2c control channel is 0. At this stage, I can see all my i2c devices.

Now, from the data sheet of the MAX96712 I have, it clearly appears that I should write in registers 0x642 to 0x645 to translate my devices. So for one device, I can write in register 0x642 the source address (translated address) and in 0x643 the destination address (true address). Hence, If I want to translate a device with 7 bits address 0x10 to 0x20, I write the following in my register:

 REG - > VAL
0x642 -> 0x40
0x643 -> 0x20

But the translation is not effective. I have tried it the other way around and it does not work either.

Could you help me to activate this feature? Am I wrong in my understanding of the i2c address translation using the MAX96712?

I thank you very much for your attention regarding this matter.

Best regards,

Louis

  • Hi,

      Please note that, I2C drivers to work with 7 bit addressing,

      if your software/tool is using 7-bit I2C address, In that case we need to right shift the 8 bit map address to one.
      For example: 0x98 IO Map – 8 bit address
                          0x98 >>1 =0x4C – 7 bit address

       I2C source and destination address translation related details are provided here at MAX96711 14-Bit GMSL Serializer with High-Immunity/Bandwidth Mode and Coax/STP Cable Drive (analog.com)

       This link https://patchwork.kernel.org/project/linux-media/patch/20181102154723.23662-2-kieran.bingham@ideasonboard.com/ We got it from internet about regarding MAX chip I2C translation.

    Thanks.

    Poornima

  • I have the same problem. My camera is connected to it using a GMSL1 cable with max96705 and the I2c address is right.

    REG - > VAL
    0x642 -> 0x80
    0x643 -> 0x40

    But,it does not work either.

  • Hi,

    I forgot this issue, but I think I found the answer to my initial message.

    First, Poornima thanks for your feedback. My issue wasn't because I used 7 bit addresses instead of 8 bit addresses.

    In fact the answer is in the documentation of the 96712. Here is the description of the Source address register for I2C translation:

    Link A GMSL1 AND GMSL2 I2C AddressTranslator Source A:
    When I2C device address matches SRC_A_P0_A, internal I2C master (on remote side) replaces the device address by
    DST_A_P0_A. This setting applies only to I2C Port 0 for GMSL2. This setting applies to all I2C Ports for GMSL1.

    In fact, in my setup, I have no I2C master on remote side, the master is on the local side. Hence, the translation feature of my serializer is working, as well as the deserializer's translation, but for the later it is not in the right direction for my setup: the I2C master is on local side for the 96712. Maybe someone can confirm my guess.

    Anyway, I dropped the idea of I2C translation using the deserializer since I couldn't get it working.

    I would like to add one last precision, I stumbled across the same issue with the MAX9296: the translation is working on my serializer (remote I2C master), but not on the deserializer (local I2C master). Since the setup is exactly the same as with the MAX96712, this corroborate my previous statement.

    Best regards,

    Louis Guerlin

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.