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.

[参考译文] AFE882H1:设置 CTS 位后未在 IRQ 引脚上获得中断

Guru**** 2902770 points

Other Parts Discussed in Thread: AFE882H1, AFE881H1

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1642302/afe882h1-not-getting-interrupt-on-irq-pin-after-cts-bit-is-set

器件型号: AFE882H1
主题中讨论的其他器件: AFE881H1

我将 SPI 协议用于 AFE882H1 IC 与微控制器的接口

以下是 AFE881H1 初始化期间添加的配置:

通过将值 0xAD 写入寄存器 0x07 来执行软件复位。
软件复位后、增加了 100ms 的死区延迟。
向 CONFIG 寄存器 (0x02) 写入值 0x58;之后会发出 NOP 命令。
读取 GEN_STATUS 寄存器 (0x21) 以清除复位标志。
5。读回 CONFIG 寄存器 (0x02) 以验证配置的值是否已成功写入。
向 ALARM_STATUS_MASK 寄存器 (0x1D) 写入值 0x27FF、然后读回同一寄存器以确保写入成功。
7。GEN_STATUS 寄存器 (0x21) 中写入值 0x7FF、并读回同一个寄存器。
写入 FIFO_CFG 寄存器 (0x0F) 的值 0xFF、然后读回。
写入 MODEM_STATUS_MASK 寄存器 (0x1F) 中的值 0xFC9C、然后读回。
写入 MODEM_CFG 寄存器 (0x0E) 的值为 0x48;发出 NOP 命令后、会读回同一寄存器。
11。读取 ALARM_STATUS 寄存器 (0x20) 以清除所有已设置的警报状态位。
12.读取 GEN_STATUS 寄存器 (0x21) 以清除已设置的所有一般状态位。
13.读取 MODEM_STATUS 寄存器 (0x22) 以清除已设置的所有调制解调器状态位。
14 读取 CHIP_ID_LSB 寄存器。
15.读取 CHIP_ID_MSB 寄存器。
16.CONFIG 寄存器 (0x02) 写入值 0x158;发出 NOP 命令后、会读回同一寄存器。  

在这种配置下、器件会在 IRQ (UART_OUT) 引脚上生成中断。 但是、当 将值 0xFC9E 写入 MODEM_STATUS_MASK 寄存器时、如果 设置了 CTS 位、则不会生成 IRQ。

请告诉我如何在 CTS 位生效时获得中断。 具体来说、 MODEM_STATUS_MASK 寄存器中的 CTS_ASSERT 和 CTS_DEASSERT 位是否需要设置为零以启用中断、或者是否缺少其他特性? 目前、 当仅 MODEM_STATUS_MASK 寄存器中的 CTS_ASSERT 位设置为零时、我在 CTS 置为有效时未收到中断。

 

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

    您好、

    我在这里回复了您的另一个线程: AFE882H1:在配置调制解调器状态屏蔽寄存器后、在状态寄存器中设置 Modem_IRQ 位 


    可以看到您在这里添加了更多配置步骤。

    我将 0xFC9E 写入 MODEM_STATUS_MASK 寄存器以及后来的 0xFFFE、当 CTS 置为有效时、我能够将 MODEM_IRQ 位读取为高电平。 为了读取实际的 IRQ 引脚、您是否在寻找上升沿脉冲信号或 IRQ 信号、只要您获得 CTS 置为有效警报就会保持高电平?

    您可以将配置寄存器(值= 0x15C)设置为对第二种情况使用电平敏感中断、其中 IRQ 引脚输出在 CTS 置为有效时保持高电平、然后在 CTS 置为有效消失或被屏蔽时变为低电平。 确保将您的引脚上拉至 IOVDD。 如果您只想使用 IRQ 脉冲而不是电平敏感脉冲、请注意 IRQ 脉冲为 813ns、并且仅在故障条件发生时才会发生、直至成功清除。

    谢谢您、
    Lucas

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

    感谢您的详细介绍、Lucas。

    我当前正在测试 IRQ 上升脉冲的 行为。 请在下面找到我的观察结果和设置详细信息:

    1. 硬件设置: 由于我专门寻找上升脉冲、因此我目前没有将引脚上拉至 IOVDD。(我认为对于上升脉冲,不需要它)

    2. 初始配置: 为了隔离 CTS_ASSERT 事件、我屏蔽了 MODEM_STATUS_MASK 寄存器中除 CTS_ASSERT (设置为 0)之外的所有位。 在这种设置下、我希望通过 SPI 设置 RTS 位后 IRQ 引脚立即脉动。 但是、我没有通过逻辑分析仪观察到 IRQ 引脚上有任何移动。

    3. 修改后的配置: 然后 MODEM_STATUS_MASK 通过同时取消屏蔽 CTS_DEASSERT (将其设置为 0)来修改。 在同时使用 CTS_ASSERTCTS_DEASSERT 未屏蔽的情况下、调制解调器在设置 RTS 位后开始按预期生成 IRQ 信号。

    注意: 所有其他寄存器配置与之前提供的完全相同;唯一的更改是在 MODEM_STATUS_MASK 寄存器内进行的。

    您能否指导我、看看这是否是预期行为? 如果没有、您能否帮助我确定当前设置是否存在冲突?

    谢谢您、

    Vijaysinha  

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

    尊敬的 Vijaysinha:

    我还在努力衡量这种行为、明天我将为您提供更新。

    谢谢您、
    Lucas

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

    尊敬的 Vijaysinha:

    很抱歉耽误你的时间。

    当 CTS 置为有效是唯一未屏蔽的调制解调器警报位时、我能够使 CTS 置为有效以生成中断脉冲。

    我通过上拉电阻器将 RTS 引脚连接到 IOVDD。 通过将 Modem CFG 中的 RTS 位设置为高电平、器件开始调制空闲音调。 当我清除 RTS 位并使其为 0 时、我的音调停止、并在中断引脚上观察到 IRQ 脉冲。 我还能够使用 RTS 引脚重新创建该信号。 我将 RTS 位保持为 0、然后将 RTS 引脚从高电平切换到低电平、再切换回高电平、然后能够生成另一个中断脉冲。 我在半双工和全内部双工模式下都进行了这些测试。


    黄色是中断线路、棕色是我的 HART 输出、绿色是 CD、因为我在进行这些捕获时处于双工模式。



    这是中断脉冲的放大捕获图。




    请告诉我这是否能够解决您的问题、

    谢谢您、
    Lucas