armfly 发表于 2022-3-24 08:50:46

思考下如何实现硬件触发功能


250M示波器模块设计了一个硬件比较器。比较器输出直接连接到RP2040的GPIO。

初步想法是:
1、未触发前,DMA + ADC采集持续进行中。125Msps
2、开启GPIO硬件中断,检测到比较器跳变时,设置定时器中断,在定时器中断服务程序中中再关闭DMA传输,然后等待数据处理。
3、但是这个定时时间不可能很准,会导致波形起始时刻偏移很多周期。比如入50M波形(波形周期只够10条指令)

在思考有没更加有效的触发方案。

byccc 发表于 2022-3-24 10:05:42

125Msps或者250Msps采集50MHz波形能力不行,点数太少,才2-5个点,基本无法查看起始周期偏移。所以不用太担心这个顾虑。

然后结合M0内核中断延迟时间基本固定15个时钟周期左右,考虑进去这个误差就差不多了。

ifree 发表于 2022-4-3 19:43:57

我在想,这个硬件比较器实现的“硬件触发”比软件触发真的有优势吗?
在软件中,通过判断上升沿,甚至实现一个迟滞比较,也是可以的。

DMA 采样,采样得到足够的数据后,软件搜索触发点,从这个触发点开始显示波形。

armfly 发表于 2022-4-3 21:54:34

低频波形可以。频率高一点的,ADC值抖动会导致波形抖来抖去。另外,CPU的搜索和比较速度赶不上波形填充的速度。

ifree 发表于 2022-4-4 14:59:43

我现在用的AD9280,H750直接DMA读取。应该是可以到40M采样率,据说有方法到125M采样率。
我现在还只做到20M采样率,在观察2MHz的正弦波时,还算稳定,不是很抖。
页: [1]
查看完整版本: 思考下如何实现硬件触发功能