Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

TCA9555: TCA9555 scanning process

Part Number: TCA9555

Dear Team,

 

  I have a customer that used TCA9555 in expanding IO.

  We get an issue on the scanning process.

  Can you help us to clarify such question, thanks?

 =========================

Stepping check: (Device address 0x20)

Script 1:

  s1: power on DUT(Master)

  s2: DUT sends scanning command which is 0x20 device address + "R" only to TAC9555 (Slave Device)

  s3: Master Device gets NACK signal.

Script 2:

  s1: power on DUT(Master)

  s2: DUT sends formal READ 0x06 command, then Slave device returns 0xFF (correct).

  s3: DUT sends scanning command which is 0x20 device address + "R" only to TAC9555 (Slave Device)

  s4: Master Device gets ACK signal.

Best Regards

Kevin

  • Hello Kuan,

    I think I know what you are asking.

    The second sequence you send a write and you see the ACK.  Which is what is what you expected.  

    In the first image we see the first sequence and  you are sending a read command by having the 8th bit high and the slave NACKs when you expected an ACK.  The problem is you didn't set it up as a read.  You have to perform a write first to setup the pointer.  I wonder if the state machine is confused by that and doesn't acknowledge.  Did you try the following read instructions as in the datasheet?

    I need to confirm with my coworkers if that is in fact the issue. 

    -Francis Houde

  • Dear Francis,

    Thanks for the information. I will check with RD to see it is the root cause or not.

    Please also confirm it after you get the answer from the colleague.

    Best Regards

  • Dear Francis,

    The customer mentioned step 's2' in script 2 can normally read data through READ command with device address and register value.

    Does it mean that 1st byte, salve address with (R|/W), next to START bit must be settled as '/W'(0), right?
    If correct, 's3' indeed should get 'NACK', right?
    But I am curious that 's3' became correct after I executed 's2' first.

    BTW, let me illustrate in detail. "scanning command" is [SLAVE ADDR with +R(read)].

    Best Regards
    Kevin
  • Hello Kevin,

    I confirmed that if you don't setup the read operation with a write to setup the pointer then it will NACK.  They have to perform the read operation as shown in the datasheet, like the picture that was attached to the previous post.

    -Francis Houde