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.

TCA9535: Missing Interrupt on TCA9535

Part Number: TCA9535
Other Parts Discussed in Thread: TCA8418

Hi,

Reading the datasheet for TCA9535 it states that:

Resetting occurs in the read mode at the acknowledge (ACK) bit after the rising edge of the SCL signal. Note that the INT is reset at the ACK just before the byte of changed data is sent. Interrupts that occur during the ACK clock pulse can be lost (or be very short) because of the resetting of the interrupt during this pulse. Each change of the I/Os after resetting is detected and is transmitted as INT.


Unfortunately for our application we cannot afford to loose any interrupts however small.  I suggested that our software, once an interrupt had occured and the had been read (and interrupt cleared) that the software could then do a second read to make sure there was not another change.  This however would only be an option if that if there is no interrupt, and the io register value is read, that during the ACK of that read, an interrupt could be actioned.  Is this the case? or is it that any value change during the ACK irrespective of the interrupt state would be lost?

If this device is no good for us, can you recommend another that has no chance of missing any interrupts?

Thanks.

Ian

 

  • Hey Ian,

    "This however would only be an option if that if there is no interrupt, and the io register value is read, that during the ACK of that read, an interrupt could be actioned.  Is this the case?or is it that any value change during the ACK irrespective of the interrupt state would be lost?"

    Correct, there is a window where the INT could be lost when the device is ACK'ing due reading the inputs.

    "If this device is no good for us, can you recommend another that has no chance of missing any interrupts?"

    As you have pointed out, this device does have a window of opportunity where you could lose the INT.

    TCA7408 is a potential replacement as you can see from the excerpt of the datasheet:

    Another option is to use TCA8418 (or the E revision) as you can set the columns and rows to be GPIs and set any change in states to be registered into the event FIFO (will store up to 10 state changes). This solution is nice because the INT will stay latched until the event FIFO is empty. The down side is if more than 10 state changes occur before you are able to read the event fifo then you will over run the FIFO and lose the state changes.

    Thanks,

    -Bobby