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.
Tool/software: TI C/C++ Compiler
Good afternoon,
I'm using the following setup:
-ESP12-S microcontroller
-TCA9544A I2C multiplexer
The multiplexer is meant to operate 4 distance sensors, but I cannot get the ESP12S chip to properly communicate with the TCA chip when performing an I2C bus scan.
The weird thing is that a first version of our PCB with more or less same schematic could easily talk to the TCA, however, the next iteration and a complete redesign (our latest iteration) still could not solve this issue and it is quite frustrating that we could not solve this. These were the following observations:
- The TCA and all downstream I2C devices operate at 2.8V
- In our test setup these devices are not present yet in the circuit, but the SC0-SC3 and SD0-SD3 are all connected to 4k7 pullups
- instead of 47k (depicted in the schematic), I used pullups of 4k7 for both SDA and SCL, they are connected to the ESP-12S which is run at 3,3V
-Thus the TCA is used as a logic shifter, we also tried to run the ESP and TCA all on 3,3V but this did not make a difference
- Our ESP12-S has not problems communicating with our previous design, thus more or less ruling out any code issues
- The oscilloscope shows that either;
- The SDA and SCL voltages are high
- Or we see a signal, but instead of varying between 3,3V and 0V as one might expect, the signals are disturbed or only shift between 2,8V and 2,2V
Below are schematic and pcb design, any help on this issue would be greatly appreciated, because we completely run out of ideas what could be the cause.
Many thanks for all your answers,
Just
The chip was integrated in our circuit in the following way, I do not see how the SDA and SCL lines of the TCA chip could cause interference in this way:
Hello Bobby,
Thanks for your quick response and suggestions:
See below scope shots of the I2C transactions. I noticed that the SDA signal only varies between 1.6V and 2.8V. Also there seems to be a strange step wise reduction in the SCL signal, as seen on the right.
However, also every now and then the signal also shows other strange behavior, such as depicted below:
would also like to confirm you are communicating to the device through SDA/SCL (main) and not to one of the sub channels like SDA1/SCL1.
Yes, we only communicate through the device through SDA/SCL main
Can you also probe Vcc to verify we are getting power.
Yes, the TCA receives 2.8V and the ESP runs on 3.3V, confirmed with a multimeter and the scope shows a steady voltage signal
Is there anything that comes before this in the signal chain (like another I2C switch or a buffer?) or is it connected directly to the master?
There are three PCB's in line;
-TOP; this is where the TCA9544A and the four I2C distance sensors are located, these four distance sensors are connected to the sub channels of the TCA SD/SC0 to 3. Everything receives 2.8V
-BOTTOM; this connects the top with the ESP with regard to the I2C signal, this is also where the pullups are located as these pullups receive 3,3V (the pullups on the TOP only receive 2.8V and they are not used, as the ESP is working on 3.3V)
-BOTTOM_ESP; this houses the ESP12-S, We use pins GPIO2 and GPIO4 for the SDA and SCL respectively, they are not used for anything else. The ESP us powered with 3.3V
Other than the TCA with the four distance sensors on its subchannels there is nothing on the I2C pins of the master
Since our old TOP prototype has no issues communicating with the master, I do not feel it is likely that the problem lies with the BOTTOM or BOTTOM_ESP pcb's. Attached is a scope picture of the exact same BOTTOM and BOTTOM_ESP but now with our old TOP pcb, where everything seems fine and the bus scan also reports a device at 0x70 (the tca) and 0x29 (a distance sensor) persistently. I would therefore expect the problem to be with the new TOP prototype.
Please also verify that the chip is soldered on correctly to the board (make sure it was not flipped 180 degrees when soldered by mistake).
The chips orientation is correct
Furthermore, we tested multiple boards, to see if this was a defective TCA, but the issue seems to persist.
One more thing though, our old TOP prototype actually has the four distance sensors attached.
Our new TOP prototype that faces these errors does not have the four distance sensors attached, however, we did solder on the four 2.8V pullups for these four distance sensors so I would expect that this should not be a problem for at least the master detecting the TCA. Do you think this difference could have something to do with the problem?
What do you think these scope results could indicate?
I appreciate your help.
Best regards,
Just