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.

TCA9534: interrupt questions

Part Number: TCA9534
Other Parts Discussed in Thread: PCA9534

Hi,

Our customer used TCA9534 and need to confirm one question about interrupt, does TCA9534 get multiple interrupt? His application need several external interrupts, and these interrupts could happen at any times, it may happened at a short interval time. As there is limited IOs of MCU, so he decided to use TCA9534, but if the MCU didn't have time to handle the interrupt while other ports also appear interrupt due to the IO level change. So if the new interrupt could also be got or passed? 

In addition, I found the below post whose customer used PCA9534 and got the multiple interrupt, and he changed to TCA9534 and solve the problem, I am confused, could you please help to explain?

 Best regards

Kailyn

  • Kailyn,

    Good to hear from you. The TCA is the newer technology, so this is good for the customer.

    The INT pin is pulled low whenever any input pin changes state, including when multiple pins change state. The INT signal is cleared/released upon a read from the Input Port register.*

    Relating to your question, this means that, if the customer's application sees multiple inputs change at once, the INT pin will be pulled low, just like it would for any single input changing by itself. Once the byte is read from the Input Port register, the MCU will have received the data for all of the input ports on the TCA9534 P7-P0, and then the INT flag will clear.

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

    Let me try to make an example to see if this fits the application in question:

    Let's say all pins P7-P0 are currently configured as inputs, and all of them are logic high. The INT pin will remain logic high while this remains true. Any read of register 0 will show the current states of these pins (ex. 0xFF).

    If P0 falls low, the INT pin will also pull low. When the MCU reads register 0, it will receive 0xFE, since P0 is now low. After reading, INT is high again until the next change.

    After this, let's say P3, P2, and P1 also all fall low at the same exact time. Here, INT will pull low until register 0 is read by the MCU. When the MCU reads register 0, it will receive 0xF0, and then INT will be high again.

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

    Does this help explain? Please let me know if I can help any further.

    Best,

    Danny

    *The INT pin also clears if the input pins change back to their original state before being read. In other words, if the MCU does not read register 0 before the input pin changes back, the INT pin will still be cleared. For in-depth timing considerations for interrupts, look at section 8.3.2 of the datasheet.

  • Hi Danny,

    Thank  you very much for your detailed explanation.

    Best regards

    Kailyn