Hello,
I have a board with 2 TCA9548A chips. One with address x70 and the other with address x71.
Im using a NI USB-8452 as the I2C Master sending the data from my application.
The SCL and SDA pins have a pull up resistor of 4.7kOm to Vcc =3.3V
The application is very simple:
- Configure the slave address x70 +1 bit Write,
- Write a command to switch the channel. For instance, if I want to connect Channel1, I send "x1". I connected the SCL and SDA of CH1 to the scope. As you can see in the image TA CH1.jpg, the yellow signal is the SCL and the green signal is the SDA. This is the expected behavior.
- Close the session and the reference.
- Stop application.
Problem:
After running one time the above application, I changed the command to "x0" (No channel selected) and ran again the application. To my surprise, I see part of the above signal in the scope (see image TA Ch0 Bad). I expect to see No Signal.
I changed back to Ch1 "x1" and run again the application. I see in the scope the expected data (TA Ch1.jpg). Now, I changed the data to "x2", ran the application and see extra data in the scope (see image TA CH2.jpg) I expected to not see any signal. If I run again the same application with data "x2", then I don't receive any signal in the scope. This is the expected behavior.
Note: I verified this same behavior with a different USB I2C Master from FTDI: C232HM-DDHSL.
Conclusion:
It seems I need to run twice the same application in order to "clean" the buffer , Im not sure why I need to run twice the application to behave correctly.
- What could be the problem?
- Is this the expected behavior?
- If it is a Hardware issue, what are the recommendations?
- Is there a command in order to clean the old data or to clean the left of the data?
Thank you in advance
Dalia
I