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.

DS90UB960-Q1EVM: USB2ANY I2C calls get stuck returning ERR_I2C_WRITE_TIMEOUT

Part Number: DS90UB960-Q1EVM
Other Parts Discussed in Thread: DS90UB960-Q1, USB2ANY

Dear TI,

We're using the DS90UB960-Q1 evaluation module to interface with our FPD-Link III module. We use the on-board MSP430 via the USB2ANY SDK to read and write registers on the I2C bus. This works fine, until some sporadic event in which a I2C timeout occurs. Once this happens, we're not able to recover from this situation apart from powercycling the evaluation module.

Is there another way to reset the I2C interface of the MSP430 (preferably using the USB2ANY API)?

Thanks in advance!

  • Daan,

    Does this i2c timeout error happen when writing to remote device (serializer or imager)? Or is it on local writes also? There is a BCC Watchdog Control register (0x07) to program bcc watchdog timeout. I wonder if changing this helps anyway.

    Unfortunately we don't have much support on this USB2ANY SDK. I will check and let you know.

    Thanks,

    Vishy

  • Hi Vishy,

    The issue starts while writing to the MCU on the remote device. Once the timeout occurs, writing to the local deserializer times out as well. I'll have a look at the watchdog register you mentioned and see if can be of any help here.

    Thanks,

    Daan

  • Daan,

    You mention remote MCU. Please check remote device supports i2c clock stretching. Without clock stretching, i2c communication could break.

    There's an app note that discusses this 

    http://www.ti.com/lit/an/snla131a/snla131a.pdf

    Thanks,

    Vishy

  • Thank you for your feedback.

    Yes the MCU supports clock stretching. I'll double check if this is configured properly (if any specific configuration is needed). Today I performed some measurements on the I2C bus between the microcontroller on the hub and the deserializer. As soon as the timeout occurs, the SCL line is oscillating between 1V and 2V (Vi2c = 3V3). Powercycling the Vdd5V5 of the hub recovers the issue. This doesn't reset the MSP430 on the hub, so the issue is not related to the MSP nor the USB2ANY library. Unfortunately it is not possible to powercycle the Vdd5v5 from software, although the USB2ANY library has a enable_power call to enable some 5V (probably this applies to other devices only).

    It looks like the MCU sometimes fails to correctly process the I2C requests, which causes the (de)serializers to get stuck as well, resulting in I2C timeouts from the USB2ANY calls. More investigation to be done…

    Regards,

    Daan

  • Daan,

    Thanks for the update. For now I assume you are investigating this more on your side and will let us know if you need something.

    Thanks,

    Vishy

  • Hi Vishy,

    We found some issues in the I2C implementation on the MCU. Solving those, solved the timeout issue.

    Thank you for your support!

    Regards,

    Daan