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.

AM4378: I2C (I2C2) communication problems when the USB memory device is inserted or removed

Genius 5625 points
Part Number: AM4378
Other Parts Discussed in Thread: PROCESSOR-SDK-AM437X

Hi experts,

My customer is mass producing a product using the AM4738 and is experiencing I2C (I2C2) communication problems when the USB memory device is inserted or removed.

Could you please tell me about the following questions?
Q1: Could you give us your opinion on the assumed cause?
Q2: If there is a possible hardware countermeasure, could you please share the information?
Q3: As for the software reset, do you have any other code that we should refer to?

[Details]

  • The I2C connection is to other two CPUs, and communication stops after the phenomenon occurs.
  • Waveforms are shown at the end of this.
  • Confirmed occurrence with 7/7 USB flash drives of different capacities and manufacturers.
  • The occurrence was confirmed in 4/4 products.
  • The rate of occurrence is 1/50 times to 1/300 times (must occur once every 300 times).
  • Power supply and clock are stable.
  • The device can be recovered by turning the power supply OFF and ON.
  • All processes other than I2C are correctly executed.
  • The problem occurs even if the program contents (functions used) are limited to USB and I2C only.
  • When communication is lost, soft reset processing is executed only for I2C2.
    Refer to I2C_v1_ctrlInit() function in the following file of PROCESSOR-SDK-AM437X.
    Path:"pdk_am437x_1_0_17\packages\ti\drv\i2c\src\v1\I2C_v1.c"
    As a result, the frequency of recovery is possible once in 4 times of implementation.

Currently, we are trying to isolate whether recovery is possible when only AM437x is reset or when only I2Cs slave device is reset.
Any advice on other items that can be checked would be appreciated.

Best regards,
O.H

  • Hello O.H, 

    Thank you for the query and the explanation.

    With the explanation i am not able to visualize the system level architecture to be able to provide any suggestion.

    I assume the I2C is between CPUs and the USB interface is connected to one of the CPUs.

    When USB is not accessed you do not see any issue.

    Let me know your thoughts on how we could take this discussion forward.

    Regards,

    Sreenivasa

  • Hello Sreenivasa,

    Thank you for your support.

    With the explanation i am not able to visualize the system level architecture to be able to provide any suggestion.

    I assume the I2C is between CPUs and the USB interface is connected to one of the CPUs.

    When USB is not accessed you do not see any issue.

    Let me know your thoughts on how we could take this discussion forward.

    We are considering the following 1 and 2, but are currently prioritizing 1.

    1. As a solution from a short-term perspective, we are considering the possibility of recovery by resetting in software.

    2. As a solution from a permanent perspective, we believe that hardware measures are necessary.
    In order to take countermeasures, we need to investigate the cause of the problem (whether the problem is on the AM437x side or on the CPU to which it is connected).
    We believe it will be easier to investigate the cause if there are points to check and possible causes.

    Best regards,
    O.H

  • Hello O.H, 

    Thank you.

    I will need additional hardware information on the architecture and the interface to provide my thoughts of any check points.

    Regards,

    Sreenivasa