主题中讨论的其他器件: TIC12400
工具与软件:
Q1:如何设置为轮询模式? 当我们设置 CONFIG 寄存器--> POLL_EN=1、 但 IC 仍处于 连续模式。
您能否提供完整的轮询模式设置过程?
Q2:当我们使用 TIC12400-Q1通过 IN0或其他引脚中断来 唤醒 MCU 时、是否能找出触发唤醒的引脚?
请提供详细的设置步骤。
谢谢!
Jerry
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.
工具与软件:
Q1:如何设置为轮询模式? 当我们设置 CONFIG 寄存器--> POLL_EN=1、 但 IC 仍处于 连续模式。
您能否提供完整的轮询模式设置过程?
Q2:当我们使用 TIC12400-Q1通过 IN0或其他引脚中断来 唤醒 MCU 时、是否能找出触发唤醒的引脚?
请提供详细的设置步骤。
谢谢!
Jerry
Jerry、您好!
您是否在器件网页上看到此文档? 我相信它会涵盖您要寻找的内容。
配置 TIC12400-Q1多开关检测接口(MSDI)的步骤
请通读该指南并解答任何其他问题。
谢谢!
Amy
Jerry、您好!
当输入信号状态发生变化时、会设置 INT_STAT 寄存器的 SSC 位3。 这表示发生了来自任何开关输入 IN0-IN23的输入阈值交叉。 然后、MCU 可以在最近的轮询周期内读取输入信号的值。 但是、必须在时间范围内输入信号导致唤醒事件、并且 MCU 可以确定输入信号不是原始值、并且必须是唤醒该信号的原因。
器件中没有保存该信息的锁存寄存器。 要想知道是哪个 INx 引脚导致了唤醒事件、必须快速读取寄存器。
如果您有任何其他问题、敬请告知。
谢谢您、Amy
您好、Amy、
感谢您的答复。 我们对您的描述有基本的了解。 此外、对于您的回复、我们需要进一步询问:当前要求 MCU 进入睡眠模式并被 TIC12400输入 IN0-IN23的变化唤醒(同时还知道哪个引脚触发唤醒)。 因此、我想确认、在 MCU 睡眠模式下应该无法读取您之前提到的输入信号值。 唤醒后、MCU 是否仍可以读取这些值? 或者、是否有其他方法可以满足该功能要求?
谢谢!
Jerry
您好、Amy、
关于您提到的第8.3.9.3节、 我们已经成功使用 IN0或 IN4唤醒 MCU 并在读取 INT_STAT 寄存器的 SSC=1时进行了测试。 但是、MCU 唤醒后 、我们 无法确定 IN0或 IN4是否触发了我读取的寄存器值的唤醒(我检查了 THRES_COMP 寄存器、INT_EN_COMP1和 INT_EN_COMP2寄存器)。 我的过程中是否会出现错误、或者我是否应该读取不同的寄存器?
谢谢!
Jerry
Jerry、您好!
Amy 外出度假、因此我可以帮助解决您的问题。
在中断状态寄存器(INT_STAT)中接收到 SSC=1中断位后、您将需要读取比较器状态寄存器(IN_STAT_COMP)或 ADC 状态寄存器(IN_STAT_ADC0和 IN_STAT_ADC1)来确定 INx 引脚状态的值、具体取决于您是使用比较器还是 ADC 来监控 INx 引脚。 可以使用比较器将两者与某些 INx 引脚和其他 INx 引脚结合使用 ADC。
理论上、在比较来自 IN_STAT_COMP 或 IN_STAT_ADC0/1寄存器的返回值时、MCU 将知道 INx 引脚的"默认"状态作为基准。
正如 Amy 提到的、IN_STAT_COMP 和 IN_STAT_ADC0/1寄存器未被"锁存"、只要在 INx 引脚更改回先前状态并且新的轮询周期替换了寄存器值之前 MCU 唤醒并读取这些寄存器、MCU 就应该能够确定哪个 INx 引脚导致了唤醒事件。
此致、
Jonathan