FPGA实现SD卡音乐播放

本文介绍如何结合SD卡数据读写与WM8731语音录放功能,利用FPGA制作音乐播放器。读者将学会准备合适的.wav格式音频文件,并通过特定步骤将这些文件放置于SD卡中以供播放器读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1

   

前面我们已经学习了 SD 卡的数据读写和 WM8731 语音录放的功能, 那这章我们把这两部分结合起来做一个音乐播放器吧! 本实验把存储在 SD 卡的音频文件(.wav)读取后传输到WM8731 中进行播放, 在学习 FPGA 之余, 再用自己设计的 FPGA 音乐播放器听听美妙的音乐,来放松放松自己!


2

用户需要准备一张 micro SD 卡(SD HC), 另外我们需要往这个 SD卡里存入几首我们想听的 wav 格式的音乐。

1.wav 音乐格式

注意这里的.wav 音乐文件格式需要为 16 位,采样频率为 48kHz 的,这跟 WM8731 的寄存器设置有关。关于音乐文件,用户可以从网上下载 wav 格式的音乐, 再通过软件转化成 16 位,采样频率为 48Khz 格式的 wav 文件。

2. SD 卡音乐存放

因为跟我们开发板配套使用的是 Micro SD 卡, 我们的电脑没有这种专门的读写 Micro SD 卡的接口,但不要紧,现在 Micro SD 转 USB 的读卡器到处都是。以下为我们做实验使用的转 USB Micro SD 读卡器。

电脑插入 SD 卡之后首先格式化一下 SD 卡, 这里选择文件系统为 FAT32(默认) , 分配单元大小设置为 32KB。


格式化图片.png

格式化完成后我们把这两首歌拷贝到 SD 卡的根目录, 这里向 SD 卡的根目录存放两首音乐文件后如下:


image.png


我们再用 winhex 工具来查看一下这两首歌曲在 SD 卡的 Sec 地址, 在 winhex 里选择菜单 tool->open disk, 再选择 逻辑卷/分区 下的 RM1 SD 卡。


image.png


找到 SD 卡根目录下的两个音乐文件并记录这两文件在 SD 卡里的扇区地址,这个地址就是我们在下面 verilog 程序里编写读 SD 卡程序的时候的起始 Sec 地址。


image.png


在 Winhex 窗口我们可以看到 SD 卡的根目录地址为 32768, 歌曲“孙楠-I Believe.wav”在 SD 卡的 SEC 偏移地址为 117032,歌曲“金玟岐-岁月神偷.wav”在 SD 卡的 SEC 偏移地址为 32800。这样歌曲“大海.wav”在 SD 卡的绝对地址 149800(32768+117032) 。我们的程序只要从 SD 的 SEC 地址149800 开始读数据就可以了。


注意: SD卡格式化的时候选择不同的分配单元大小,音乐文件在SD卡的地址也会不同。在WINHEX显示文件的地址有时显示的就是文件在SD卡的绝对地址,不是根目录的偏移地址,这样的话计算的时候就不需要再加上SD卡的根目录地址了。



评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值