基于PIC32的WAV和FLAC的音频播放器
准备动手基于PIC32的WAV+FLAC+MP3的音频播放器最近看到几篇关于HIFI的播放器.也手痒
现状分析:
现在进行中的和出来的产品:
1)gzhuli制作的不用考虑成本的数码HIFI播放器
2)fsclub 转贴的"我的HIFI WAV播放器设计"
3)gxlujd-HIFI数字播放器
4)win和kingofkings 的AVR32-WAV播放器
5) wenming -一年多前设计的H数字播放器方案
6) QA350 WAV播放器
*以上排名不分先后.
以上播放器 F/W部分的解码应全部是采用通用的算法 既过采样和数字滤波算法等。
也只是平台不同而以,管你ARM还是AVR32.出来的PCM数字流无差别...
所以好环也只是后面的DAC-模拟电路---PCB LAYOUT 3大部分。(后面的2个最重要)
好在TI和OKI好一点的DAC基本都在产品上用过,最难的是软件...
这也是我想用PIC32来做的原因。因为喜欢PIC,以前也喜欢音乐,又刚好从事AUDIO RD多年。
在本行业里学习何乐而不为呵。
PIC32硬件规格:
High Performance 32-Bit MCU
80 MHz, 1.56 DMIPS/MHz CPU IPS® M4K® core
Single cycle multiply and divide hardware
Flash pre-fetch module, 256Byte cache
Fast context switch and interrupt response
8 ch. DMA controller
10/100 Ethernet, CAN2.0b, USB host/device/OTG
构想:
准备用PIC32+PCM1796先做一个功能版ES样品出来。目标时间希望10月1号。
第一是WAV,再FLAC解码再MP3解码可以. 在没有听到声音之前我不标榜"HIFI"
只说是音频播放器!
以上2010年4月10号晚23:52于东莞 请有兴趣或建议的加入.谢谢! 数字部分还有别的玩法的,例如用DSP/FPGA做数字重采样/过采样,甚至sigma-delta调制直接驱动功率MOSFET。
不过这些高级玩意,现在都是大公司才玩得起。 回【2楼】 gzhuli 咕唧霖
-----------------
对,那是要咂入巨资的,实际出来后有时也是叫好不叫座.所以有时技术不得不迁就市场
再说就算是"某公司"创新了一个算法也不见得就真的好,--需要时间和消费者的检验.
在目前的几个方案中,除HM801的MP4芯片外,PIC32性能是最强悍的了,其次是AVR32,然后ARM7,最后是QA350的dsPIC。
不过从单纯播放WAV来说,这些芯片的性能都足够,关键还是看周边设备的整体配合了。
HM801的MP4芯片反倒是个问题,24M晶振产生44.1k采样率,是整数分频出近似频率,还是小数分频PLL,还是软件重采样成48k呢?
我的简易版DAC正在焊接中,DAC完成后就开始做些基本的软件功能,以便用于正式版DAC和模拟电路的测试。
最近音响论坛真是遍地开花,期待你的作品。 :) 350只是550马甲版,
另外还有U-S,DEP,192等等好多好多............. 还有hifidiy的S3C2440,不过蓝色底板配个绿色核心板,ARM9配个12864,都是败笔,虽然这些和音质并没关系。 顶 回gzhuli 咕唧霖
正解! 越多的花里花硝对音色的影响越大.我ES版的目标是有声音出来,后面的版本才去做音质音色的修正
回【5楼】 90999
我看过350/550的源代码=> UltimateSourceV2 /以前用过一款,有点热,消耗电流大(新出来的不知有没有改进)
PIC32的话有很好的电源管理 其它的还没再深入
不知怎回事最近老睡不着---是不是真的就老了唉 兄弟,把我的名字删除了。我那个是转帖的。
不过我最近买了批运放,又买了个SONY解码板。专捡便宜的玩。
不过我已经找到了市面上有逅同轴输出,又可播放WAV,插硬盘、USB、SD卡座三种媒体的播放器了。其实市面上好多,如realplay R1领先版和豪华版,蓝炬A831等。
不过150元左右。工业设计比DIY的不知道好多少倍。但音质还不知道,正在找资料,想对比买一个。关键看时钟了。 【9楼】 fsclub
好的,我注明了转贴
其实音质不是说用好料就能出好声.你看那此好点的音响有那家是说我用是谁的电容,什么样的电阻,什么样的晶振(国产除外)
那些什么的都是心里没底的家伙做出来糊仍人的.我见识过好多吹嘘如何如何的.却连最简单基本的POWER ON/OFF
MUTE都做不好! 支持,希望是纯数字输出的(类同QA550) 有没有用 ADI 的 SHARC 浮点DSP做音频的啊?听说很专业,这个月在广州大学有专场研讨会的呢! 回复【12楼】astankvai 陈超
有没有用 ADI 的 SHARC 浮点DSP做音频的啊?听说很专业,这个月在广州大学有专场研讨会的呢!
-----------------------------------------------------------------------
SHARC多数用于AV领域,做多声道解码、音效和音场处理等。HIFI领域需要DSP的也就是重采样和过采样,这两样Blackfin都能轻松搞定了。 DSPIC 马力不足啊,要超频到45MHZ才够速度.......超45MHZ吃电啊......
另外,不要把HIFI想得太简单......一旦堆料,那就错了...不堆料光靠片子性能,那也是错的...
玩了那么久只总结出那么两条,觉得有用的就拿去,其中的道理我还是没琢磨透。 PIC32可上到80MHZ 有8 ch. DMA有电源管理,理论上可以做到40mA以下的总耗电量. SHARC我们公司有用过.不过那个项目我没有参与.包括现在的BF523C.ADI的网站上有关于和我们公司合作的一个说明.
http://www.k9spud.com/traxmod/
这里有一个和你想做的一模一样,用pic32芯片,sd卡,能放wav和flac,有全部开源资料。
我曾经照猫画虎焊过一个,不过没搞成,浪费了几百块。 回复【17楼】dnty
http://www.k9spud.com/traxmod/
这里有一个和你想做的一模一样,用pic32芯片,sd卡,能放wav和flac,有全部开源资料。
我曾经照猫画虎焊过一个,不过没搞成,浪费了几百块。
-----------------------------------------------------------------------
那个用的是16位dsPIC,不是32位 PIC32的SPI可以兼容I2S的时序么?我没细看TRAXMOD的代码~~~~ 那就好可以参照了.想知道一下【17楼】 dnty你是怎样的没搞成? 不能工作吗
-------------------------------------------
回【19楼】 90999
PIC32可以输出ADPCM MICROCHIP上有WMA的DEMO CODE
Audio Library for PIC32MX v1.1.01 (SPEEX, ADPCM,WAV)
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en534485
另外I2S只是其中的一种而以.不是非得用它 这里也有一个可以参考的
http://people.bath.ac.uk/enpsgp/nokia770/dsp/mp3/mp3_CCS_mad_15_math_16.zip 回复【18楼】ahfong2006
-----------------------------------------------------------------------
有32位版本的,最新采用的芯片为pic32mx695 回复【20楼】piccode
-----------------------------------------------------------------------
我只是焊了个电路,把供电换成了lt1117,然后把不知道用来做什么的通讯端口(txd,rxd可能是用于调试的)省掉了,只保留烧写端口,程序烧录成功,但就是无反应好像没运行似的。
我只是个菜鸟,连示波器也没有,本来看了他的日志好像开发的比较成熟了就想自己焊一个,但是没搞成,不知是哪里的问题。后来工作忙就丢一边了。 今天看了一天下面的代码.
http://www.k9spud.com/traxmod/
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3212045&bbs_page_no=2&bbs_id=1000
我的也就用traxmod了.呵这下容易多了.PIC32没有H/W I2S接口,是用SPI接口方式输出left/right格式可以.
谢谢【17楼】 dnty 提供的网址
另外供电换成了lt1117(txd,rxd不接也没关系,是输出调试信息用的)应该可以工作啊? 楼主,怎么联系你? http://www.k9spud.com/traxmod/ ,这个网站的资料我怎么下不了,想做一个谁能帮个忙 【25楼】 swayen
==>方便的话这里留言吧
【26楼】
用IE很方便下的。(或留联络我传给你)
-----------------------------------------------
现在还在搞I2S部分,最终的目标还是要I2S出来。目前到手了AK4395和PCM1796,
电路上AK4395简单一点,但指示可能PCM1796好点。因为是工作之外的事,所以有一下没一下
意义在于过程吧 多罗嗦2句:
文件系统:EFSL http://efsl.be/
FLAC 解码:FFmpeg library http://ffmpeg.org/
MP3解码:MAD“MPEG Audio Decoder” http://www.underbit.com/products/mad/ 回复【26楼】5555555555
-----------------------------------------------------------------------
1、点网页右边第一个链接Developer's Area
2、在新打开的网页中只有一个链接,点击它 TRAXMOD Developer's Area,在弹出的对话框输入用户名:i,密码:agree 做好了嘛????????????????/ 关注进展,一直想入套APE、FLAC播放器 关注进展 PICCODE兄弟,怎么联系你呢
我手上正好有几片PICMX695F512L的片子,一直想用来做点东西,
原来也做过音响产品,不知道能否同兄弟聊聊。 【33楼】 fingerprint --请留SKYPE吧(不太用QQ) 呵呵,我的SKYPE是
SKYPECASTER999 关注,持续关注 pickit3 到手了(从美国--香港---东莞 一个多月时间)
P/N; PG164130
Price:$44.95USD
L/T:4-6Weeks
手机拍的图片,将就一下
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_583136RZEETM.JPG
(原文件名:P1.JPG)
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_583137SACS5L.JPG
(原文件名:P2.JPG) 学习。 piccode ,一起吧,我也正准备着手这个,今天还下载了traxmod所有的代码,联系了国内微芯的代理,好像现在买不到PICMX695F512H 最新进展可以播放WAV和FLAC了,但是FLAC不完善,有些规格的FLAC播放放错误。
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_584951J8AH8N.JPG
(原文件名:A.JPG)
http://cache.amobbs.com/bbs_upload782111/files_33/ourdev_584952HG5PDS.jpg
(原文件名:IMG0023.jpg) 关注啊 楼主flac怎么解的? 回【42楼】
FLAC 解码:FFmpeg library
---------------------------------------------
我用1200mA的聚合物电池听了一星期还有电。
WAV时整机电流=16mA
FLAC时整机电流:18mA--40mA---60mA //有优化
MAD解码时整机电流60mA//没有优化。 不错啊。那个主芯片有没有一般DIY的烧写器? 网上有DIY的 PICKIT3的制作方法。本坛之前有人发过。 楼主现在完全搞定了吧~ 回复【40楼】piccode
最新进展可以播放wav和flac了,但是flac不完善,有些规格的flac播放放错误。
1.piccode兄弟, 我也照着traxmod的搭了个板子, 可是我的运行的时候, 每次跑到这里就死住了, 见下边串口打印信息
仿真运行发现, 跑到audio.c函数DACSynchronize()中的while(DAC_LRCK);就死住了.
2.看了一下程序, 把#define DAC_LRCK PORTFbits.RF4改成PORTBbits.RB8, 仿真再次发现跑到DACIsSynchronized()中的while(SPIdSTATbits.SPIRBE);就死住了, 研究了好久也不知道怎么回事.
3.你有没有什么经验或心得, 可否告知我, 我被卡在这里了.
----------------------------------------------------------------------------------------------
TRAXMOD Digital Audio Player v1.0.2
Copyright (c) 2005-2010, K9spud LLC.
http://www.k9spud.com/traxmod/
V1 OCR 2.7V to 3.6V, byte addressing
MMC/SD Card initialized done!
Read TRAXMOD.CFG Vol: 63 File: 12
2.28Vbatt
32-bit DMA 楼主上个图看看呢 回复【47楼】 cheungman
有可能是C32的问题。或内存分配等等,我的没你说的现象。 最近工作比较忙,没在进一步搞了。
C32的破_解见下:
http://www.ourdev.cn/bbs/bbs_list.jsp?search_text=piccode&search_mode=3&bbs_id=9999 回复【40楼】 piccode 最新进展可以播放WAV和FLAC了,但是FLAC不完善,有些规格的FLAC播放放错误。
->是跟traxmod的SD使用的是SPI读SD卡, 速度跟不上导致断流的缘故.
回复【49楼】 piccode
->对, 是内存分配问题, 我把malloc.c中的
#define HEAP_SIZE ((1024*110))// + 70) //modify 2010.10.29 修改内存错误\
修改之后就可以了. 回复【50楼】cheungman
最新进展可以播放WAV和FLAC了,但是FLAC不完善,有些规格的FLAC播放放错误。
->是跟traxmod的SD使用的是SPI读SD卡, 速度跟不上导致断流的缘故.
是压缩率的原因。FLAC 5级以下都OK, 大于5级时是解码错误,
另外我的没有做任何修改都可以,没有存在你修改内存错误的现象。好象别的网友也有你说有情况。 回复【51楼】 piccode
是压缩率的原因。FLAC 5级以下都OK, 大于5级时是解码错误,
->我用FLAC Frontend软件把wav文件转换0级, 1级, 3级, 5级, 7级,8级的flac文件, 发现可以正常播放. 做的不错 能不能简单描述一下音质如何? 有人说QA350 MOD 声音还不错,现在正和要出世的DPI打的火热,七彩虹的CK4也是近日发售,一场混战啊,看的心痒,定了台CK4,不知道到底声音会怎样,期望不高,能秒杀音乐手机就够了。 楼主,有最新的进展的照片没?flac或者ape都试验成功了没啊?我准备仿造Microchip的原装的多媒体扩展板MMB也 做一个类似的板子 支持PIC32
一直使用DSPIC30F
希望更多的朋友一起讨论微芯的片子 dspic33f有i2s和ac97接口,本身有一定的dsp能力,可以玩玩的 回复【58楼】reloaded电子浪人
dspic33f有i2s和ac97接口,本身有一定的dsp能力,可以玩玩的
-----------------------------------------------------------------------
dspic可以放WAV,但是它的DMA-RAM只有2K,勉强应付WAV。 回复【59楼】90999张耀扬
回复【58楼】reloaded电子浪人
dspic33f有i2s和ac97接口,本身有一定的dsp能力,可以玩玩的
-----------------------------------------------------------------------
dspic可以放wav,但是它的dma-ram只有2k,勉强应付wav。
-----------------------------------------------------------------------
哪qa350是怎么解决这个问题的呢?好奇中,, 回复【60楼】reloaded电子浪人
回复【59楼】90999张耀扬
回复【58楼】reloaded电子浪人
dspic33f有i2s和ac97接口,本身有一定的dsp能力,可以玩玩的
-----------------------------------------------------------------------
dspic可以放wav,但是它的dma-ram只有2k,勉强应付wav。
-----------------------------------------------------------------------
哪qa350是怎么解决这个问题的呢?好奇中,,
-----------------------------------------------------------------------
QA350有什么希奇的。 回复【61楼】90999张耀扬
回复【60楼】reloaded电子浪人
回复【59楼】90999张耀扬
回复【58楼】reloaded电子浪人
dspic33f有i2s和ac97接口,本身有一定的dsp能力,可以玩玩的
-----------------------------------------------------------------------
dspic可以放wav,但是它的dma-ram只有2k,勉强应付wav。
-----------------------------------------------------------------------
哪qa350是怎么解决这个问题的呢?好奇中,,
-----------------------------------------------------------------------
qa350有什么希奇的。
-----------------------------------------------------------------------
http://www.ourdev.cn/bbs/bbs_content_all.jsp?bbs_sn=4008521
了解了 用DSPIC 放24位的WAV文件出声音了。DCI初始的部分代码:
/**************************************************************
24Bit DCI初始化程序
**************************************************************/
void initDCI (void)
{
DCICON1bits.CSCKD = 1; /* CSCK pin */
DCICON1bits.CSCKE = 1; /*CSCK上升沿 */
DCICON1bits.COFSD = 1;
DCICON1bits.UNFM = 1;
DCICON1bits.CSDOM = 0; /*CSDO pin */
DCICON1bits.DJST = 0; /*Data */
DCICON1bits.COFSM = 1; /* I2S mode */
/*
DCICON2 初始化
*/
DCICON2bits.BLEN = 3; //4个字节中断
DCICON2bits.COFSG = 1; //
DCICON2bits.WS = 15; // 设定16+8 bit
/*
按收寄存器初始化
*/
RSCONbits.RSE0 = 1; /*空闲时接收 */
RSCONbits.RSE1 = 1;
_DCIIE = 1; /*清DCI中断标志 */
_DCIIF = 0; /*使能DCI中断处理 */
DCICON1bits.DCIEN = 1;/*使能DCI模块 */
} 学习。 mark! mark!!!!!!!!!!!{:biggrin:} PICCODE老大,我做了TRAXMOD,有显示版本也检测到SD卡显示电池电压,但是按键全无反应,不知道什么问题,能否帮忙一下?谢谢 yu200711 发表于 2013-6-23 19:13 static/image/common/back.gif
PICCODE老大,我做了TRAXMOD,有显示版本也检测到SD卡显示电池电压,但是按键全无反应,不知道什么问题,能 ...
我现没搞这个了。你用原版的还有问题的话就是你硬件问题了 刚才看到了yu200711 做的播放器,回想起3年前的此贴,感想很多。
感谢版主莫大的提供这样的一个交流区,感谢帮助过我的各位
现贴上些以前怕的相片,做一个总结吧...3年前我做过的那个播放器
一直在手上用到现在呵呵 当时设计的面板全景效果图 不错。
算挖坟了。
chiooo1 发表于 2013-12-18 12:28
有套件么
没有,限量发行,全球只2台{:shy:} 楼主的管理位置干的如何了? piccode 发表于 2013-12-18 15:35
没有,限量发行,全球只2台
楼主,你使用的DAC好像与原版的不一样,能否提供原理图? 使用这个播放器配什么耳机比较好? 有兴趣用STM32F407做播放器吗? 看起来不错,手上没有pic32,只有dspic
页:
[1]