
STM32+TDA1387数字音频Wav,mp3音乐播放器
简介
STM32L431CBT6通过SPI读取TF卡WAV、MP3文件,I2S输出给TDA1387解码后NOS输出,保持原汁原味的音色
简介:STM32L431CBT6通过SPI读取TF卡WAV、MP3文件,I2S输出给TDA1387解码后NOS输出,保持原汁原味的音色开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
设计初衷是作为车载播放器取代点烟口蓝牙播放器的,采用MICRO USB口5V供电,实测平均耗电电流25mA,接上充电宝也可以作为家用或者移动播放器。3.5耳机输出电平Vrms只有0.9V,插耳机能听,但不推荐,得接耳放、功放或有源音箱使用。STM32L431CBT6通过SPI读取TF卡WAV、MP3文件,I2S输出给TDA1387解码后NOS输出,保持原汁原味的音色。汽车点烟口电源干扰较大,不过实际使用下来干扰几乎不可闻,非车内使用可以用充电头或充电宝更好。
固件实现:
读写TF卡采用Fatfs库,由于MCU的ROM有限,不能用中文字库,用了日文字库,以此来支持中文目录和歌曲名,当然有小部分中文字符不能识别,不能识别的就跳过不播放了。MP3解码采用HELIX库,原库支持MPEG-1 和 MPEG-2 标准中定义的所有16k~48k采样率,以及所有8k~ 320k比特率,但我这里做了限制,只播放双声道采样率44.1k和48k,太低的就不Hi-Fi了。WAV可以流畅播放16bit/44.1k~192k立体声歌曲,其中HC速度的TF卡只能支持最高96k,XC速度的TF卡支持192k。低速卡播放WAV会卡顿,只能流畅播放MP3文件。最大支持500首歌曲,更新500首歌曲信息大概需8秒。一首歌的完整路径长度不能超过64个中文,所以拷贝歌曲的时候,目录不要嵌套太深了。TF卡支持FAT,FAT32,exFat格式,因手头只有最大64G可以测试,理论上应该是支持更大的容量。虽然支持带电插拔卡,但是不推荐。
上电自动从上次断电时播放的最后一首自动开始,一直循环整个卡内歌曲。为了避免每次开机都扫描歌曲等待时间过长,当更新了卡内歌曲,上电时需要强制更新歌曲信息(参考下列说明操作),否则因保存的歌曲信息和卡内歌曲不匹配,则不能正常播放。
按键操作:
1.下一曲:短按1次
2.上一曲:快速短按2次
3. 停止:长按约1秒
4. 更新歌曲信息:插卡,按住按键不放,上电,直到LED间隔1秒闪烁一次就可以放开按键(如已经上电后需更新歌曲信息,按住按键不放再插卡,不推荐这么操作)
视频链接:https://www.bilibili.com/video/BV1Rr2DBJEFn/
LED指示:
1. 常亮:正常播放/卡正常但卡内无歌曲
2. 快闪:硬件错误
3. 慢闪:更新歌曲信息
4. 按键操作:按下时灭,放开点亮
资料包里包含高清原理图和固件,外壳的3D打印文件,还有pcb制版gerber文件
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程工程成员
知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论