- 积分
- 518
- 在线时间
- 729 小时
- 最后登录
- 2019-8-28
- 阅读权限
- 50
- 精华
- 0
- UID
- 712589
- 帖子
- 505
- 精华
- 0
- 经验
- 518 点
- 金钱
- 495 ¥
- 注册时间
- 2014-6-12
|
潜水很久,看大神们的神作,心向往之。
突然就想自己也做一个,于是从去年5月份开始,走上了自己做一个播放器的坎坷道路。
最初做的是一个数字转盘,用 WM8805 作为 SPDIF 输出,因为之前一直用 PC 播放,有个 DAC 解码器,可以直接用。
存储采用 TF 卡,最容易获得。
选择 STM32 单片机方案,因为自己之前接触过 STM32,做过一个不成功的小器件。
历时 3 个月,用 STM32F407、WM8805 实现了 TF 卡播放 WAV、APE、FLAC,其中 WAV 最高支持 24bit/192K 播放。
接上 DAC 听了一段时间,音质已经非常不错,但问题也逐渐出来了:歌曲切换时有啪的一声,开机有啪的一声,关机有啪的一声。
什么情况?
泡论坛,学习了解更多的音源、DAC 等技术原理,意识到 DAC、转盘及所有相关组件之间,存在相互依赖相互协同配合的问题;另外,不同的DAC 设计实现的细节处理也会影响到最终的音乐呈现。
通过一些技术手段,基本消除了相同采样率音乐切换时的爆音,但是不同采样率切换时,爆音依旧。
本来好好地听着悦耳的声音,突然啪的一声,立马性味索然。
看样子,要消除这恼人的爆音问题,需要改头换面,需要彻底控制整个数字播放、数字模拟转换以及转换为模拟之后的所有相关环节。
一不做二不休,直接做一个播放器,I2S - DAC - LPF - RCA/耳机输出 全过程控制,哪里有爆音,就解决哪里的问题。
经过 9 个月的慢工细磨,终于完成了一个基本满意的播放器。
在整个 DIY 的过程中,不仅解决了之前想解决的问题,还逐渐实现和完善了之前没有想过的功能:DSD 格式直接解码播放:
到今天为止,基本达到之前的期望:
开机无噪音;
切歌无噪音;
直接关电源有轻微噪音;
WAV支持 24bit/192K;
FLAC支持 24bit/192K;
APE最高支持 24bit/96K;
DSF支持 DSD64、DSD128;
DIFF支持 DSD64、DSD128;
DSD-ISO支持 DSD64、DSD128;
播放器关键部件:STM32F407、CS4398。
结果还行,过程漫长,从开始到现在,从数字转盘到播放器,从 PCM 到 DSD,碰到很多问题,也解决了很多问题。
先从数字转盘说起吧。 |
评分
-
查看全部评分
|