工具与软件:
大家好、Nick、Anil、团队成员、
按照约定、将此讨论传递给外部线程。 当前情况下的摘要。
当前状态:
*我们有一个硬件计时器
*我们在 R5上使用中断
*触发 GPIO 写入
遗憾的是、我们在实际应用中看到、此 GPIO 触发器有时会延迟200-300ns。 我们通常还会看到 AM64上的其他进程出现延迟、这可能是由于共享总线造成的。
我们现在了解如何将 DMA 用于此过程:
*所以我们需要 DMA 传输来写入 GPIO 寄存器
*该 DMA 应由硬件计时器模块触发
*我们还将计时器信号路由到 HW_TSxPUSH 引脚(如果可以提供任何帮助)
计时器中断或 HW_TSxPUSH 信号是否能够触发 DMA 写入 GPIO 模块?
现在、我们已经使用 CPTS 模块:
* GMAC 内部的 CPTS、用于生成 PTP PPS
*全局 CPTS 测量同步精度和比较 PPS 信号
*我们已通过其中一个 SYNCx_OUT 引脚路由生成的 PPS
对于我们当前的应用:
*由于遗留原因,我们当前的板卡,我们连接到 AM64,需要 UART 线路上的触发信号
*为此、我们通过 R5中断从参考 PPS (AM64计时器模块)生成 GPIO 下降沿
*如果只有主 R5处于激活状态,我们几乎看不到任何抖动(接近+/-5ns,这是200MHz GPIO 时钟的结果),因为我们只对任何代码或数据使用 TCM 存储器,并禁用所有其他(FERTOS)中断
*一旦我们有更多的后台活动(菊花链设备,一些网络流量),我们有时会看到这些延迟的跳跃
我们已经添加了一个多路复用器来将实际 PPS 信号路由到 UART 线路、从而解决新硬件的问题。 我们只是想看看、我们是否仍能解决现有硬件上的问题、或者至少能对其进行改进。 为此、我们可以更高效地使用 DMA 来更有效地使用内存总线并减少延迟。
*有几个不错的 R5使用示例
*我在文档中不知道的是、我们如何通过某种 PPS 信号触发 DMA 传输(我们有所有必需的 PPS 信号通过 TSR 运行、因为它们连接到 HWx_TS_push 引脚)
以下常见问题解答有助于了解如何基于 GPIO 触发 DMA。
谢谢!
Aida



