Hi Texas Instruments team
We have got an application with more than one motor using MCT8316A via I2C (resistive buck used), the application have one microcontroller SAMV71Q21 and as the address can not be modified, we use a I2C translator to go from 0x51 to 0x00, however the answer has been NACK, for this reason by using the same bus I included debug devices (in red), one additional master identified as master 2 and one slave identified 0x03.
By using the master 2 (debug), I send information , byte 0x00, to address 0x51 and I received ACK from Motor A, please look the graph, you are able to see how works translation from 0x51 to 0x00, with no issues.
Yellow=SLC bus
Cian=SDA bus
Blue= SCL after translator
Pink=SDA after translator
f=50.015Khz
ACK received
However by using the master 1 which is my main microcontroller, I received NACK, no answer from motor controller when is required by master 1 (f=49.55Khz).
I tried master 1 to talk with Slave 0x03 (f=49.55Khz) and I received ACK so master 1 can speak I2C, so essentially the problem is when I try to talk with Motor A and master 1.
I appreciate if you could help us with the following questions:
1. Why the motor controller is ACK with one microcontroller and not with the other one even connected to same I2C bus?
2. Could the difference in the frequency (f=50.015Khz success communication) and (f=49.55Khz fail communication), the issue?
3. What is the cause of this behavior, what we need to modify to receive ACK from Motor A when using the master 1.
Let me know if additional information is required.
Thanks.