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.

TCA6416A: No ACK for I2C

Part Number: TCA6416A
Other Parts Discussed in Thread: TCA6416, , PCA9306, TCA9416

Hi,

Customer connect ADDR as below to set I2C slave address as 0x20.

And they tried to access the chip using 0x20 , but no ACK is responded from the chip as below.

THey confirm RESET is correctly at 3.3V during the test and other I2C devices on their board can respond correctly to the I2C host on their board under the same test scenario (with other I2C slave address.)  Please suggest what else we can check to clarify this.

THeir chip top side marking is as below.  Is it correct?

Thanks!

Antony

  • Anthony,

    1) Are the P0-P7 and P10-P17 connected to anything or are they floating? The current into VCCP seems a bit high especially if they are floating.

    2) Have you checked the voltage levels at VCCI and VCCP when the part is turned on and you are sending the address? What do the voltages read?


    3) Is it possible for us to take a look at the PCB layout? I just want to be sure something funny like SDA and SCL aren't swapped.

    4) Can we get an O-scope waveform of the SCL and SDA lines? The logical analyzer does not show us the rise or fall times and there may be something unexpected on the lines which isn't seen by the logic analyzer.

    ----------------------------------------------------

    The addressing pin looks correct. With it pulled to GND you should be trying to access 0x20.

    I've checked the schematic pin mapping to the datasheet's pin mapping, the two match up.

    The device marking of PH416A correlates with the datasheet.

    -Bobby

  • Hi,

    We did some tests today as described below, and it seems their layout should be implemented correctly.  Please share your comments regarding the root cause.

    1.  Currently their I2C host (CPU) is connected to three I2C devices including TCA6416 (addr:0x20) and two other devices with I2C slave address 0x1C and 0x41.

    2.  They don’t have a I2C SW driver to access the I2C device with assigned slave address.  Currently they only have a I2C scan SW driver to scan all the I2C slave address from 0x00 to 0x7F.  

    3.  After the I2C scan, they can only detect 0x1C and 0x41 slave address, and can’t detect 0x20 (TCA6416A)

    4. Today I took one Total Phase Aardvark I2C tool and mount SDA/SCL/GND wires from Aardvark to their board, and found my Aardvark tool can access TCA6416A correctly

    5. As long as we firstly use Aardvark tool to access TCA6416A chip on their board, their scan SW driver can detect 0x20 (TCA6416A) correctly afterward.  But if we didn’t use Aardvark again after a new power cycle of the board, the scan still fails to detect 0x20.

    Below shows some SDA/SCL oscilloscope shot while their scan tool is working.  (We can't trigger the waveform to stop at the moment is access 0x20.)  Please check them for a reference regarding the rise/fall time.  

    Do you think it's related to the external pull-up resistor value?  Why it can work well after the access from Aardvark ?  

    Thanks!

    Antony

  • Hey Antony,

    It maybe that the device has somehow latched during a transaction(communication) when the power was cycled, resulting in the state machine getting stuck.

    Can you please verify this isn't the case by applying a reset with software to IO Pin  AND verify the Reset Pin is pulled down to ground with an O-scope (Very Important). Afterwards try to get the ACK from the device.


    Can we also see the waveforms from BOTH your aardvark I2C device AND from the SW driver? We want to see how the waveforms compare.

    What exactly is the Master device? (FPGA, MCU, ect.) Does it have an I2C bus?

    Thanks,

    -Bobby

  • Hi Bobby,

    Please check our update as below.

    1. TCA6416A is placed in a daughter board and CPU (I2C host) is in a main board.  Two boards are connected through a connector.
    2. There I2C is 1.8V from the CPU on the main board and voltage shifted to 3.3V through PCA9306 as below.
    3. On the daughter card, there's a external pull-up 4.7kohm as below.
    4. The I2C waveform provided earlier is captured with both 4.7kohm (R4/R5) and 10kohm (R3323/R3325) implemented.
    5. The waveform as below is captured with R4/R5 open.  Only R3323/R3325 (10kohm) is implemented.  We can see ACK fro TCA6416A while is access 0x20 (slave address of TCA6416A), but their scan tool still can't detect TCA6416A correctly.

      6.The waveform as below is captured with R4/R5 open, and R3323/R3325 are changed to 4.7kohm.  We can see ACK fro TCA6416A while is access 0x20 (slave address of TCA6416A), but their scan tool still can't detect TCA6416A correctly.

    Please let us know your comments

    Thanks!

    Antony

  • Hey Anthony,

    The waveforms from the second post ( Oct 5, 2017) and your latest ones don't match up. In your second post, the address sent is not 20xh but 03xh. Are you sure the scanner is sending the correct address or did you upload the wrong picture in the second post?

    Also to clarify, is your Aardvark going through the PCA9306 (connected to pins 3 and 4 of PCA9306) or is it connected after it (pins 5 and 6 of PCA9306)?

    Judging from the waveforms, the pull up resistors are not the issue. They seem to reach 0.7*Vcc in time to be sampled.

    Thanks,

    -Bobby
  • Hi Bobby,

    When I make the 2nd post on Oct5, customer's SW driver is still not able to specify the I2C slave address.  What they can do then is to scan from 0x00 to 0x7F, so it's difficult for us to catch the screen shot when it access 0x20.  THerefore, I just provide a screenshot with I2C address other than 0x20 for you as a reference.

    Regarding the waveform plots yesterday, their SW driver is ready to specify the I2C address we need, so we can provide the waveform plot when it access 0x20.

    Regarding the Aardvark connection, we connect it very close to TCA6416A, so it's connected to pin 5 and 6 of PCA9306. 

    So, it seems there's not an issue for Vih, how about Vil?  Is it ok as well?

    Thansk!

    Antony

  • Hi Bobby,

    After cross checking with the customer, they can access TCA9416 by simple I2C write and I2C read function in their SW driver. But they still fail to detect the chip through their scan tool in SW driver for unknown reason. Since the main purpose is to to i2C Write and I2C read, the issue is closed for the moment.

    THanks!

    Antony