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.

PCA9555: Ask for datasheet contents of GPIO expander

Part Number: PCA9555
Other Parts Discussed in Thread: PCA955

When input data differ from input register state, PCA9555 will trigger the interrupt signal to I2C master, right?

In case I2C master connected eight devices of PCA9555, all of I/O port connected to individual DUT.

Could the I2C master understand directly which one of  DUTs was unusual causing PCA955 triggered the interrupt? or I2C master needed to check the state sequentially?

  • Hello Huang,

    "When input data differ from input register state, PCA9555 will trigger the interrupt signal to I2C master, right?"

    That is correct, if the device is set to be an input (default upon start up) then it will remember it's previous state and compare the current input to that state. If the current state is different than the previous state then it will trigger the INT. (Keep in mind if the current state changes back before a read occurs the INT will de-assert)

    "Could the I2C master understand directly which one of  DUTs was unusual causing PCA955 triggered the interrupt?"

    This depends, Do all the INT's share the same bus or will INT of device PCA9555 #1 go to MCU GPI # 1 and Int of device PCA9555 #2 go to MCU GPI #2... ect...

    If each one has it's own GPI from the MCU, then you can tell which DUT caused the INT, if you share the INT pins among 8 devices then you will not be able to tell which one triggered it until you read each individual device. You could use another seperate IO expander and Tie each individual INT to a GPI on the I/O expander and that would be able to tell you which one triggered the INT.

    " I2C master needed to check the state sequentially?"

    This would be the case if you have 8 ints on the same bus to the same GPI of the master. My last suggestion above ^^ would help you determine which DUT triggered the INT.

    Let me know if this makes sense to you, hopefully I explained it clear enough.

    Thanks,

    -Bobby