piccode 发表于 2010-4-10 23:52:30

基于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于东莞

piccode 发表于 2010-4-11 00:01:56

请有兴趣或建议的加入.谢谢!

gzhuli 发表于 2010-4-11 00:02:43

数字部分还有别的玩法的,例如用DSP/FPGA做数字重采样/过采样,甚至sigma-delta调制直接驱动功率MOSFET。
不过这些高级玩意,现在都是大公司才玩得起。

piccode 发表于 2010-4-11 00:09:37

回【2楼】 gzhuli 咕唧霖
-----------------
  对,那是要咂入巨资的,实际出来后有时也是叫好不叫座.所以有时技术不得不迁就市场
 再说就算是"某公司"创新了一个算法也不见得就真的好,--需要时间和消费者的检验.
 

gzhuli 发表于 2010-4-11 00:28:21

在目前的几个方案中,除HM801的MP4芯片外,PIC32性能是最强悍的了,其次是AVR32,然后ARM7,最后是QA350的dsPIC。
不过从单纯播放WAV来说,这些芯片的性能都足够,关键还是看周边设备的整体配合了。
HM801的MP4芯片反倒是个问题,24M晶振产生44.1k采样率,是整数分频出近似频率,还是小数分频PLL,还是软件重采样成48k呢?

我的简易版DAC正在焊接中,DAC完成后就开始做些基本的软件功能,以便用于正式版DAC和模拟电路的测试。
最近音响论坛真是遍地开花,期待你的作品。 :)

90999 发表于 2010-4-11 00:46:31

350只是550马甲版,

另外还有U-S,DEP,192等等好多好多.............

gzhuli 发表于 2010-4-11 01:09:55

还有hifidiy的S3C2440,不过蓝色底板配个绿色核心板,ARM9配个12864,都是败笔,虽然这些和音质并没关系。

vipcff 发表于 2010-4-11 07:38:03

piccode 发表于 2010-4-11 07:44:53

回gzhuli 咕唧霖
    正解! 越多的花里花硝对音色的影响越大.我ES版的目标是有声音出来,后面的版本才去做音质音色的修正

回【5楼】 90999
  我看过350/550的源代码=> UltimateSourceV2 /以前用过一款,有点热,消耗电流大(新出来的不知有没有改进)
PIC32的话有很好的电源管理 其它的还没再深入

不知怎回事最近老睡不着---是不是真的就老了唉

fsclub 发表于 2010-4-11 07:55:57

兄弟,把我的名字删除了。我那个是转帖的。
不过我最近买了批运放,又买了个SONY解码板。专捡便宜的玩。
不过我已经找到了市面上有逅同轴输出,又可播放WAV,插硬盘、USB、SD卡座三种媒体的播放器了。其实市面上好多,如realplay R1领先版和豪华版,蓝炬A831等。
不过150元左右。工业设计比DIY的不知道好多少倍。但音质还不知道,正在找资料,想对比买一个。关键看时钟了。

piccode 发表于 2010-4-11 08:18:42

【9楼】 fsclub
   好的,我注明了转贴
其实音质不是说用好料就能出好声.你看那此好点的音响有那家是说我用是谁的电容,什么样的电阻,什么样的晶振(国产除外)
 那些什么的都是心里没底的家伙做出来糊仍人的.我见识过好多吹嘘如何如何的.却连最简单基本的POWER ON/OFF
MUTE都做不好!

shinehjx 发表于 2010-4-11 08:46:02

支持,希望是纯数字输出的(类同QA550)

astankvai 发表于 2010-4-11 09:14:58

有没有用 ADI 的 SHARC 浮点DSP做音频的啊?听说很专业,这个月在广州大学有专场研讨会的呢!

gzhuli 发表于 2010-4-11 18:12:21

回复【12楼】astankvai 陈超
有没有用 ADI 的 SHARC 浮点DSP做音频的啊?听说很专业,这个月在广州大学有专场研讨会的呢!
-----------------------------------------------------------------------

SHARC多数用于AV领域,做多声道解码、音效和音场处理等。HIFI领域需要DSP的也就是重采样和过采样,这两样Blackfin都能轻松搞定了。

90999 发表于 2010-4-11 18:51:36

