注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
dmzdmz666666的个人空间 https://home.eeworld.com.cn/space-uid-1103352.html [收藏] [复制] [分享] [RSS]
日志

【HC32F448测评】+ADC采样+FFT分析

热度 1已有 672 次阅读2023-9-11 21:19 |个人分类:嵌入式

第九篇:ADC采样+FFT分析

接上一篇的配置,上一篇已经配置好DSP库了,接下来测试利用ADC采集模拟数据进行傅里叶分析。

首先参考例程对ADC进行配置,ADC的参数相对简单,需要注意的是它的时钟,它有两个时钟,包含转换时钟PCLK2,数字接口时钟PCLK4。转换时钟PCLK2有三个时钟源,包括系统时钟、PLLHQ、PLLHR,如果采用系统时钟,最高主频为50MHz,如果采用PLLHQ、PLLHR可以通过PLL倍频到60MHz,PCLK4与PCLK2一样,也有三个时钟源,这里为了方便,均采用系统时钟,PCLK2=50MHz,PCLK4=100MHz

 

ADC有好几种扫描模式,单次扫描、连续扫描、缓冲扫描等,这里我们选择连续扫描模式:stcAdcInit.u16ScanMode=ADC_MD_SEQA_CONT;

同时触发源选择软件触发:

ADC_Start(CM_ADC1);

然后循环运行以下程序:查询状态位,然后清零,读取数据。

while(ADC_GetStatus(ADC_UNIT, ADC_EOC_FLAG) != SET);

ADC_ClearStatus(ADC_UNIT, ADC_EOC_FLAG);

ADC_DATA[ADCnum]=ADC_UNIT->DR10;

因为目前做不到实时分析,所以只能当数据满1024时,再进行FFT分析。输入一个1KHz方波,下图是ADC测得的波形

 

然后对该数据进行FFT分析,取前64个数据进行作图,可以发现有多个频率的信号,除了1KHz的基波,还有3KHz的3次谐波,5KHz的5次谐波等,这符合方波的特性:由多个频率的正弦波叠加而成。

 

下图是虚拟示波器测出来的波形及FFT分析的结果,基本一致。

 

 

上述是我目前能做到的效果,由于还没有解决下面提到的问题,还没办法实现更加实用的FFT效果:

1、没有通过DMA传输ADC数据的问题,因为没有解决相关问题,用DMA还不太熟,无法一次性转移如1024个ADC数据。

2、开启ADC的转换完成中断(ADC_INT_EOCA)后发现会卡死,会导致开发板上面的按键无法使用,主要原因可能是中断冲突,HC32的中断是很强大,但理解起来对我而言还是很吃力的,后续有机会要去研究一下。

3、发现同时开启定时器输出PWM波和FFT会死机,不知道为什么,还有一点,感觉FFT不太稳定,跟其他多个外设一起开会有问题,有机会也要研究一下。

4、因为波形都是通过串口输出数据,然后Excel画图,要更加直观的话需要显示在LCD上或者实时传输到上位机,上位机实时画线,这个要求更高,因为就类似于示波器了,要花更多的时间。

 

本文来自论坛,点击查看完整帖子内容。

发表评论 评论 (2 个评论)
回复 武力戡乱 2023-9-12 13:55
hc32,这不是华大的单片机吗!
回复 dmzdmz666666 2023-9-12 14:13
是的 现在叫小华半导体 这是华大半导体的MCU事业部

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章