搜索
bottom↓
123
返回列表 发新帖
楼主: sharpufo

【开源作品】OOPY 音乐播放器,STM32 inside, 支持CD格式WAV、无损FLAC软解码播放,裸

  [复制链接]

出0入0汤圆

发表于 2011-9-29 07:50:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-8 10:29:04 | 显示全部楼层
mark ,学习了

出0入0汤圆

发表于 2011-10-8 11:08:33 | 显示全部楼层
漂亮的很啊。

出0入0汤圆

发表于 2011-10-8 13:20:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-8 18:02:01 | 显示全部楼层
不错的播放器,标记学习!

出0入0汤圆

发表于 2011-10-9 20:20:14 | 显示全部楼层
回复【102楼】sharpufo
-----------------------------------------------------------------------

出0入0汤圆

发表于 2011-10-9 21:12:37 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-9 21:21:20 | 显示全部楼层
经过近一个月的修改,我终于在我的实验板上,运行楼主的程序了,显示,按键都正常,但在连接mega48 后。播放程序的时间走动慢了16倍,也就是本来的1秒,却要16秒才走动1秒,检查发现mega48直接输出MCLK 只有不足1MHZ 我查过314forever的帖子,mega48也按照佢的全部复制了  PB0熔丝位已经写了。 已经用了16.9934 MHZ晶振,但晶振世界输入PB6 并没有加上平常的30pf电容。输入用示波器测过是16.9344M 正弦波到PB6没有错。但PB0输出MCLK 却是只有1MHZ左右的方波。而CS 有5.190KHZ   BCLK 124.56KHZ  LRCK 2.594HKZ 不能发声
主机显示时间也慢了16倍。究竟怎么回事。其他时序我根本不知道正确是多少,所以全部发上来,看看出现问题的原因是什么?

示波器显示MCLK还不够1MHZourdev_683413K6SLWZ.JPG(文件大小:2.34M,只有400K以内的图片才能直接显示) (原文件名:IMG_1165.JPG)
电路板焊接检查没有错ourdev_683414J8A0GF.JPG(文件大小:2.12M,只有400K以内的图片才能直接显示) (原文件名:IMG_1166.JPG)

这是逻辑分析仪时序,仍然只有1MHZ (原文件名:1123.jpg)


放大后的时序0为CS 1为MCLK 2为LRCK 3为BCLK (原文件名:1124.jpg)


AVRSudio 熔丝位图片1 (原文件名:1125.jpg)


熔丝位图2 (原文件名:1126.jpg)   
  

有mega48的完整电路图,担心是不是漏掉了什么,比如复位电路,16.9344是不是直接输入,还是要加电容

出0入0汤圆

发表于 2011-10-9 23:27:14 | 显示全部楼层
终于明白什么原因,原来mega48是旧的拆机件,原来熔丝设定为内部8M 和8分频。
取消了divide clock by 8 internally 的打钩 取消8分频
然后选择 Ext Clock start-up 6CK/14CK+65ms 的外部时钟 打钩,终于实现输出16.9334M频率 STM32的时间也正确了

出0入0汤圆

发表于 2011-10-10 01:42:26 | 显示全部楼层
现在出现一个问题,就是无法播放flac 文件,程序运行后,没有无论是播放界面还是目录选择界面,都无法搜索到flac文件添加到播放列表(根目录和子目录里面各有不少flac文件 )。另外有部分目录和部分wav也搜索不到。不知道是什么原因?

出0入0汤圆

发表于 2011-10-10 08:06:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-10 08:40:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-10 09:20:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-11 13:35:54 | 显示全部楼层
还是无法搞店,就是读不了FLAC 郁闷

出0入0汤圆

发表于 2011-10-14 15:06:48 | 显示全部楼层
回复【206楼】yeson  
终于明白什么原因,原来mega48是旧的拆机件,原来熔丝设定为内部8m 和8分频。
取消了divide clock by 8 internally 的打钩 取消8分频
然后选择 ext clock start-up 6ck/14ck+65ms 的外部时钟 打钩,终于实现输出16.9334m频率 stm32的时间也正确了
-----------------------------------------------------------------------

恭喜这位朋友,真的是功夫不负有心人来的!

出0入0汤圆

发表于 2011-10-21 01:30:42 | 显示全部楼层
把所有东西整合起来,之前无法读取FLAC问题未解决,暂时先放下。接上DAC发现严重噪声,程序还未自检完,未到播放界面,好像自激。排查很久都没有问题。后来发现把STM32到DAC 的SDATA中间的33R电阻去掉,直接通过,程序自检时候没有噪声。播放开始后,能听到音乐,但又很吵的噪音。暂停播放后,噪音消失,重新播放又开始。搞了一晚先不知道问题在哪里?

