你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2857|回复: 3

[STM32L4+] [Nucleo-L4R5ZI评测]ADC+TIME+DMA+FFT的使用

[复制链接]

4

主题

100

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-3-21
发表于 2018-3-15 22:21:56 | 显示全部楼层 |阅读模式
本帖最后由 mo-416898 于 2018-3-15 22:25 编辑

      前段时间参加STM32中文官网L4+的回答问题送版活动,成功地收到了一块Nucleo-L4R5ZI板。希望以后中文官网多多搞这样的活动,为我们广大的粉丝多送板。去年论坛也搞了很多活动,整个活动下来拿到两块板,一块Nucleo-F072,一块Nucleo-L011,还有两万多的积分没有兑换,哈哈哈。等攒到了三万分兑换带TFT屏的F429,现在已经被兑换完了,没有货,希望赶紧上货。
     回到我们的主角L4R5L4+系列是ST新发布的一个系列。应该是为了适应物联网和穿戴类的发展吧,主要是低功耗,同时又兼顾性能。带有优化的圆形显示器Chrom-GRC,还有TFT-LCD接口,DSI接口等等功能。图形显示方面功能很多,又有OCTOSPI接口,在处理图形显示数据方面非常方便。可惜Nucleo-L4R5本身并不显示屏。主频最大可以去到120MhzRAM640kROM2M,这个非常赞阿!!!可以随便放心大胆的用!之前有人评测过了Nucleo-L4R5的低功耗和其它一些基本的功能。这个板又没有带屏,思来想去还是评测FFT的性能怎么样吧。刚好前段时间刚刚大学时的DSP教材重新看了一遍,正好可以拿来试试手。
       这次评测使用TIME触发ADC进行定时采样, ADC采样到1024次的时候对采样结果进行1024个点的FFT。将FFT的结果通过串口发送到电脑,使用excel做成图形验证FFT的正确性。TIME的触发时钟频率为48Khz。ADC使用DMA进行数据传输。同时通过IO口的操作测量FFT所使用的时间。开始是想把FFT的结果通过串口发送到电脑,使用labview实时显示ADC采样结果的FFT的。算了一下时间,串口的速度太慢了,不能实时显示。FFT的计算处理如下面的截图
5.png
FFT input 数据的初始化                                                                                                        
1.png
FFT计算和打印
      为了验证FFT的正确性,使用sin函数生产一个200hz的正弦波数据,把这组数据作为FFT的输入。FFT数据的初始化,FFT数据为一个正弦波,频率为200HZ,采样平率为1000hz。FFT后的结果如下图
2.png
可以看到FFT后的结果和输入的信号相符合,在200hz处得到最大的幅值。这样验证了FFT的正确性。
      验证FFT的算法正确之后,用手机信号发生器播放一个5khz的正弦波,把这个正弦波输入到ADC(PA4)。ADC的采样频率使用48khz的采样率,进行FFT后打印出来。用excel处理后得到的频谱分布如下图
3.png
从频谱图可以看出,在5khz处得到了最大值,10kzh处有非常明显的谐波。谐波成分非常明显,可能是由于手机输出后受到线材或是电路的干扰导致。同时,频谱中还可以看到很大的直流分量。
      上面的这些功能都是从ST的官方库STM32Cube_FW_L4_V1.11.0移植过来的,工程直接使用了里面的模板工程。在这里不得不说ST的官方库做得非常不错,所以外设的使用例程都有。使用的时候只需要移植相关的部分到模板工程就可以了。库目录下Project文件夹里包含了L4和L4+系列的Nucleo板和Discovery板的例程工程文件。直接打开工程就可以直接在Nucleo板上跑起来验证,非常方便。ST的开发板都自带有stlink,无需额外的调试器,同时又可以当串口使用,这些功能都做得非常好阿。只要一个板加USB线就可以调试仿真了。
       测试FFT时间的消耗。STML4+最大可以到120Mhz,本次评测就是使用到了120Mhz。最后进行基4的1024点浮点复数FFT的时间消耗大概为1.840ms,进行基4的1024点定点(1.31模式)FFT的时间消耗大概为2.76ms,进行基4的1024点定点(1.15模式)FFT的时间消耗大概为1.16ms。这个速度好像要比F4系列的要慢一些,F429好像只用0.5ms就完成了。但是这个也是很快的了,毕竟L4+跑120Mhz,F429跑180Mhz。
4.png
总的来说DSP的性能还是相当不错的,推出后相信会有更多更好应用。     
附件是工程文件,IAR8.2版本的,下载下来rebuild后就可以用了。为了上传,删了很多没有用到的文件。如果恢复其它的文件,复制ST的官方库STM32Cube_FW_L4_V1.11.0下的Drivers文件夹和Middlewares文件夹到project目录下替换就可以恢复完整的官方库文件了。

project.rar

下载

1.97 MB, 下载次数: 104, 下载积分: ST金币 -1

IAR工程

<
回复

使用道具 举报

0

主题

5

回帖

0

蝴蝶豆

初级会员

最后登录
2019-4-26
发表于 2018-3-16 14:40:45 | 显示全部楼层
不错,牛
回复 支持 反对

使用道具 举报

1182

主题

3785

回帖

1

蝴蝶豆

论坛元老

最后登录
2020-3-17
发表于 2018-3-19 09:48:00 | 显示全部楼层
谢谢分享,等楼主发帖很久了  
已汇总到3月原创
https://www.stmcu.org.cn/module/forum/thread-615031-1-1.html
回复 支持 反对

使用道具 举报

0

主题

1

回帖

0

蝴蝶豆

新手上路

最后登录
2020-7-9
发表于 2020-2-18 13:50:28 | 显示全部楼层
牛!!!写的很厉害!!!
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版