录音机调试第二天

关于毕设的一些调试感悟系列

1.硬件平台的搭建

用的完全是正点原子的硬件平台-阿波罗(STM32H743),所以基本不用再额外调试硬件系统,只是程序调试上需要再花一些时间进行调整。

设计的硬件系统包括LCD屏的显示、麦克风模块和SD卡存储模块

暂时发现需要改进的地方包括以下几点:

(1)对于TFT屏的显示

(2)对于SD卡的文件管理系统的调整

(3)对于麦克风模块的工作模式的理解

2.软件系统的调试

软件系统包括的任务是硬件系统的中的驱动程序的编写和使用DSP库对采集的声音信号进行显示:高级一点的话,需要使用低通滤波器,对于高频噪声进行滤除。

1)FTFLCD屏-7寸 RGB TFTLCD

实现点阵显示

2)麦克风模块-WM8978

可以找到声音进入主控的接口部分,进行数据的保存,并实现FFT的数据输入

3)SD卡存储文件的管理

可以实现对存入的文件,进行访问,并进行播放

3.暂时的安排
1)读一读正点原子的开发资料,理解例程中的数据传递的流程

下面是两个开发板提供商的开源资料:

野火

原子

从上面的实验教程中挑选如下的五个实验进行应用性学习:

(1)音乐播放实验

​ 学习利用SAI使用I2S协议驱动wm8978

​ 通过DMA进行数据的传输:用SAI 的子模块A,其TX 是使用的DMA1 数据流 5 的通道87 来传输的;并且将DMA2 数据流3 设置为:双缓冲循环模式,外设和存储器宽度相同(16 位/32 位),并开启DMA 传输完成中断(方便填充数据)。给缓冲器填充数据需要在传输完成一次后,在中断中调用这个函数 sai_tx_callback();

wav_play_song函数,是播放 WAV的最终执行函数,该函数解析完 WAV文件后,设置 WM8978和 I2S的参数(采样率,位数等),并开启 DMA,然后不停填充数据,实现 WAV播放,该函数还进行了按键扫描控制,实现上下取切换和暂停 /播放等操作。该函数通过判断wavtransferend是否为 1来处理是否应该填充数据,而到底填充到哪个 buf saibuf1或 saibuf2则是通过 wavwitchbuf标志来确定的,当 wavwitchbuf=0时,说明 DMA正在使用 saibuf2,程序应该填充 saibuf1;当 wavwitchbuf=1时,说明 DMA正在使用 saibuf1,程序应该填充 saibuf2

下图是IIS的传输引脚定义

在这里插入图片描述

下图是双重缓存的执行过程

在这里插入图片描述

(2)录音机实验

(3)SD卡的存储实验

(4)DSP实验

(5)RGB TFT显示实验

​ 调用单片机的LCD屏和TFT屏的函数库的封装是否一致呢?

(6)DMA数据传输实验:理解双缓冲含义

对于数据传输的梳理如下:

首先声音信号经过麦克风模块,完成ADC转换(ADC转换过程),将采集的信号按照(转换后的数据存储过程)存储到SD卡中,进而完成音频信号的采集;对于音频信号的播放,主控首先从SD卡中读取(从SD卡中读取数据的过程)对应扇区的数据,然后对读取到的数据进行DAC转换(对读取到的数据进行DAC转换的过程),然后把转换后的电压值输送到麦克风集成模块中。

故而在阅读例程中需要解决两个问题:
(1)麦克风模组对于音频信号的采集方式

​ 内部的ADC的转换过程:

​ 内部的DAC的转换过程:

(2)SD在程序中对于数据的存储方式

​ 在SD卡中进行数据的读取:

​ 在SD卡中进行数据的写入:

2)可以在网上寻找STM中DSP模块的使用

后续的安排是,转换过程中,数据的输入方式和转换过程,前提是了解到上述采集模块对于数据的处理方式。

可以先尝试把例程中的幅度谱先调试出来,然后再考虑数据的流向,从而只需要更改数据的输入端就可以了。

操作如下,将F4的显示程序,直接搬到H7的平台上,进行平台的移植。

3)确定调试方案的步骤

目前有两个思路来解决这个FFT转换,思路一是借助SD卡作为数据转换的媒介,需要先完成ADC转换,然后把数据存储到SD卡中,然后调用DSP中的FFT函数,分别对采集的数据的进行处理,然后并且把数据存储到另一个扇区。思路二是直接在程序中定义一个数组,然后调用FFT对数据进行处理,完成后,把数据直接存储到SD卡中。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值