为何取消了SDATA引线间的33欧电阻,程序自检时候的噪音完全消除。能听到播放歌曲,感觉歌曲速度,声音比较正常,就是很大的背景噪声。DAC和功放应该不存在问题的。,未取消SDATA上面的33前,从程序自检阶段开始到播放开始根本什么听不到就是只有很大声的噪声。另外SDATA 连同LRCK BCLK MCLK SPICK 上面 33欧电阻作用是什么,噪声是不是因为这些电阻产生,能否全部取消。楼主有没有遇到这种情况。大概问题出现在哪里?楼主上面33欧电阻全部都按上面的电路加入电路中吗?

出0入0汤圆

发表于 2011-10-21 09:05:47 | 显示全部楼层
cool

出0入0汤圆

发表于 2011-10-21 09:49:12 | 显示全部楼层
看来要做出东西来还是要完全投入进去,东西做的很是不错DIY能做到您这样真的很牛。俺 是门外汉,过来崇拜下您。

出0入0汤圆

发表于 2011-10-22 10:33:43 | 显示全部楼层
我知道你离开这个圈子很久,我也十分懊恼,因为仿造你的WAV播放器已经接近尾声了,很多之前显示,读卡问题我已经慢慢解决了。感谢你一致支持。现在出现了一个很大的问题。已经几天无从入手,希望你能再给一点帮助建议。
      我已经把STM32 DAC mega48全部连接起来,先发现了能播放音乐但很大噪声。不知道你之前有否遇到这样的情况。mega48 产生I2S 我也看了 314forever 的帖子。mega48全抄他的程序的。
      下面是我调试出现的情况
刚开始接上DAC发现严重噪声,只要一上电程序连播放LOGO未显示,未到播放界面,就出现很大噪声好像自激,播放的时候也只有噪声根本听不到音乐。排查很久都没有接错线问题。后来无意中发现把STM32到DAC 的SDATA中间的33R电阻去掉,直接通过,程序自检时候没有噪声。播放开始后,能听到音乐,但又很吵的噪音。暂停播放后,噪音消失,重新播放又开始。搞了一晚先不知道问题在哪里?

为何取消了SDATA引线间的33欧电阻,程序自检时候的噪音完全消除。能听到播放歌曲,感觉歌曲速度,声音比较正常,就是很大的背景噪声。DAC和功放应该不存在问题的。未取消SDATA上面的33前,从程序自检阶段开始到播放开始根本什么听不到就是只有很大声的噪声。另外SDATA 连同LRCK BCLK MCLK SPICK 上面 33欧电阻作用是什么,噪声是不是因为这些电阻产生,能否全部取消。楼主有没有遇到这种情况。大概问题出现在哪里?楼主上面33欧电阻全部都按上面的电路图加入电路中吗?

我的DAC是PCM1794 DAC和运放在不用STM32 用DIR9001同轴输入声音都正常的。

出0入0汤圆

发表于 2011-10-27 10:32:04 | 显示全部楼层
楼主的有完整电路图上传吗?到底mega48接晶振,晶振电源要不要接104和10UF电容。还有输出LRCK MCLK BCLK到DAC,到MCU 还有从MCU到DAC的DATA 四根线要不要接33R电阻。我见一般的DAC芯片I2S的线上都有33R电阻,还有DATA要不要做上拉?

出0入0汤圆

发表于 2011-10-27 21:49:11 | 显示全部楼层
楼主的PCM1793 FMT2 FMT0 置高位 FMT1 置O  设置为I2S 24BIT 而我的是PCM1794 官方资料只有FM0 FM1 有三种模式I2S 立体声;标准16bit 和标准24bit。不知道I2S是否24bit 是选择I2S 还是标准24bit。

出0入0汤圆

发表于 2011-10-27 21:51:36 | 显示全部楼层
楼主的设置24bit 模式 那么在数据当中LRCK跳变送出一次数据,但应该一次送出24bit 数据。但我看你的程序,SPI不是只送出16bit数据,那么相差8bit数据怎么办?

出0入0汤圆

发表于 2011-10-31 22:19:52 | 显示全部楼层
搜FATFS长文件支持找到这个,对楼主表示膜拜。

出0入0汤圆

发表于 2011-11-1 23:05:02 | 显示全部楼层
留意学习

