Other Parts Discussed in Thread: PCA9306
Dear Team,
We are using AM5706BCBDJA device in our Processor Board. This problem is regarding the I2C bus issue. We are using all 5 I2C buses as masters, connecting them to different slave cards. Each Master has many slaves connected. We are using bare metal software I2c driver given by TI. All I2C except I2C2 and 5 buses we use for reading some house keeping activities which works consistently as they are used rarely.
Whereas, we use I2C5 and I2C2 continuously for LM6586 cross point switching. This LM6586 connects to Processor through PCA9306 level translator (3.3V to 5V). There are 3 devices (LM6586) connected after PCA9306 and 2 I2C expanders (PCA9555PW,118) & one Temp sensor (MAX1668MEE+) before translator.
We are facing I2C issues very frequently with these 2 buses from Processor. Some times write transaction goes through but whereas read transaction does not get initiated from Processor itself. We get F0 from Processor when probed instead of given address. We have 00 or 01 or 02 address but we are not able to understand how F0 is coming out. We do read transaction to confirm whether write went through properly or not. sometimes it is working after we give more I2C timeout time, do bus close and open, but in major problem is there. Even with pull-ups value reduction, severity improves but still problem exist. Now pullup value is 2.35K (2 4.7k's used on each side)
We needed help in understanding this issue. In which scenario F0 comes out of Processor? We are not able to doubt slaves or hardware or pull-ups as Master itself is not sending right data out? Is there anything that we are missing here which slaves or hardware can cause issue? I have given part numbers of all devices on path above.
I2C bus hardware configuration and pin mapping is given below.
Regards,
Erfan