STM32
直播中

感谢相遇

9年用户 956经验值
擅长:嵌入式技术 制造/封装 控制/MCU
私信 关注
[问答]

stm32F412 ADC采样频率不准的原因?

我用的是timer中断触发采集数据,一次读取20000个点,ADC用的是DMA,目前用示波器测试下来,做FFT计算,对应的频谱不准,差个几HZ,或者到100hz左右,比如我用示波器发送5khz的sin波,采集后计算FFT,会比5k好几hz,采样频率20k没有用外部晶振,用的内部的HSI时钟,不知道什么原因,或者说内部时钟都是这样,会有偏差,那位大师知道,感谢!

回帖(2)

范志坚

2024-4-11 10:21:50
正常。 你不使用精密的时基元件,即使结果看起来够准确了,实际上也可能存在很大的误差。
举报

美信电子

2024-4-11 14:57:22
导致ADC采样频率不准确的原因可能有以下几点:

1. 内部晶振精度限制:内部HSI时钟的精度可能有一定的误差,这会导致ADC采样频率的偏差。可以考虑使用外部晶振提供更准确的时钟信号。

2. DMA传输限制:DMA传输数据时,可能会有一定的延迟或者丢失部分数据,这也可能导致ADC采样频率的偏差。要确保DMA配置正确,以确保准确传输所有的采样数据。

3. FFT计算算法:FFT计算可能会引入一定的误差,特别是当你使用不精确的FFT计算算法时。可以考虑使用更准确的FFT计算算法来提高频谱的准确性。

4. ADC参考电压精度限制:如果ADC参考电压的精度有误差,也会导致采样数据的不准确。确保ADC参考电压稳定并且精确。

5. 环境干扰:如果存在外部干扰,例如电磁干扰或者信号噪音,在采集到的数据中可能引入一定的误差。可以考虑使用屏蔽线或者信号放大器来减少干扰。

综上所述,你可以尝试使用外部晶振提供更准确的时钟信号,调整DMA配置以确保数据传输的准确性,使用更准确的FFT计算算法,确保ADC参考电压的精度以及减少环境干扰来提高ADC采样频率的准确性。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分