本帖最后由 mo-416898 于 2018-3-15 22:25 编辑 前段时间参加STM32中文官网L4+的回答问题送版活动,成功地收到了一块Nucleo-L4R5ZI板。希望以后中文官网多多搞这样的活动,为我们广大的粉丝多送板。去年论坛也搞了很多活动,整个活动下来拿到两块板,一块Nucleo-F072,一块Nucleo-L011,还有两万多的积分没有兑换,哈哈哈。等攒到了三万分兑换带TFT屏的F429,现在已经被兑换完了,没有货,希望赶紧上货。 回到我们的主角L4R5,L4+系列是ST新发布的一个系列。应该是为了适应物联网和穿戴类的发展吧,主要是低功耗,同时又兼顾性能。带有优化的圆形显示器Chrom-GRC,还有TFT-LCD接口,DSI接口等等功能。图形显示方面功能很多,又有OCTOSPI接口,在处理图形显示数据方面非常方便。可惜Nucleo-L4R5本身并不显示屏。主频最大可以去到120Mhz,RAM有640k,ROM有2M,这个非常赞阿!!!可以随便放心大胆的用!之前有人评测过了Nucleo-L4R5的低功耗和其它一些基本的功能。这个板又没有带屏,思来想去还是评测FFT的性能怎么样吧。刚好前段时间刚刚大学时的DSP教材重新看了一遍,正好可以拿来试试手。 这次评测使用TIME触发ADC进行定时采样, ADC采样到1024次的时候对采样结果进行1024个点的FFT。将FFT的结果通过串口发送到电脑,使用excel做成图形验证FFT的正确性。TIME的触发时钟频率为48Khz。ADC使用DMA进行数据传输。同时通过IO口的操作测量FFT所使用的时间。开始是想把FFT的结果通过串口发送到电脑,使用labview实时显示ADC采样结果的FFT的。算了一下时间,串口的速度太慢了,不能实时显示。FFT的计算处理如下面的截图 FFT input 数据的初始化 FFT计算和打印 为了验证FFT的正确性,使用sin函数生产一个200hz的正弦波数据,把这组数据作为FFT的输入。FFT数据的初始化,FFT数据为一个正弦波,频率为200HZ,采样平率为1000hz。FFT后的结果如下图 可以看到FFT后的结果和输入的信号相符合,在200hz处得到最大的幅值。这样验证了FFT的正确性。 验证FFT的算法正确之后,用手机信号发生器播放一个5khz的正弦波,把这个正弦波输入到ADC(PA4)。ADC的采样频率使用48khz的采样率,进行FFT后打印出来。用excel处理后得到的频谱分布如下图 从频谱图可以看出,在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。 附件是工程文件,IAR8.2版本的,下载下来rebuild后就可以用了。为了上传,删了很多没有用到的文件。如果恢复其它的文件,复制ST的官方库STM32Cube_FW_L4_V1.11.0下的Drivers文件夹和Middlewares文件夹到project目录下替换就可以恢复完整的官方库文件了。 |
project.rar
下载1.97 MB, 下载次数: 127, 下载积分: ST金币 -1
IARå·¥ç¨
已汇总到3月原创
https://www.stmcu.org.cn/module/forum/thread-615031-1-1.html