搜索
bottom↓
回复: 97

【原创开源】班门弄斧,我的便携WAV播放器,希望大家支持

  [复制链接]

出0入21汤圆

发表于 2013-10-16 10:15:23 | 显示全部楼层 |阅读模式
本帖最后由 kunnsd 于 2013-11-14 11:23 编辑

写在开始:
这个播放器是我历时三年,断断续续做的,当时也承诺过阿莫要开源的,说实话,这个播放器的功能有限,功耗还比较大,只是音质还不错,我知道在论坛有很多音响方面的高手,所以我的标题就说了是班门弄斧,还请高手们留下建议与激励,讽刺与谩骂就不要留下了,之所以选在我任版主的板块开源,就是方便我的管理,音响类的东西,很容易骂声一片,虽是小人行径,还请大家见谅!
作品介绍:
这个播放器从2010年开始断断续续的已经做了3年了,每次都是只有在假期才能进行一点点改进,这个PCB是今年寒假就做好了,当时只是简单的硬件测试就撂下了,这个暑假开始完善
MCU使用nios ii,本来考虑过STM32,但是为了得到更高的IIS信号质量所以用FPGA做,在FPGA里做了硬件IIS模块,并且开辟了48bit 4k的FIFO进行缓冲,以保证信号质量,
DAC使用常见的WM8740,LPF用了两片OPA2604,耳机放大使用了TPA6120,电源部分FPGA部分是TPS63001+TPS76301,模拟部分是TPS61087升压,TPS63700负压转换,
LT1962正线性稳压,LT1964负线性稳压,TPS76301给WM8740的模拟部分。LPF和耳机放大使用了±8V的供电电压,所以整机耗电惊人,单节锂电供电,电流消耗大概340mA,
使用的3700mAh的电池也就10个小时,使用MAX1926为电池充电,充电电压比较宽泛,达到了5~12V,充电电流800mA。
MCLK时钟使用双时钟,24.576MHz和22.5792MHz,可以支持44.1kHz 16bit至96kHz 24bit 的WAV文件。
移植了FATFS,支持中文长文件名,准备下一次做板是加上录音功能,也支持44.1kHz 16bit至96kHz 24bit,实现当年的想法:
http://www.amobbs.com/forum.php? ... ighlight=sony%2Bm10
以上是抄我在三文鱼板块发的帖子的内容,就算是简单介绍了。

显示使用了尺寸为1.77寸的彩色OLED,分辨率为160×128。在该播放器中把它当单色来使用,就是黑底白字,非常漂亮,只有在显示开机画面时才能看到是彩屏。
显示的字宽度是不同的,这样可以有效利用分辨率不高的显示器。


照片:






开机画面:




原理图:

PCB:








对于SD卡的访问,使用SPI模式,大家都知道SD卡使用SPI模式是初始化要用低速率的时钟几百KHz,初始化完成后使用高速率的时钟(最大25MHz)以实现高速读取,对于一般的单片机来说只是设置一下SPI时钟控制寄存器而已,但是愚蠢的NIOS II处理器的SPI时钟速率是固定的,不能通过设置寄存器来改变,所以就在NIOS II的CPU里做了两个SPI接口,一个低速的100KHz,用于SD卡的初始化,另一个25MHz高速的,用于SD卡的读取。
因为使用了FATFS R0.09a,所以现在使用SPI读取SD卡只能实现96kHz 24bit WAV文件的播放,不使用文件系统则可以播放192kHz 24bit的文件,但是支持192kHz的意义不大,我找到的唯一一个192kHz 24bit的文件就是那个四百多兆的《加州旅馆》,而96k 24bit得出支持还是很有必要的,资源和比较多。
可以支持32G的SDHC卡,存储容量是没有问题的,现在SANDISK的32G C10的卡在京东上也不过就130块,我手头有2G,4G,8G,16G,32G的卡,都测试过,没有问题,品牌有金士顿,SANDISK,SONY和NOKIA手机带的不知品牌但标着NOKIA的2G TF卡戴套。

时钟使用双时钟,时钟速率的选择是根据DAC的手册提供的时钟表确定的,只是22.5782MHz的晶振不是很好买。


我觉得这个播放器如果用STM32F407+FPGA/CPLD的话应该会更好些,F407的SDIO口应该更快,没有试过,F103的SDIO用过,不稳定,不知407会不会改进。用FPGA/CPLD做时钟和IIS和其他的一些数字音频接口,这样的话应该功耗会低一些。

DAC使用大家熟悉的WM8740,这个DAC指标比较高而且价格低廉,容易买到,LPF使用WM8740数据手册中推荐的线路,耳放也是TPA6120数据手册的推荐线路,所以电路部分很简单。

播放功能很简单,支持文件夹播放,单曲循环,全部循环和顺序播放,所以可以将一张专辑建一个文件夹。




编辑中……

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入21汤圆

 楼主| 发表于 2013-10-16 10:15:42 | 显示全部楼层
站位                                   

出0入21汤圆

 楼主| 发表于 2013-10-16 10:16:04 | 显示全部楼层
站位                              

出0入21汤圆

 楼主| 发表于 2013-10-16 16:16:15 | 显示全部楼层
yuhang 发表于 2013-10-16 14:33
MCU为什么不用M4呢?能省不少事吧 USB的什么都全

刚开始弄这个的时候,M4还没出来呢

出0入21汤圆

 楼主| 发表于 2013-10-16 16:18:35 | 显示全部楼层
bulejeans 发表于 2013-10-16 13:34
为什么fpga的IIS信号质量会更好呢

使用独立的时钟系统,时钟不经过PLL,而且IIS输出开辟了4k的fifo,没有一般MCU的中断问题,数据绝不断流

出0入21汤圆

 楼主| 发表于 2014-8-29 17:07:14 | 显示全部楼层
david2002guo 发表于 2014-8-27 17:14
首先对楼主的手艺赞一下,
请问楼主48bit 4k的FIFO进行缓冲,对于不同的IIS格式都能缓冲吗? 16bit和24bit ...

这个FIFO是对并行的48bit数据进行缓冲,在IIS之前,也就是两个通道的24bit,如果是16bit的文件则只占用高16bit
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-8 04:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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