出0入0汤圆

发表于 2011-11-2 09:40:04 | 显示全部楼层
昨天,问朋友接了一个高阻耳机。在DAC输出的引脚接上,发现极大的噪音依旧,排除了IV 和LRF的电路的问题。是不是正如314foreve所说这种I2S接法CS系列的DAC就正常,接PCM的就有噪音。楼主你的1793到底又是如何成功的。有没有DAC或者MEGA48部分的电路给参考一下

出0入0汤圆

发表于 2011-11-2 10:23:33 | 显示全部楼层
PCM1794这种片子输出本来就夹带高频噪声
要用LPF去掉的吧

出0入0汤圆

发表于 2011-11-3 10:16:44 | 显示全部楼层
回复【224楼】ningmeng7294
pcm1794这种片子输出本来就夹带高频噪声
要用lpf去掉的吧
-----------------------------------------------------------------------

高频噪声应该是比较尖的。而我听到好像是中频噪声。而且原本电路板上面LPF装上去也是听到一样噪声,声响一样大

出0入0汤圆

发表于 2011-11-4 01:13:57 | 显示全部楼层
我终于发现为何使用PCM1794有如此大噪音了。原因在于I2S PCM1794 的I2S是只支持24bit  而mega48配合产生的时序是24bit 后面没有数据填充。所以导致噪音,PCM1793却支持I2S 16BIT 自动检测,至于CS系列可能有自动兼容模式。

现在头痛的问题要么就放弃1794换1793。要么就想办法吧STM32 SPI输出24bit数据。前者1793音质要比1794稍微差一点。后者就更麻烦首先SPI不知道是否支持超过16bit 另外WAV是16bit如何变成24bit输出呢?

出0入0汤圆

发表于 2011-11-5 20:17:47 | 显示全部楼层
回复【226楼】yeson
-----------------------------------------------------------------------

wav 16bit变24bit数据 是要重采样的,这样估计音质损失更大。

出0入0汤圆

发表于 2011-11-8 10:17:37 | 显示全部楼层
终于解决了噪音的问题了,原来是mega48产生的时序问题。不知道楼主和314FORVER当时是否意识到。或者你们的DAC对时序并不严格。不过很感谢你们的开源和制作。让我这个后来者分享到你们的成果。今天终于我的STM32F103VET+mega48+PCM1794+OPA627顺利发声。声音非常毒,凭借世界第一称号的DAC和单运放,全部元件分区独立供电,数字,模拟地线合理分开排布(通过大量人工方式对电阻电容选筛选,把DAC运放交越失真降到最低)。声音绝对相对于过万元的顶级CD媲美。经过近3个月的艰难,终于能听到天籁般声音。现在就完善外壳,到时就另外上贴 感激论坛上的各位作者,和网上曾经的帮助我的人。也欢迎更多高手朋友一起交流上面有我的联系方式。

出0入0汤圆

发表于 2011-11-8 21:23:41 | 显示全部楼层
回复【229楼】yeson
-----------------------------------------------------------------------

能不能把你做资料给我发一份?谢谢 !arm初学者~~难啊!邮箱hanwei19897@163.com

出0入0汤圆

发表于 2011-11-9 17:52:22 | 显示全部楼层
回复【229楼】yeson
-----------------------------------------------------------------------

交越失真,是你的电路没设计合理把。一般偏置设置恰当不会出现交越失真。arm刚开始学,不过模电还是可以的,有空讨论讨论·

出0入0汤圆

发表于 2011-11-16 10:44:57 | 显示全部楼层
回复【228楼】vivianHan
回复【226楼】yeson  
-----------------------------------------------------------------------
wav 16bit变24bit数据 是要重采样的,这样估计音质损失更大。
-----------------------------------------------------------------------

认真研究PCM1794 PDF 还有I2S的时序再重新考虑你自己的想法!别所有东西想当然!

出0入0汤圆