DSPIC 马力不足啊,要超频到45MHZ才够速度.......超45MHZ吃电啊......



另外,不要把HIFI想得太简单......一旦堆料,那就错了...不堆料光靠片子性能,那也是错的...
玩了那么久只总结出那么两条,觉得有用的就拿去,其中的道理我还是没琢磨透。

piccode 发表于 2010-4-11 20:50:55

PIC32可上到80MHZ 有8 ch. DMA有电源管理,理论上可以做到40mA以下的总耗电量.

piccode 发表于 2010-4-11 20:55:30

SHARC我们公司有用过.不过那个项目我没有参与.包括现在的BF523C.ADI的网站上有关于和我们公司合作的一个说明.
 

dnty 发表于 2010-4-11 21:28:04

http://www.k9spud.com/traxmod/
这里有一个和你想做的一模一样,用pic32芯片,sd卡,能放wav和flac,有全部开源资料。
我曾经照猫画虎焊过一个,不过没搞成,浪费了几百块。

ahfong2006 发表于 2010-4-11 21:53:20

回复【17楼】dnty
http://www.k9spud.com/traxmod/
这里有一个和你想做的一模一样,用pic32芯片,sd卡,能放wav和flac,有全部开源资料。
我曾经照猫画虎焊过一个,不过没搞成,浪费了几百块。
-----------------------------------------------------------------------

那个用的是16位dsPIC,不是32位

90999 发表于 2010-4-11 22:04:25

PIC32的SPI可以兼容I2S的时序么?我没细看TRAXMOD的代码~~~~

piccode 发表于 2010-4-11 22:17:02

那就好可以参照了.想知道一下【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只是其中的一种而以.不是非得用它

piccode 发表于 2010-4-11 22:25:07

这里也有一个可以参考的

http://people.bath.ac.uk/enpsgp/nokia770/dsp/mp3/mp3_CCS_mad_15_math_16.zip

dnty 发表于 2010-4-11 23:33:01

回复【18楼】ahfong2006
-----------------------------------------------------------------------

有32位版本的,最新采用的芯片为pic32mx695

dnty 发表于 2010-4-11 23:38:31

回复【20楼】piccode
-----------------------------------------------------------------------

我只是焊了个电路,把供电换成了lt1117,然后把不知道用来做什么的通讯端口(txd,rxd可能是用于调试的)省掉了,只保留烧写端口,程序烧录成功,但就是无反应好像没运行似的。
我只是个菜鸟,连示波器也没有,本来看了他的日志好像开发的比较成熟了就想自己焊一个,但是没搞成,不知是哪里的问题。后来工作忙就丢一边了。

piccode 发表于 2010-4-13 22:51:47

今天看了一天下面的代码.
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不接也没关系,是输出调试信息用的)应该可以工作啊?

swayen 发表于 2010-5-8 11:19:14

楼主,怎么联系你?

5555555555 发表于 2010-5-10 22:04:47

http://www.k9spud.com/traxmod/ ,这个网站的资料我怎么下不了,想做一个谁能帮个忙

piccode 发表于 2010-5-10 22:27:59

【25楼】 swayen
   ==>方便的话这里留言吧

【26楼】
    用IE很方便下的。(或留联络我传给你)

-----------------------------------------------
现在还在搞I2S部分,最终的目标还是要I2S出来。目前到手了AK4395和PCM1796,
电路上AK4395简单一点,但指示可能PCM1796好点。因为是工作之外的事,所以有一下没一下
意义在于过程吧

piccode 发表于 2010-5-10 22:37:35

多罗嗦2句:
文件系统:EFSL                        http://efsl.be/
FLAC 解码:FFmpeg library             http://ffmpeg.org/
MP3解码:MAD“MPEG Audio Decoder”    http://www.underbit.com/products/mad/

dnty 发表于 2010-5-11 21:12:40

回复【26楼】5555555555
-----------------------------------------------------------------------
1、点网页右边第一个链接Developer's Area
2、在新打开的网页中只有一个链接,点击它 TRAXMOD Developer's Area,在弹出的对话框输入用户名:i,密码:agree

lxa0 发表于 2010-7-4 02:37:52

做好了嘛????????????????/

listen 发表于 2010-7-21 09:47:35

关注进展,一直想入套APE、FLAC播放器

