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.

Some questions about the datasheet of TCA9555

Other Parts Discussed in Thread: TCA9555

Hello,

I have an urgent problem. 

I saw some words in the write operation in the datasheet:

After a restart, the value of the register defined by the command byte matches the register being accessed when the restart occurred. For example, if the command byte references Input Port 1 before the restart, the restart occurs when Input Port 0 is being read. The original command byte is forgotten. If a subsequent restart occurs,Input Port 0 is read first. Data is clocked into the register on the rising edge of the ACK clock pulse. After the first byte is read, additional bytes may be read, but the data now reflect the information in the other register in the pair. For example, if Input Port 1 is read, the next byte read is Input Port 0.

My confusion: 1.Why the read operation start when the restart signal just happen? I think the read operation should start after the host send restart signal + slave address. 

2. Datasheet says that when the system power up , all pin are input status by default, write output port register won't influence the value of pin. I don't configurate the pin to output status, just write the output port register directly, but I still obtained the electrical levels I wanted, what's the reason of this please?

Thanks a lot!

  • Hello.

    1) The paragraph you are asking about is trying to explain the auto-increment feature. If you send the command byte corresponding to input port 0, and read 2 bytes, the TCA9555 will automatically increment to input port 1 for the 2nd byte. The paragraph then explains, that if for some reason a restart happens in the middle of a read of port 0, if you start reading again, you will get data from input port 1 register rather than input port 0. THis is because, internally, the register/command byte increments at the ACK before data sends.

    2) This should not happen. The ports do have internal pull-ups, which will mean that a default input will result in a 100k pull-up to VCC. If you are writing a 0 to the output register and seeing a port go low, please also read the configuration register to confirm that it is input mode or not.