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