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:TCA9535上缺少中断

Guru**** 2382480 points
Other Parts Discussed in Thread: TCA9535, TCA8418
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/760999/tca9535-missing-interrupt-on-tca9535

器件型号:TCA9535
主题中讨论的其他器件: TCA8418

您好!

阅读 TCA9535的数据表时、可以看到:

在读取模式中、在 SCL 信号的上升沿之后的确认(ACK)位发生复位。 请注意、在发送更改数据的字节之前、INT 会在 ACK 处复位。 由于在此脉冲期间中断的复位、在 ACK 时钟脉冲期间发生的中断可能会丢失(或非常短)。 复位后 I/O 的每次变化都会被检测到并作为 INT 进行传输。


遗憾的是、对于我们的应用、我们无法承受任何微小的中断。  我建议我们的软件、一旦一个中断发生并且已经被读取(并且中断被清除)、软件就可以进行第二次读取以确保没有另外的变化。  但是、只有当没有中断且读取 IO 寄存器值时、这才是一个选项、即在该读取的 ACK 期间、可以激活中断。  是这样吗? 或者、无论中断状态如何、在 ACK 期间的任何值变化都将丢失吗?

如果此器件对我们来说不是很好、您能否推荐另一个没有机会丢失任何中断的器件?

谢谢。

Ian

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Ian、

    "但是、只有当没有中断且读取 IO 寄存器值时、才可以选择此选项、即在该读取的 ACK 期间、可以激活中断。  这种情况是这样吗?还是无论中断状态如何、在 ACK 期间的任何值变化都会丢失?"

    正确、有一个窗口、当器件由于读取输入而进行 ACK 操作时、INT 可能会丢失。

    "如果此器件对我们来说不是很好、您能否推荐另一个没有机会丢失任何中断的器件?"

    正如您所指出的、此器件确实有一个机会窗口、您可能会丢失 INT。

    从数据表的摘录中可以看出、TCA7408是一种潜在的替代产品:

    另一个选项是使用 TCA8418 (或 E 版本)、因为您可以将列和行设置为 GPI、并将状态的任何更改设置为注册到事件 FIFO 中(最多可存储10个状态更改)。 此解决方案很好、因为 INT 将保持锁存状态、直到事件 FIFO 为空。 缺点是、如果在您能够读取事件 FIFO 之前发生了10次以上的状态更改、那么您将会运行 FIFO 并丢失状态更改。

    谢谢、

    -Bobby