mydust 发表于 2010-8-4 10:44:11

关注进展

fingerprint 发表于 2010-8-5 11:33:46

PICCODE兄弟,怎么联系你呢
我手上正好有几片PICMX695F512L的片子,一直想用来做点东西,
原来也做过音响产品,不知道能否同兄弟聊聊。

piccode 发表于 2010-8-5 12:00:47

【33楼】 fingerprint --请留SKYPE吧(不太用QQ)

fingerprint 发表于 2010-8-8 13:44:19

呵呵,我的SKYPE是
SKYPECASTER999

Fpang 发表于 2010-9-10 15:28:39

关注,持续关注

piccode 发表于 2010-9-15 11:43:36

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)

fickle 发表于 2010-9-15 12:46:35

学习。

john_8 发表于 2010-9-15 14:44:13

piccode ,一起吧,我也正准备着手这个,今天还下载了traxmod所有的代码,联系了国内微芯的代理,好像现在买不到PICMX695F512H

piccode 发表于 2010-9-23 08:58:56

最新进展可以播放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)

lyping1987 发表于 2010-9-23 10:48:48

关注啊

huwenhui 发表于 2010-9-23 10:52:41

楼主flac怎么解的?

piccode 发表于 2010-10-18 09:43:27

回【42楼】
FLAC 解码:FFmpeg library
---------------------------------------------
我用1200mA的聚合物电池听了一星期还有电。

WAV时整机电流=16mA
FLAC时整机电流:18mA--40mA---60mA   //有优化
MAD解码时整机电流60mA//没有优化。

fsclub 发表于 2010-10-18 10:00:56

不错啊。那个主芯片有没有一般DIY的烧写器?

piccode 发表于 2010-10-18 10:58:36

网上有DIY的 PICKIT3的制作方法。本坛之前有人发过。

huwenhui 发表于 2010-10-18 11:15:42

楼主现在完全搞定了吧~

cheungman 发表于 2010-10-27 17:09:16

回复【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

Fpang 发表于 2010-11-15 17:09:32

楼主上个图看看呢

piccode 发表于 2010-11-15 18:17:55

回复【47楼】 cheungman
有可能是C32的问题。或内存分配等等,我的没你说的现象。 最近工作比较忙,没在进一步搞了。
C32的破_解见下:
http://www.ourdev.cn/bbs/bbs_list.jsp?search_text=piccode&search_mode=3&bbs_id=9999

cheungman 发表于 2010-11-17 18:34:40

回复【40楼】 piccode 最新进展可以播放WAV和FLAC了,但是FLAC不完善,有些规格的FLAC播放放错误。
->是跟traxmod的SD使用的是SPI读SD卡, 速度跟不上导致断流的缘故.

回复【49楼】 piccode
->对, 是内存分配问题, 我把malloc.c中的
    #define HEAP_SIZE ((1024*110))// + 70)                        //modify 2010.10.29 修改内存错误\
修改之后就可以了.

piccode 发表于 2010-11-18 10:16:19

回复【50楼】cheungman
最新进展可以播放WAV和FLAC了,但是FLAC不完善,有些规格的FLAC播放放错误。
->是跟traxmod的SD使用的是SPI读SD卡, 速度跟不上导致断流的缘故.
   是压缩率的原因。FLAC 5级以下都OK, 大于5级时是解码错误,

另外我的没有做任何修改都可以,没有存在你修改内存错误的现象。好象别的网友也有你说有情况。

cheungman 发表于 2010-11-18 14:37:09

回复【51楼】 piccode
是压缩率的原因。FLAC 5级以下都OK, 大于5级时是解码错误,

->我用FLAC Frontend软件把wav文件转换0级, 1级, 3级, 5级, 7级,8级的flac文件, 发现可以正常播放.

mydust 发表于 2011-2-16 10:53:30

做的不错

flytosky 发表于 2011-3-9 15:16:50

能不能简单描述一下音质如何?

tidsp 发表于 2011-3-9 15:32:21

有人说QA350 MOD 声音还不错,现在正和要出世的DPI打的火热,七彩虹的CK4也是近日发售,一场混战啊,看的心痒,定了台CK4,不知道到底声音会怎样,期望不高,能秒杀音乐手机就够了。