发表于 2011-11-16 11:15:15 | 显示全部楼层
回复【231楼】vivianHan
回复【229楼】yeson  
-----------------------------------------------------------------------
交越失真,是你的电路没设计合理把。一般偏置设置恰当不会出现交越失真。arm刚开始学,不过模电还是可以的,有空讨论讨论·
-----------------------------------------------------------------------

    呵呵!我不敢说自己水平如何。我做HIFI至少15年 从最简单矿石高阻耳机收音机到集成功放TDA2030 TDA7294 3886 T类TA2024 2022,晶体管场效应管分立元件,甲类,纯甲类,超甲类,电子管EL34 6P14单端都做过。补品发烧品我有用过,经带电路也改良过,做功放,我用到做仪器级别的精神去选取元件,机箱每个有可能便宜的电子元件都做温补处理。近几年做DAC从CS8416 DIR9001 WM8805的数字芯片我都做了。DAC从1541 CS4398 AD1955 PCM1794 PCM1704 运放用过AD797 OP627 OP2107/2136 NE5532 甚至上世纪安森美前身摩托罗拉的场效应管运放MC34072我都用过。现在根本不用运放做IV和LPF 转型电子管做。高频电路从跟住魏坤从第一版到开始做DIY示波器,设计的电路板不下几十款。我不敢说绝对合理,但起码唔会有低级错误,干扰。交越失真只要系放大信号采用上下半周分别用不同的两套放大电路就会存在,世界上哪有绝对一致的电子元件,放大的正负波形怎么可能绝对达到设计要求,没有交越失真的电路,说出来给人笑话的。所以交越失真只能降到最低,不可以根本消除!好多HIFI所谓金耳朵提到分隔度不同,分隔度的音质的高低就是交越失真所影响。顶级的放大电路交越失真产生的原因已经唔系电路设计产生,而是元件的离散性产生。交越失真也会导致奇次谐波偶次谐波失真出现,但不是两个都有害,人朵系对奇次谐波有厌恶感,对偶次谐波有接受感。这个也是音染听感耐听的问题。
这些年给我最大启示就是,每一样东西要刨根究底研究原理,不道听途说,可以有怀疑态度,但必须要自己动手研究,得出结论。而不是随便抛书包,说一大堆书上的理论。遇到问题都是把自己情况提出,假设,然后去验证。
    就好像今次的仿造,非常感谢楼主的开源,但我绝不会只是拿来主义,整个程序都认真研究,作用。从原理上面理解。包括楼主提供的都是电路都是简图,要是全搬全抄的,绝对不可能直接成功。必须用自己知识理解,遇到问题虚心求教,即使没有任何头绪,也不放弃,靠自己看资料,研究,最后解决一个个难关问题。楼主系抛砖引玉,修为还是靠自己!

出0入0汤圆

发表于 2011-11-20 22:03:01 | 显示全部楼层
回复【233楼】yeson
-----------------------------------------------------------------------

呵呵,受教了!头次听说交越失真不可避免。

出0入0汤圆

发表于 2011-11-21 08:14:37 | 显示全部楼层
好东西啊!一直想做一个,工作忙都没时间弄。唉。。

出0入0汤圆

发表于 2011-11-21 08:49:37 | 显示全部楼层
MK

出0入0汤圆

发表于 2011-11-23 17:30:02 | 显示全部楼层
这个要顶下。。。

出0入0汤圆

发表于 2011-11-23 21:10:29 | 显示全部楼层
哈哈哈,发现我的回复里牛贴越来越多了

出0入0汤圆

发表于 2011-12-13 23:12:42 | 显示全部楼层
回复【204楼】jackiezeng
mark
-----------------------------------------------------------------------

你启用了“使用8分频模式”,把这个勾取消掉。

出0入0汤圆

发表于 2011-12-26 21:44:17 | 显示全部楼层
强人!mark!

出0入0汤圆

发表于 2011-12-27 11:51:21 | 显示全部楼层
顶!

出0入0汤圆

发表于 2011-12-27 12:45:41 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-27 13:25:08 | 显示全部楼层
不错啊~~~严重支持

出0入0汤圆

发表于 2012-1-1 22:33:40 | 显示全部楼层
很有用,收藏了!!

出0入0汤圆

发表于 2012-1-1 23:00:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-12-29 23:48:43 | 显示全部楼层
不错

出0入0汤圆

发表于 2012-12-30 01:40:12 | 显示全部楼层
好东西,顶!

等这个好久了!

出0入0汤圆

发表于 2012-12-30 08:04:58 来自手机 | 显示全部楼层
狂顶狂顶狂顶狂顶狂顶狂顶狂顶狂顶

出0入0汤圆

发表于 2012-12-30 08:38:28 | 显示全部楼层
楼主把按键改成薄膜按键,这样更省钱,有通用MP3的那种

出0入24汤圆

发表于 2012-12-30 09:34:45 | 显示全部楼层
学习一下,感谢楼主

出0入0汤圆

发表于 2013-1-1 10:17:25 | 显示全部楼层
看图片,我感觉自己喝多了~~~

出0入0汤圆

