This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB934-Q1EVM: Failing remote transactions to DS90UB933-Q1

Part Number: DS90UB934-Q1EVM
Other Parts Discussed in Thread: ALP, USB2ANY

Hi Team,

I've got a 934EVM hooked up to an Arduino, and am trying to communicate with an upstream 933. When I perform remote register writes via ALP / USB2ANY, I get appropriate ACKs to the serializer I2C address of 0x0C as shown below:

However, when I use my Arduino and attempt transactions to the exact same address, I'm getting NAKs:

Any idea's what I'm doing wrong here? Thanks!

- Andy

  • Hi Andy, 

    I read the previous thread and wanted to get some more information on the current set up. When using the Arduino, is ALP still connected or is the sole communication through the Arduino? If only using the Arduino, can you confirm if the I2C on the Arduino has I2C clock stretching enabled? Additionally, are only transactions through the link NAKing or are local transactions NAKing?

    Best,

    Zoe

  • Hi Zoe,

    Thanks for taking a look. When using the Arduino, it is the only thing connected to the bus. I ensure ALP is closed to avoid bus contention issues. I'm using an Arduino Uno WiFi Rev2 board which uses a ATmega4809 MCU that should support clock stretching. Here's a snippet from the datasheet:

    That being said, I do agree with you that clock stretching seems to be the primary difference between the transactions I previously provided. I'll take a deeper look into the "Wire.h" Arduino library to see if I'm missing something in SW.

    Regards,

    Andy

  • Hi Andy, 

    Let me know if the problem still occurs after verifying if clock stretching is being used on the Arduino.

    Best,

    Zoe

  • Hi Zoe,

    After a bunch of research I believe both the ATmega4809 and "Wire.H" Arduino library should natively support slave clock stretching... That being said, I decided to swap to a different embedded device as well just as a sanity check, but am running into the same result with an MSPM0 launchpad.

    Any other ideas from your side on what could else could be happening here? For reference, I've used the Arduino to communicate successfully with this same camera module through the back-channel while hooked up to a 960EVM. I only get these NACKs when I am using the 934EVM as the DES...

    Regards,

    Andy

  • Hi Zoe,

    Figured it out! Rookie mistake... I wasn't enabling I2C pass through nor was I setting up the serializer alias. ALP does this automatically when using the register tabs and I was blindly following it. Sweat smile

    Here's the updated code that resolved the issue:

    This is highlighted in code example 5.5.1.6 of the datasheet as well:

    Regards,

    Andy