1679|11

85

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【HC32F448测评】+ADC采样+FFT分析 [复制链接]

 
 

第九篇: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上或者实时传输到上位机,上位机实时画线,这个要求更高,因为就类似于示波器了,要花更多的时间。

 

最新回复

要分开处理实时采集、通讯和FFT任务: 采集和通讯相对是“定时”完成的,但FFT是个有统计概念的相对非实时的任务,不可能一个点做FFT吧,所以可以放到主程序中而不需要中断处理,相对时间准确就可以。而且FFT仅需要1-5ms就能完成,不会造成任务累积和冲突. 这样可以保证实时任务的完成,就不会产生“冲突”。   详情 回复 发表于 2023-9-20 11:25
点赞(1) 关注
 
 

回复
举报

1669

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

同时开启定时器输出PWM波和FFT会死机,这个先开一个,慢慢增加,看看问题是哪个方面造成的

 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(高级)

板凳
 
火辣西米秀 发表于 2023-9-12 07:29 同时开启定时器输出PWM波和FFT会死机,这个先开一个,慢慢增加,看看问题是哪个方面造成的

主要现在没时间搞这个 下次有空再研究研究

 
 
 

回复

6841

帖子

11

TA的资源

版主

4
 
楼主很强呀,串口的话你把速率搞高点,应该没有什么压力吧。
 
 
 

回复

1463

帖子

0

TA的资源

五彩晶圆(初级)

5
 
dmzdmz666666 发表于 2023-9-12 14:13 主要现在没时间搞这个 下次有空再研究研究

为什么同时开启定时器输出PWM波和FFT会死机?

 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(高级)

6
 
lugl4313820 发表于 2023-9-14 17:04 楼主很强呀,串口的话你把速率搞高点,应该没有什么压力吧。

快了也会打断ADC采样 所以一般是采样好 再显示 跟示波器一样

 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(高级)

7
 
dmzdmz666666 发表于 2023-9-15 10:22 快了也会打断ADC采样 所以一般是采样好 再显示 跟示波器一样

不知道 还没有研究 

 

 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(中级)

8
 
可以下载个VOFA,能自己画图
 
 
 

回复

6841

帖子

11

TA的资源

版主

9
 
dmzdmz666666 发表于 2023-9-15 10:22 快了也会打断ADC采样 所以一般是采样好 再显示 跟示波器一样

如果这样的话,实时性会受影响吗?

 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(高级)

10
 
lugl4313820 发表于 2023-9-15 12:35 如果这样的话,实时性会受影响吗?

会有影响的 所以像示波器会有死区时间 这个时间就是不采样 只显示  所以只能做到死区时间越来越短 也就是波形刷新率提高

 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(高级)

11
 
学学学学学学学 发表于 2023-9-15 12:06 可以下载个VOFA,能自己画图

有空我去试试

 

 
 
 

回复

1027

帖子

0

TA的资源

纯净的硅(高级)

12
 

要分开处理实时采集、通讯和FFT任务:

采集和通讯相对是“定时”完成的,但FFT是个有统计概念的相对非实时的任务,不可能一个点做FFT吧,所以可以放到主程序中而不需要中断处理,相对时间准确就可以。而且FFT仅需要1-5ms就能完成,不会造成任务累积和冲突.

这样可以保证实时任务的完成,就不会产生“冲突”。

个人签名چوآن شـين
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表