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.

[参考译文] PCF8574A:如何在 I2C ACK 阶段防止 PCF8574A 上丢失中断?

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1459183/pcf8574a-how-to-prevent-missing-interrupts-on-pcf8574a-during-i2c-ack-phase

器件型号:PCF8574A
主题中讨论的其他器件: TCA9539、TCA8418E

工具与软件:

问题:

我在项目中使用 PCF8574A I/O 扩展器、而中断(INT)行会遇到问题。 该器件会在端口输入的任何上升沿或下降沿生成中断、但我已经注意到在 I2C 读取操作期间可能会错过中断、尤其是在发送 ACK 时。 出现这种情况是因为中断在确认阶段被复位、并且任何接近该时间的 I/O 更改都可能不会生成新中断或导致脉冲非常短。

上电复位时、所有端口均设置为输入模式、并具有初始高电平状态。 如果从外部拉低任何端口引脚、中断输出将变为有效状态(低电平)、这正是正常情况。 不过、挑战在于如何确保在 ACK 阶段不会错过任何中断。

是否有建议的策略或权变措施可防止在使用 PCF8574A 时在 ACK 阶段丢失中断? 如果您有任何关于在固件或硬件中处理此问题的见解或建议、我们将不胜感激。

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

    尊敬的 Nikita:

    这是 IO 扩展器的一个已知问题。 请参阅 TCA9539 IO 扩展器数据表中的说明:  

    一种解决方案是使用 TCA8418E。 它是一种 IO 扩展器、可用于键盘阵列或与各个 IO 引脚配合使用。  

    TCA8418E 具有一个可跟踪事件变化的10字节 FIFO。 如果 IO 在 ACK 位的这个小窗口内改变状态、则会将其作为事件记录在10字节 FIFO 中。 此实现方案的唯一缺点是、如果在 ACK 相关脉冲期间发生10个或更多事件、则 FIFO 可能会溢出并且数据将丢失。  

    此致、

    Tyler

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

    感谢 Tyler 的回应。 很有帮助!

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

    Nikita、

    很高兴我能提供帮助。 如果您有任何其他问题、请提问另一个问题!  

    此致、

    Tyler