reloaded 发表于 2011-3-18 17:09:52

楼主,有最新的进展的照片没?flac或者ape都试验成功了没啊?我准备仿造Microchip的原装的多媒体扩展板MMB也 做一个类似的板子

kevin_me 发表于 2011-3-18 18:27:48

支持PIC32
一直使用DSPIC30F
希望更多的朋友一起讨论微芯的片子

reloaded 发表于 2011-3-22 20:50:19

dspic33f有i2s和ac97接口,本身有一定的dsp能力,可以玩玩的

90999 发表于 2011-3-22 23:17:02

回复【58楼】reloaded电子浪人
dspic33f有i2s和ac97接口,本身有一定的dsp能力,可以玩玩的
-----------------------------------------------------------------------

dspic可以放WAV,但是它的DMA-RAM只有2K,勉强应付WAV。

reloaded 发表于 2011-3-23 18:36:18

回复【59楼】90999张耀扬
回复【58楼】reloaded电子浪人
dspic33f有i2s和ac97接口,本身有一定的dsp能力,可以玩玩的
-----------------------------------------------------------------------
dspic可以放wav,但是它的dma-ram只有2k,勉强应付wav。
-----------------------------------------------------------------------

哪qa350是怎么解决这个问题的呢?好奇中,,

90999 发表于 2011-3-23 18:39:42

回复【60楼】reloaded电子浪人
回复【59楼】90999张耀扬
回复【58楼】reloaded电子浪人
dspic33f有i2s和ac97接口,本身有一定的dsp能力,可以玩玩的
-----------------------------------------------------------------------
dspic可以放wav,但是它的dma-ram只有2k,勉强应付wav。
-----------------------------------------------------------------------

哪qa350是怎么解决这个问题的呢?好奇中,,
-----------------------------------------------------------------------

QA350有什么希奇的。

reloaded 发表于 2011-3-24 09:03:52

回复【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

了解了

piccode 发表于 2011-3-30 11:20:08

用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模块       */
}

woodhook 发表于 2011-4-10 14:37:53

学习。

somwin 发表于 2012-9-12 22:57:22

mark!                  

tendy 发表于 2013-1-24 01:16:44

mark!!!!!!!!!!!{:biggrin:}

yu200711 发表于 2013-6-23 19:13:18

PICCODE老大,我做了TRAXMOD,有显示版本也检测到SD卡显示电池电压,但是按键全无反应,不知道什么问题,能否帮忙一下?谢谢

piccode 发表于 2013-6-28 10:23:22

yu200711 发表于 2013-6-23 19:13 static/image/common/back.gif
PICCODE老大,我做了TRAXMOD,有显示版本也检测到SD卡显示电池电压,但是按键全无反应,不知道什么问题,能 ...

我现没搞这个了。你用原版的还有问题的话就是你硬件问题了

piccode 发表于 2013-7-1 15:35:30

刚才看到了yu200711 做的播放器,回想起3年前的此贴,感想很多。
感谢版主莫大的提供这样的一个交流区,感谢帮助过我的各位
现贴上些以前怕的相片,做一个总结吧...3年前我做过的那个播放器
   一直在手上用到现在呵呵

piccode 发表于 2013-7-1 15:36:40

当时设计的面板全景效果图

Excellence 发表于 2013-7-1 15:43:45

不错。
算挖坟了。

chiooo1 发表于 2013-12-18 12:28:05

piccode 发表于 2013-12-18 15:35:16

chiooo1 发表于 2013-12-18 12:28
有套件么

没有,限量发行,全球只2台{:shy:}

mowin 发表于 2013-12-18 16:30:33

楼主的管理位置干的如何了?

TimCheng 发表于 2013-12-19 11:06:01

piccode 发表于 2013-12-18 15:35
没有,限量发行,全球只2台

楼主,你使用的DAC好像与原版的不一样,能否提供原理图?

TimCheng 发表于 2013-12-19 17:25:02

使用这个播放器配什么耳机比较好?

dahai2677 发表于 2014-9-8 11:57:28

有兴趣用STM32F407做播放器吗?

hamwang1 发表于 2014-9-8 12:11:55

看起来不错,手上没有pic32,只有dspic
页: [1]
查看完整版本: 基于PIC32的WAV和FLAC的音频播放器