矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 16501|回复: 35

我的WAV播放器

[复制链接]
发表于 2014-5-4 11:34:02 | 显示全部楼层 |阅读模式
我的WAV播放器
自己可以说是一个资深的、水平十分有限的真正音乐爱好者,尤其对古典音乐以及国内经典歌曲和乐曲十分喜爱,对于目前流行歌坛则比较陌生。凭借自己的自控专业,从80年代的单板机(现在好多人没见过和听说过)、8位单片机、PLC、到现在的DCS都开发过,因此动手制作WAV播放器的想法由来已久。虽说原先使用过单片机编程,对C语言也比较熟悉,但比较论坛中的各种方案,认为一般的单片机难以处理和传送WAV的庞大数据量。因此,选用了STM32F103RBT6为主控芯片、VS1053B作为解码芯片、LCD1602为显示器、SD卡(8G)。
为加快项目的进度,先采用模块拼接,在春节后开始动工,终于在“五一”前夕初步完成各项软件的调试。
下图为各个模块:

下图为各模块之间的接线表
02.JPG
各个模块组装后放入机箱中,接线比较乱。因第一阶段的工作主要是软件调试,因此未安装DA解码板(采用与VS1053B的I2S接口匹配的PCM1793解码器和运放组成)。
面板按上、下、左、右、中布置了5个按键,这5个按键的功能在不同的界面上是不同的。
03.JPG
下图为VS1053B的测试画面。
04.JPG
各项功能测试完成后,表明模块功能完好。RAM测试结果为“0x83ff”,确定了解码芯片确实是VS1053B。为减少程序的字节数,测试完成后,将今后编程不再需要的测试函数和定义全部删除(当然要做好备份)。
进行完整的程序设计……,最终完成。
下图为开机画面。
05.JPG
按下中间按键后,进入“菜单”界面,有3个选项:
1、next:进入下一级画面;
2、音效调整:默认关闭;
3、高低音调整:默认高低音增益均为最大值。
采用按动左按键,闪烁光标在3个选项上循环移动。按下中间按键后,选定光标所在的选项。
采用默认值,可直接进入下一级画面。
06.JPG
下图为“音效调整”画面。共有“关闭、最小、中等和最大”4个选项,通过左右按键,各个选项分别显示,按下中间按键后进行确认,回到“菜单”界面。
07.JPG
下图为“音调调整”画面。通过按动左右键,闪烁光标在“低音”和“高音”之间移动,按上下键可以改变光标坐在选项的数值,按下中间按键后进行确认,回到“菜单”界面。
08.JPG
在“菜单”界面中,按下中间按键后进入到“选曲”界面。显示SD卡的根目录中存放的可播放的WAN文件总数。在设计上,最大数目为99首。通过上下按键可快速(±10)循环选曲,左右按键可逐个(±1)循环选曲,按下中间按键后进行确认,进入到“播放”界面
09.JPG
下图为“播放”界面。
1、界面第一行分别显示的是:正在播放的曲号、播放的剩余时间以及当前的音量值。在播放时按动上下键可改变音量(音量值为0~30),按动左右按键可进行前后换曲。
2、界面第二行分别显示“传输速率”和“采样频率”。因1602的显示量有限,程序设计时这些数据均使用整数定义,显示中未包含小数。如下图中的“采样频率”实际值应为“44.1kHz”。
10.JPG
播放时,从VS1053B模块的耳机插孔传出的声音十分流畅,没有卡顿现象。主要在播放程序上开辟了4096字节的缓冲区。首先从SD卡中一次读出4096个字节的数据,存放在缓冲区中;再由缓冲区向VS1053B传送数据,按照要求每次传送32个字节。详细指令网上都有。注意:SPI的读写操作一定要采用寄存器指令方式进行,生成的代码量小,可加快程序的实时性;如果采用库函数指令方式操作,由于代码量较大,非常容易出现卡顿现象。
在程序设计中,为方便编写,对大部分实时性要求不高的代码,应采用库函数指令。
在播放当中,按下中间按键时,退出播放。在画面上闪烁的“>”的字符,提示关闭电源。

主要功能就介绍到这里。项目中使用程序大部分借鉴网上,自己主要在菜单和画面显示上进行了程序设计。
说实在的,第一次使用STM32,程序调试中出现了不少问题,逐一解决,终于完成全部程序的编写和调试。
下一步,自己设计电路,将各个模块(包含DA和功放)设计在一块线路板上,电源部分为±15V,最终实现用高保真耳机欣赏无损WAV音乐。

评分

2

查看全部评分

     
发表于 2014-5-4 11:44:40 | 显示全部楼层
看起来做的挺好,不会做的在此学习了。
回复 支持 反对

使用道具 举报

发表于 2014-5-4 11:52:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 12:16:41 | 显示全部楼层
做得很漂亮,学习了
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 13:28:58 | 显示全部楼层
为了音质,疯狂的行为值得学习
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 14:08:27 | 显示全部楼层
都数字化了,一般人不懂,
回复 支持 反对

使用道具 举报

发表于 2014-5-4 14:37:12 | 显示全部楼层
看不懂,但是很仰望
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 18:59:05 | 显示全部楼层
我也想做一个,可以教教我吗?
我不懂VS1053B,貌似它是MP3常用的硬解码芯片吧?能给我讲讲优点吗?
我想做的是纯WAV播放器,解码PCM波形的文件就可以了,用ARM和CPLD的结构……
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 20:46:40 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 21:06:35 | 显示全部楼层
支持一个,如果能支持DSD播放就得了.
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 21:08:44 | 显示全部楼层
楼主有着深厚的编程功底和超强的动手能力,WAV无损音乐格式的音乐信息储存量非常大,单曲的容量一般在几十M到 一个G不等,就好像我有一首陈百强的《偏偏喜欢你》,容量达到了600多个M!一首歌已经达到了一张CD碟的容量了。。。有如此庞大的容量,所以细节还原能力无容置疑的,所以一台优质的播放装置显得尤为重要。。。给楼主几个建议:1、储存介质方面建议做到多元化,既可以使用SD卡、也可以使用硬盘,当然USB接口是必不可少的;2、优化一下布局,走线尽量整齐美观;3、功能方面再做一些改进,如增加遥控器功能等。
以上几点建议,有感而发,说得不对请见谅。
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 21:22:40 | 显示全部楼层
好用就行   有的时候要追求完美性价比
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 21:30:29 来自手机 | 显示全部楼层
高端大气上档次,低调奢华有内涵...
时尚动感小清新,威武霸气又美丽...
回复 支持 反对

使用道具 举报

     
发表于 2014-5-4 22:20:24 | 显示全部楼层
楼主高人啊
回复 支持 反对

使用道具 举报

发表于 2014-5-4 22:50:14 | 显示全部楼层
高人啊,请问有没有制作硬盘播放器的资料或者成熟的套件出售?本人菜鸟,希望有一台播放器,可以直接插个5寸硬盘进去,用机器播放盘里的WAV,APE,FLAC等格式音乐,另外还有遥控。本人不是很烧,而且不打算购置CD机。虽然看到有现成的机器卖,但总感觉不如DIY一台更能满足需要
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-27 00:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表