发表于 2013-1-1 23:45:05 | 显示全部楼层
mark              

出0入0汤圆

发表于 2013-1-24 13:32:38 | 显示全部楼层
什么时候 产品出来呢??

出0入0汤圆

发表于 2013-3-21 18:59:01 | 显示全部楼层
此贴要收藏的,完了再玩

出0入0汤圆

发表于 2013-3-25 21:14:31 | 显示全部楼层
好东西,多分享

出0入0汤圆

发表于 2013-3-25 21:53:32 | 显示全部楼层
这个要顶

出0入0汤圆

发表于 2013-3-26 11:34:42 | 显示全部楼层
很库,真的, 不过老实说,如果用的是LPC1788而不是stm32,是不是能做得更好呢?不过成本是肯定会贵很多的

出0入0汤圆

发表于 2013-3-26 13:42:55 | 显示全部楼层
mark,so cool.

出0入0汤圆

发表于 2013-3-30 13:49:16 | 显示全部楼层
这是一位高人,几年前我也试着仿制一个类似的播放器,但没有成功

出0入0汤圆

发表于 2013-4-22 17:46:19 | 显示全部楼层
不错的方案,,解决了I2S时钟和PLL抖动问题。。我也开始搞了,不了过不是用M48。。

出0入0汤圆

发表于 2013-10-9 15:49:26 | 显示全部楼层
谁有314forever兄弟的帖子链接或AVR的程序!

出0入0汤圆

发表于 2013-11-1 14:02:48 | 显示全部楼层
不错的的 !!!

出0入0汤圆

发表于 2013-11-4 19:33:37 | 显示全部楼层
看啦好几次啦,再顶一下...

出0入0汤圆

发表于 2013-11-13 10:07:34 | 显示全部楼层
太强大了!

出0入0汤圆

发表于 2013-11-13 14:48:43 | 显示全部楼层
感谢开源,我和你同病相怜,耳朵响了几年了,祝你健康!

出0入0汤圆

发表于 2014-5-15 16:54:51 | 显示全部楼层
难得的一篇STM32 wav开源

出0入0汤圆

发表于 2014-5-15 18:36:42 | 显示全部楼层
顶顶顶顶顶顶顶顶

出0入0汤圆

发表于 2014-5-15 21:26:44 | 显示全部楼层
顶,强大!

出0入0汤圆

发表于 2014-9-13 18:44:40 | 显示全部楼层
好东西,顶一下

出0入0汤圆

发表于 2014-9-13 20:10:15 | 显示全部楼层
mark              

出0入0汤圆

发表于 2014-10-8 17:21:27 | 显示全部楼层
本帖最后由 yunjie167 于 2014-10-8 17:26 编辑

牛X..................

出0入0汤圆

发表于 2014-10-8 17:27:24 | 显示全部楼层
看了下以为作者使用了GUI,原来没有使用,真的很厉害啊.很喜欢这个界面,好好跟大师后面学学

出0入0汤圆

发表于 2014-10-8 18:43:11 | 显示全部楼层
一个好程序,应该是0错误0警告,条理清晰层次分明的。

出0入0汤圆

发表于 2014-12-19 20:45:10 | 显示全部楼层
mark                        

出0入0汤圆

发表于 2014-12-20 11:47:18 | 显示全部楼层
厉害                           

出0入0汤圆

发表于 2014-12-20 12:09:12 | 显示全部楼层
不错 ,有空把我的STM32的板子也利用起来!

出0入0汤圆

发表于 2015-2-14 16:46:01 | 显示全部楼层
Flao软解码收藏了

出0入0汤圆

发表于 2017-1-5 22:20:08 | 显示全部楼层
本帖最后由 CoolBird007 于 2017-1-5 23:03 编辑

我使用了楼主的FLAC解码部份程序,现在情况是Get_One_Block后得到的声道,位数,块大小等信息都正常,但是decoded_buf里面的数据,跟原始WAV上的对不上。好像只有一个声道的数据,,然后到Get_PCM_Buf这里,卡死了。。
另一个声道的数据如何得到呢?

楼主看到的话希望能帮忙解答一下。

出0入0汤圆

发表于 2017-2-21 11:37:22 | 显示全部楼层
MARK,不错的东西!!!

出0入0汤圆

发表于 2017-2-21 13:44:57 | 显示全部楼层
mark 一下  

出0入0汤圆

发表于 2017-4-6 10:47:01 | 显示全部楼层
厉害 ,,,, 收藏了  
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-28 18:27

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

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