求助STM32H7 ADC连续转换实测速率只有计算值的1/2
请假一下,用STM32H7 ADC 做17通道单通道连续转换,时钟用的是PLL2速率是120MHz,异步时钟分频12倍,所以应该是10MHz,用1.5Cycles 采样时间+8.5Cycles (16bit)转换时间,计算出来应该转换速率是1Msps,用DMA 循环模式读取数据,分别在完成中断读取一半的数据,在半完成中断读取一半的数据,发现实际只有500Ksps的速度,比计算值小了一半,求教一下是哪里做错了,感谢 中断执行的时候,DMA是卡住的 zzsczz 发表于 2023-7-28 02:37中断执行的时候,DMA是卡住的
(引用自2楼)
现在是速率正好差了一倍,应该不是这个问题,后来我把分频改为6了,也就是ADC的时钟是20MHz了,这样ADC正好可以实现1MSPS,所以应该是哪里有个默认的2分频在,不过没找到相关的说明 本帖最后由 Himem 于 2023-7-28 11:37 编辑
是不是开了2x过采样
ADCx_CFGR2 我的STM32H7采样率是对的,你是不是开了2个通道轮询采集?这样速度就慢一半了。 yuyu87 发表于 2023-7-28 11:42
我的STM32H7采样率是对的,你是不是开了2个通道轮询采集?这样速度就慢一半了。 ...
(引用自5楼)
没有,是2个通道,但是分别用的ADC1和ADC2,所以应该没有影响 Himem 发表于 2023-7-28 11:33
是不是开了2x过采样
ADCx_CFGR2
(引用自4楼)
没有开过采样 感觉像整个系统的时钟都慢了一半,timer也慢了一半,但系统配置的时钟是400MHz,不知道哪里出了问题 可以测量采集 开始 和 采集结束 的时刻,比如用2个gpio 的上升沿 分别代表 采集 开始 和结束时刻,然后用示波器 单次触发,测量 两个 上升沿 的 间隔; 同事数缓冲区数据的个数。
你是怎么发现采样率不够的(采样点数 和 采样时间 怎么记录的)? 单次采集数据格式是啥(这个要翻手册)?
页:
[1]