Board logo

标题: SD卡WAV音乐播放器 [打印本页]

作者: yuchengze    时间: 2017-6-20 22:13     标题: SD卡WAV音乐播放器

 继上月底STM32F4上的SDIO模块读取SD卡搞通了http://bbs.eeworld.com.cn/thread-507474-1-1.html 以后,终于实现了一个简单的FAT32文件系统,然后读取卡上的WAV文件,从I2S输出信号给我的CS4398 DAC来播放音乐。尽管还简陋了不少,终于我自己的第一个硬件音乐播放器(摆脱电脑)诞生了。精力有限,能简化的先简化了,所以目前它的局限有:(1) 只支持44.1kHz/16-bit 的CD格式WAV音频文件(无压缩格式)播放
(2) 只支持格式化为FAT32文件系统的SD、SDHC卡
(3) 不能在一个文件中进行快进、倒带索引,只能从每个文件开始连续播放。只有播放/暂停、下一首、上一首、停止的按钮控制。
(4)没有屏幕显示,调试信息只通过UART输出,文件名字符不能输出汉字等。
(5)只检索根目录下的.wav文件,上限255个;不检索子目录。

  先上线路图:这是我的STM32F411开发板


  MCU外围不多,除了必要的电源部分,就是SD卡座、USB座、各种接口的插针,以及少数按钮和LED了。
布线还是我自己的风格,Gerber文件附在后面,可以用ViewMate、CAM350等软件来看。




  这个开发板就是按照做音乐播放器来设计的,当然DIY玩的不是做产品,就没考虑外观、用户界面那些了。MCU选了STM32F411RET6 的原因有:(1)M4F内核,又有128kB SRAM,做软解MP3、FLAC资源充足。(2)便宜,F407价格相似计算能力更强但是封装尺寸大一档。(3)SDIO, USB OTG FS都有。(4) I2S支持外部clock输入,也就是I2S做master但是和DAC的MCLK是绝对同步的。

  目前的主程序框架是很直接的,在必要的初始化之后就访问SD卡,读取根目录检索WAV文件。找到的可播放文件的信息建立一个playlist,然后就在 idle_process() 和 play_file() 两个函数之间切换,对应停止和播放两个状态。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0