GD32F3开发进阶教程 课件 ch13MP3实验_第1页
GD32F3开发进阶教程 课件 ch13MP3实验_第2页
GD32F3开发进阶教程 课件 ch13MP3实验_第3页
GD32F3开发进阶教程 课件 ch13MP3实验_第4页
GD32F3开发进阶教程 课件 ch13MP3实验_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MP3实验“第十三章《GD32F3开发进阶教程——基于GD32F303ZET6》01实验内容本章的主要内容为学习音频编码解码芯片VS1053b,包括该芯片的数据传输方式和相关寄存器,了解芯片的工作过程。最后基于GD32F3苹果派开发板设计一个MP3实验,将SD卡中的MP3文件数据发送至VS1053芯片,片对数据进行解码后通过喇叭播放MP3音频。实验内容02实验原理VS1053b芯片为多功能音频编码解码器,可实现OggVorbis、MP3、AAC、WMA和MID等音频格式的解码以及0ggVorbis、IMAADPCM等格式的编码,实现EarSpeake空间效果,具有可扩展外部DAC的IS接口,并且具有过零交差侦测和平滑的音量调整功能。VS1053b芯片音频电路原理图1.VS1053b芯片电路原理图GD32F3苹果派开发板上的VS1053b片电路原理图如图13-1所示。音频电路原理图VS1053b芯片部分引脚的名称和描述如表13-1所示。音频电路原理图2.耳机电路原理图耳机电路原理图如图13-2所示,耳机插座通过RIGHT和LEFT网络与VS1053b芯片相连以实现通过耳机进行放音的功能。音频电路原理图3.音频放大器电路原理图音频放大器电路原理图如图13-3所示。VS1053b芯片可以完成音频文件的编码和解码,将音频文件发送给VS1053b芯片即可解码为音频,反之,将音频发送给VS1053b芯片即可编码为音频文件,而文件的发送涉及微控制器与VS1053b芯片之间的数据传输。VS1053b芯片数据传输VS1053b芯片数据传输SCI部分寄存器的名称、地址和描述如表13-2所示。VS1053b芯片寄存器GPIO部分寄存器的描述如表13-3所示。0102读写寄存器:在读写寄存器之前,首先需要检测VS1053b芯片的DREQ引脚,等待该引脚为高电平后,将命令片选引脚XCS拉低即可开始传输命令。读写RAM:对VS1053芯片的控制实际上是通过控制SCI寄存器来完成的,读写RAM同样由SCI寄存器控制。VS1053b芯片工作过程03发送数据:VS1053b芯片的功能是完成数据的编码和解码,该芯片可将接收到的来自微控制器的音频数据进行解码,随后通过喇叭或耳机等设备播放音频。VS1053b芯片工作过程1.读写寄存器VS1053b芯片工作过程VS1053b芯片工作过程2.读写RAMVS1053b芯片工作过程VS1053b芯片工作过程3.发送数据VS1053b芯片工作过程4.patch加载4.patch加载VS10xx系列芯片具有patch(插件),用于修复芯片存在的bug或增加新的功能。patch是一段可以在VS10xx芯片上执行的代码,由VLSI官方提供,可在VLSI官网中下载。Patch通常有两种格式:一种采用16位无符号数组存储,采用游程编码(RLE)压缩算法,为经过压缩的格式。另一种直接采用两个8位数组进行存储,为未经过压缩的格式。这里推荐采用经过压缩的16位无符号存储格式的patch。VS1053b芯片工作过程03实验代码解析1.VS1053.h文件在VS1053.h文件的“宏定义”区,进行读写命令、芯片寄存器及SCI寄存器的宏定义。在“API函数声明”区,声明了多个API函数。VS1053文件对2.VS1053.c文件在VS1053.c文件的“枚举结构体”区,声明了关于片选的枚举EnumVSCSCtrl,该枚举中的营量可作为VSChipSelect函数的参数,完成对VS1053b芯片片选的控制。在“内部函数声明”区,声明了5个内部函数。在“内部函数实现”区,首先实现了VSChipSelect函数。在“API函数实现”区,首先实现nitVS1053函数。VS1053文件对0102MP3Player.h文件:在MP3Player.h文件的“API函数声明”区,声明了7个API函数。MP3Player.c文件:在MP3Playerc文件的“宏定义”区,定义了关于歌曲名最大长度的宏定义MAXSONG

NAMELEN为127,以及歌曲缓冲区大小的宏定义SONGBUFSIZE为1024x4。在“枚举结构体”区,声明了关于播放器状态机和MP3播放暂停的枚举。MP3Player文件对在IsMP3Type函数实现区后为GetCurrentSongName函数的实现代码。在“API函数实现”区,首先实现了InitMP3Player函数。在InitMP3Player函数实现区后为NextSong和PreviousSong函数的实现代码。在歌曲切换函数实现区后为LowVolume和LargeVolume函数的实现代码。MP3Player文件对在“API函数实现”区的轮询任务AudioTopTask函数中,调用了MP3轮询任务函数MP3Poll。AudioTop.c文件AudioTop.c文件由于需要通过KEY1控制喇叭开关,因此在ProcKeyOne.c文件的“包含头文件”区的最后,添加了代码#include"VS1053.h"。在“API函数实现”区的ProcKeyDownKey1函数中添加了如序清单13-27所示的代码,通过调用VSSpeakerSet函数实现控制喇叭开关。AudioTop.c文件AudioTop.c文件实验结果将SD卡插入开发板,下载程序并进行复位。可以观察到开发板上的LCD屏显示如图13-5所示的GUI界面。实验结果此时,串口助手打印信息如图13-6所示。实验结果当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论