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。

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

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

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

在 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卡的根目录地址了。

FPGA实现SD卡音乐播放相关推荐

  1. 基于FPGA的SD卡音乐播放器之WM8731篇

    基于FPGA的SD卡音乐播放器之WM8731篇 目录 前言 一.I2C驱动模块 二.WM8731寄存器配置模块 三.WM8731时钟生成模块 四.音频发送模块 总结 前言 这个题目是我之前7月初做的一 ...

  2. 基于FPGA的SD卡音乐播放器之完结篇

    基于FPGA的SD卡音乐播放器之完结篇 目录 前言 一.WAV格式 二.FIFO模块 三.音频-SD卡交互模块 四.锁相环模块 五.按键去抖模块 六.按键控制模块 总结 前言 前面已经介绍了WM873 ...

  3. html音频从10秒播放至30秒,基于Arduino制作SD卡音乐播放器

    一.项目介绍 前面用ATtiny85制作SD卡音乐播放器,本次主要利用Arduino UNO 和SD卡制作音乐播放器.这个播放器不需要添加多余的模块,只需要SD读卡器和Arduino UNO开发板就可 ...

  4. 【紫光同创国产FPGA教程】【第十二章】SD卡音乐播放例程

    原创声明: 本原创教程由芯驿电子科技(上海)有限公司(ALINX)创作,版权归本公司所有,如需转载,需授权并注明出处(http://www.alinx.com). 适用于板卡型号: PGL22G/PG ...

  5. Android studio 读取sd卡mp3 播放音乐

    第一步布局文件<ListViewandroid:id="@+id/lv"android:layout_width="409dp"android:layou ...

  6. android音乐播放器sd,Android音乐播放器(2)从SD卡中读取音乐

    首先提一下我的UI设计,对于主页面,用到了侧滑效果,这样在一个页面上可以有更多按钮而不显得拥挤,其实也就是我的另一篇博客中(http://blog.csdn.net/ye_yun_lin/articl ...

  7. 学习笔记——基于FPGA的SD卡学习(1)

    SD卡介绍 SD卡( Secure Digital Card),即安全数字卡 ,具有两个突出的优点 更高的安全性和更快的读写速度 . SD卡分类   SD卡从存储容量上分为3个级别,分别为SD卡.SD ...

  8. 基于FPGA的SD卡的数据读写实现(SD NAND FLASH)

    文章目录 1.存储芯片分类 2.NOR Flash 与 NAND Flash的区别 3.什么是SD卡? 4.什么是SD NAND? 5.SD NAND的控制时序 6.FPGA实现SD NAND读写 6 ...

  9. FPGA之SD卡读写操作

    (呕心沥血,写了接近三个小时.我觉得如果耐心看的话,真的会有所帮助哦哈哈哈.看在博主这么kindhearted的份上,点个赞吧!!!!) 学到后面发现例程文件越来越多,代码越来越恶心了.SD卡,I2C ...

最新文章

  1. 生产环境项目问题记录系列(一):一次循环数据库拖垮服务器问题
  2. 微信小程序开发登录界面mysql_微信小程序 欢迎界面开发的实例详解
  3. 工作以后如何有效学习
  4. noip 2017棋盘
  5. mysql倍增表的内容,mysql - DATEDIFF不会在触发器内倍增 - SO中文参考 - www.soinside.com...
  6. boost::geometry::wkt用法的测试程序
  7. db2 空值转换函数_Hive常见函数的使用
  8. Springboot 自定义Tomcat默认Servlet 资源路径
  9. 联合概率分布的学习笔记
  10. 佳能80d有人脸识别吗_2020单反/微单相机推荐,单反和微单(无反)选购攻略,佳能、尼康、索尼、富士、松下相机...
  11. 干货||Selenium自动化测试网页
  12. 对2016年android就业的一些看法
  13. Java中==和equals()的区别
  14. 易买网商城管理系统MySQL+JSP
  15. atmega168p与328p_atmega328P 写入 Boot Loader的那点事 之 互相伤害
  16. 再见了, 达叔!我用Python回顾一代喜剧大师203部作品,太经典了!
  17. 趋势 |「酸性设计」到底有多酷?
  18. Friendship 友谊--我最宝贵的财富
  19. 《孙悟空大战白骨精》小游戏
  20. 写在2015的尾巴上

热门文章

  1. Keil5安装和使用小记
  2. 负载均衡技术之负载均衡器简介
  3. Intel SGX开发者参考书(四)—— Enclave开发基础(三)
  4. 人力资源数据分析师前景_人力资源数据分析师——大数据下的精英岗位
  5. 国产直流马达驱动芯片SS6216的功能参数以及应用
  6. Java以逗号分割字符串
  7. 码分多址matlab代码,基于matlab的码分多址系统仿真
  8. 树莓派控制16路PWM输出的PCA9685模块
  9. 方差分析 球形检验_spss球形检验.PDF
  10. Required request body is missing: public错误