DigiKey“智造万物,快乐不停”创意大赛】完成贴-基于STM32H7B3I的傅里叶频谱仪
[复制链接]
基于STM32H7B3I的傅里叶频谱仪
作者:wenyangzeng
项目使用STM32H7B3I-DK开发板作为基础,利用STM32H7B3的12位DAC作为信号发生器,产生250HZ到3KHZ的正弦波测试信号,供STM32H7B3I的16位ADC模数转换,结合STM32H7B3I浮点运算及ST的DSP库进行傅里叶运算,并将运算结果以图形方式在TFT液晶显示屏上显示。
1、DAC
本项目利用STM32H7B3I具有的12位DAC功能,产生正弦波信号,作为ADC的信号源。DAC1采用DMA数据传输模式,由TIM6触发。
2、ADC
STM32H7B3I具有强大的8位、10位、12位、16位的差分或单端ADC功能,本项目使用了其单端16位ADC,并以DMA方式进行数据传输。
- DSP
STM32H7B3I的浮点运算单元参与DSP浮点运算,ST官方的DSP库作为运算源代码添加进项目中。
- 代码框架
利用ST官方演示代码\STM32Cube_FW_H7_V1.8.0\Projects\STM32H7B3I-DK\Applications\STemWin\STemWin_HelloWorld作为基础框架,修改添加DAC、ADC、DSP功能模块,显示模块就直接利用STemWin内挂的TFT-LCD显示模块,大大节省了开发时间,减轻了开发难度。
- 信号连接
连接STM32H7B3I-DK板的CN20的1和3脚,即可完成DAC到ADC的信号连接。
三、各部分功能说明
本文是本次大赛分别发贴的综合
1、DAC:STM32H73B 的DAC可以产生各种波形的信号,本贴使用DMA传输模式DAC1来产生正弦波信号,由TIM6触发DMA。
DigiKey“智造万物,快乐不停”创意大赛】DAC-DMA - DigiKey得捷技术专区 - 电子工程世界-论坛 (eeworld.com.cn)
2、ADC:STM32H73B 有2个ADC,功能非常强大。可以运行在差分模式或单端模式。可以设置16、14、12、10或8位的转换分辨率。本次评测就使用ADC1的对DAC产生的正弦波信号进行模数转换,以DMA方式数据传输。
【DigiKey“智造万物,快乐不停”创意大赛】ADC-DMA - DigiKey得捷技术专区 - 电子工程世界-论坛 (eeworld.com.cn)
3、DSP:要实现FFT运算,需要使用ST的浮点运算单元,添加ST的DSP相关文件和设置
DigiKey“智造万物,快乐不停”创意大赛】DSP - DigiKey得捷技术专区 - 电子工程世界-论坛 (eeworld.com.cn)
https://download.eeworld.com.cn/detail/wenyangzeng/630309
为确保顺利编译,请解压缩到:\STM32Cube_FW_H7_V1.8.0\Projects\STM32H7B3I-DK\Applications\STemWin的文件夹中。
STM32H7B3I-DK
六、项目总结
通过本次大赛的参赛过程,深切感受到STM32H7B3I的强大功能,它的280MHZ系统时钟频率为进行浮点运算提供了快速有效的浮点运算数据处理。DAC和ADC采用DMA大大提高了数据传输的效率。STM32 Cube MX为我们提供了高效的编程环境。谢谢大赛提供这次难得的锻炼机会和平台。
word文档压缩包
基于STM32H7B3I的FFT频谱仪.7z
(3.58 MB, 下载次数: 3)
|