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.

[参考译文] TCA9555:在填充了 TCA9555的 IO-EXPANDER-EVM 上生成中断

Guru**** 2540720 points
Other Parts Discussed in Thread: TCA9555, IO-EXPANDER-EVM, TCA8418E, TCA8418

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/804097/tca9555-generating-an-interrupt-on-the-io-expander-evm-populated-with-tca9555

器件型号:TCA9555
主题中讨论的其他器件: IO-EXPANDER-EVMTCA8418ETCA8418

我使用 TCA9555作为 I2C 总线上的从器件之一。

它已在 IO-EXPANDER-EVM 上进行设置、方法是移除它附带的器件。 我正在尝试使用 EVM 上提供的破孔引脚在 TCA9555的引脚1上生成中断。  

为此、我在试验电路板上构建了一个临时电路、该电路使用2k Ω 上拉电阻器将输出引脚上拉至+5V。

我将端口0配置为输入(将所有1s 写入 Config0寄存器)。 我将 J12上的跳线位置从 OUT 更改为 IN。

我每秒轮询 IO 扩展器端口0一次。 使用此配置按下 S3上的按钮是否应将 INT 引脚置为低电平?

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

    是的、我希望输入端口上的状态发生变化以生成中断。 当值从先前读取的值变化时、INT 线路应该被置为有效、并且在输入切换回其先前读取状态时、在输入端口寄存器读取后的 ACK 位上清零。

    您是否未看到任何指示的中断? 您是否能够通过输入端口寄存器正确读取输入端口的高电平和低电平状态? 如果没有、您能否验证是否按预期在正确的输入引脚上强制施加高电压和低电压?

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

    我正在使用示波器检查 INT 线路的行为、它保持高电平、表示中断未被置为有效。

    我认为我在生成中断的步骤中的某个位置出错了。

    我通过将所有1s (0xFF)写入配置0寄存器(命令字节0x06)、将端口0配置为输入。

    然后、我在一秒的循环中连续发出读取命令、以读取输入端口0寄存器(命令字节0x00)

    加电时、输入引脚的默认状态是什么? 这是我使用逻辑分析仪观察到的结果:

    1) 1)默认状态读取为0x13 [00010011]
    2) 2)按下 S3时、状态读取为0x11 [00010001]
    3) 3)当 S4按下时、状态读取为0x12 [00010010]
    4) 4)同时按下 S3和 S4时、读取的状态为0x10 [00010000]

    当任何按下的开关被释放时、读数将恢复为0x13。

    但是、在所有这些转换中、我都不会看到 INT 引脚被拉低(在整个转换过程中保持高电平)。

    在这种情况下、预期的行为是什么? 此外、加电时输入引脚的默认状态是什么?

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

    该器件的 INT 逻辑不会锁存。 有两种情况会使 INT 引脚复位、第一种情况是恢复之前的状态(如果输入为高电平、然后变为低电平、但随后再次变为高电平)。 第二个问题是、如果您执行读取操作、在这种情况下、无论读取的值是多少、器件都会记住这些值、并用作我之前提到的"先前状态"。

    您是否能够查看示波器并观察到 INT 引脚在您按下按钮时、但在您执行读取操作之前变为低电平?

    "此外、加电时输入引脚的默认状态是什么?"
    我相信、如果您有上拉电阻器、输入引脚的默认"先前状态"为高电平;如果您有下拉电阻器、则为低电平。 执行读操作将清除此项并为您提供已知的"以前的值"。

    最后、INT 引脚上的上拉强度是多少?

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

    [引用 user="TRX Bobby]Hey Ruta、

    该器件的 INT 逻辑不会锁存。 有两种情况会使 INT 引脚复位、第一种情况是恢复之前的状态(如果输入为高电平、然后变为低电平、但随后再次变为高电平)。 第二个问题是、如果您执行读取操作、在这种情况下、无论读取的值是多少、器件都会记住这些值、并用作我之前提到的"先前状态"。

    您是否能够查看示波器并观察到 INT 引脚在您按下按钮时、但在您执行读取操作之前变为低电平

    [/报价]

    您好、Bobby、感谢您的回复。 当我按下按钮并在读取之间输入时、我无法看到 INT 引脚变为低电平。

    [引用用户="TRX Bobby"]

    "此外、加电时输入引脚的默认状态是什么?"
    我相信、如果您有上拉电阻器、输入引脚的默认"先前状态"为高电平;如果您有下拉电阻器、则为低电平。 执行读操作将清除此项并为您提供已知的"以前的值"。

    最后、INT 引脚上的上拉强度是多少?

    [/报价]

    我在 IO 扩展器 EVM 上使用 TCA9555 (在移除原始器件后重新组装)。 我的试验电路板上的输入引脚没有任何上拉或下拉电阻。

    INT 引脚上的上拉强度是一个连接到+5V 的2千欧上拉电阻器(这也是我在 EVM 上的 J1 Vcc 处提供的电阻器)。

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

    您好、Ruta、


    "我的试验电路板上的输入引脚没有任何上拉或下拉电阻。"
    TCA9555具有内部上拉电阻、因此这不是问题。

    我假设当您按下开关时、您的开关已连接到 GND?

    J10是否未组装?

    您能否提供按下按钮和 INT 引脚时的范围?
    如果您重置设备并尝试执行该操作、会发生什么情况? 器件没有复位引脚... 忽略此项
    您是否能够在示波器上提供 I2C 交互?

    谢谢、
    -Bobby

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

    感谢您的回复 Bobby、

    我的 J10未组装、J12和 J11设置为 IN 而不是 OUT。

    错误最终是由我的 INT 上拉配置引起的。 我使用了正确的上拉电阻器、并能够在按下按钮时看到 INT 线路下降到低电平。

    从器件中读取新值后、它返回+5V。

    顺便提一下、当长时间按下按钮然后释放时、INT 也会在输入端口的上升沿变化时生效。 是否有办法将中断配置为在输入端口的上升沿或下降沿触发?

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

    很高兴听到您能够解决 INT 问题。

    "是否有办法将中断配置为在输入端口的上升沿或下降沿触发?"
    不在该器件上(或大多数 IO 扩展器上)。 TCA8418/TCA8418E 可能是类似产品的更好选择。 您可以将该器件设置为 GPI、然后在上升/下降沿将其设置为仅 INT。 或者、您也可以将其用作键盘、就像您所做的那样。 如果需要,您还可以将键盘和 GPO 与此设备一起使用。

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