我们使用 ATSAMD51P19A 和控制应用定时器/计数器 (TCC) 来检测从一个引脚置位到另一个引脚上信号检测的脉冲宽度,但无法实现我们所需的 +/- 分辨率10 纳秒。
下面的框图显示了我们用于捕获脉冲宽度的 Atmel START 配置。
使用延迟发生器,我们知道从引脚 PA23 有效到引脚 PA22 上升沿的时间增量为 720 纳秒 +/- 5 纳秒。根据我们的配置,我们预计应该捕获 720 纳秒 +/- 10 纳秒的脉冲宽度。然而,我们看到的是 720 纳秒 +/- 50 纳秒。我们的应用需要 +/- 10 纳秒,因此 +/- 50 纳秒是不合需要的。
我们尝试了多种配置,但无法达到小于 +/- 50 纳秒的精度。非常感谢任何有关如何实现更高分辨率的建议或反馈。
我们解决了自己的问题。
我们问题的根本原因是 ATSAMD51P19A 的
MCU_VDDCORE/MCC_VSW
电源轨出现振荡,这是由连接到 MCU_VDDCORE/MCU_VSW
电路的低电容值引起的。
通过在
MCU_VDDCORE/MCU_VSW
电路中添加更大的电容器,我们消除了振荡,从而解决了时序问题。我们的方差从 +/- 50 纳秒变为 +/- 10 纳秒。
[我没有足够的声誉来发表评论,所以我在这里添加评论作为答案。]
出于好奇,因为您说通过更改电容器值解决了问题: 之前的电容值是多少,之后的电容值是多少? 是 X7R 还是 Z5U?