TCA9539-Q1: About interrupt lost

Part Number: TCA9539-Q1
Other Parts Discussed in Thread: TCA8418E

Tool/software:

Hi Expert,

Have a nice day!

I have question about TCA9539-Q1 need your professional support:

About “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.”  I have 2 questions:

  1. Do you have a more intuitive diagram to illustrate this?
  2. What I understand is that the lost interrupt is caused by rising or falling edge of the port input occurs at the ACK bit, then it causes the time of /INT=0 is short. Is it right? If my understand is right, any methods to avoid this interrupt lost?

 

Thanks!

Best Regards,

Leo Ma

 

  • Hi Leo,

    Our IxC expert is currently on leave and will be back later this week to help with this request. Please allow some time, thanks! 

    Regards,

    Jack

  • Hi Leo,

    I do not have an exact diagram to show this behavior. 

    I can show the timing diagram in the datasheet: 

    where Tir is the time where an interrupt can be lost or very short. Tir(max) <= 4 us which means an interrupt during this time is either very short or is lost. 

    If interrupts being lost is going to be a problem for the customer, we need to consider a device that has a buffer for data changes that occur during the interrupt assertion. A device such as TCA8418E is a keypad scanner with a 10 byte fifo that keeps track of input changes (up to 10 changes) even during the ACK bit. 

    What I understand is that the lost interrupt is caused by rising or falling edge of the port input occurs at the ACK bit, then it causes the time of /INT=0 is short. Is it right? If my understand is right, any methods to avoid this interrupt lost?

    The interrupt is "lost" because there is only 1 interrupt pin for both ports. For example, if P00 changes state and causes /INT = LOW, and the interrupt is processed by the MCU, it sends a read command through the I2C bus. During the ACK bit pulse, SCL samples the ACK bit, during a time Tir -- P01 changes state, but the /INT = LOW already so the interrupt is "lost" because all I/O's are connected to a single interrupt. 

    Regards,

    Tyler

  • Hi Tyler,

    Thanks for reply.

    Tyler said: 

    The interrupt is "lost" because there is only 1 interrupt pin for both ports. For example, if P00 changes state and causes /INT = LOW, and the interrupt is processed by the MCU, it sends a read command through the I2C bus. During the ACK bit pulse, SCL samples the ACK bit, during a time Tir -- P01 changes state, but the /INT = LOW already so the interrupt is "lost" because all I/O's are connected to a single interrupt. 

    So, the "lost" only means lost the interrupt to MCU, the real value of P01 is already uprated in the register?

    Regards,

    Leo

  • Hi Leo,

    So, the "lost" only means lost the interrupt to MCU, the real value of P01 is already uprated in the register?

    This is correct. The P01 pin would have triggered the /INT LOW the same as P00. Given that it occurred during the ACK related pulse with /INT already LOW, the MCU only sees 1 interrupt from the original state change on P00, not P01. The MCU can still read the input port register to see that both P00 and P01 have changed state. 

    Regards,

    Tyler