Other Parts Discussed in Thread: TCA6416, TCA6416A, TCAL6416
器件型号: TCA6416
主题中讨论的其他部分:、 TCAL6416
尊敬的 TI 团队:
我们使用的是 TCA6416 GPIO 扩展器与连接 NVIDIA Orin NX 继续讨论。 尽管数据表提示器件具有极低延迟 (~μ s 4µs)、但我们面临着一个问题、即当输入信号频率接近 1kHz(1ms 间隔)时、中断会丢失。
系统配置:
-
主持人: NVIDIA Orin NX(基于 Linux)
-
器件: TCA6416
-
接口: I2C(配置为 400kHz)
-
输入: 引脚 P0.0 配置为外部信号每 1ms 切换一次的输入。
-
中断线路: TCA6416
INT引脚连接到 Orin NX 上的 GPIO(配置为低电平有效)。
问题: 当向 P0.0 提供 1ms 的中断脉冲时、我们会观察到在主机端不能可靠地触发中断。
该INT行似乎没有足够快地取消置位(返回高电平)。 我们的测试表明、系统需要的延迟为 ~5-7ms 相互比较以可靠地捕获每个事件。 如果输入速度快于此速度、则INT引脚保持低电平(有效)、从而有效地屏蔽后续脉冲。
我们的分析: 我们知道 TCA6416INT 在引脚状态发生变化时置为低电平、仅在之后释放 输入端口寄存器 读取或引脚状态恢复到原始值(取决于锁存器配置)。
我们怀疑、瓶颈可能是 Linux I2C 驱动程序确认中断并执行清除INT线路所需的特定 I2C 读取事务所需的时间。
问题:
-
INT收到 I2C 读取命令后、能否确认 TCA6416 内部逻辑的最短内部复位时间? -
对于该器件上的高频轮询/中断清除、是否建议使用特定的“批量读取“或优化的寄存器访问方法?
-
如果 I2C 读取恰好在发生新的输入转换时发生、是否有任何有关“中断屏蔽“的已知勘误表?
如有任何关于尽可能减小“INT 清除“延迟的见解、请不胜感激。 在本例中、我们无法承受~5-7ms 的时间。
谢谢、
Cibi.P

