OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11629|回复: 25

精简版stm32 MP3播放器开源

[复制链接]

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
发表于 2021-4-28 09:46:14 | 显示全部楼层 |阅读模式
1、mcu:stm32f405rgt6,dac:wm8523,电池730ma,续航9小时
2、解码能力:flac 24bit 192khz(个别文件出现轻微卡顿)
wav:32bit 192khz
MP3:16bit 320kbps
ape:16bit High立体声
3、文件浏览功能和视频播放没写,希望后面的人能够拿去完善
4、仅供学习使用,不能用于商业目的。
5、效果演示:https://www.bilibili.com/video/BV1Cv41177yE?share_source=copy_web
6、网盘链接:
链接:https://pan.baidu.com/s/1NMJykl3_0DcEEnCMxH1hSA
提取码:7vwh
b2dc167adab44aed767ec6aba41c8701a08bfb95.jpg a7d7907eca806538bdc6dc5c80dda144ac348291.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-9-6
在线时间
2 小时
发表于 2021-5-7 21:13:48 | 显示全部楼层
我把这个重新完善下,用THREADX全家桶重写。这个框架有原生UI支持
回复 支持 1 反对 0

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-4-28 09:47:48 | 显示全部楼层
包含源码、pcb和3d打印工程文件,建议pcb增加一个at24c02用于存储音量索引等数据
回复 支持 反对

使用道具 举报

0

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
444
金钱
444
注册时间
2020-10-31
在线时间
129 小时
发表于 2021-4-28 15:15:02 | 显示全部楼层
谢谢分享,做的真不错
回复 支持 反对

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-4-28 20:17:52 | 显示全部楼层
wav_decode_init(u8* fname,__wavctrl* wavx)
这个函数部分有问题,导致一些wav文件无法播放
修改如下:
增加变量
u8 list_off=0;
ChunkLIST *list;
获取fmt块之前,应该先判断是不是list块,是则获取偏移,再获取fmt块
if(riff->Format==0X45564157)//是WAV文件
                        {
                                list=(ChunkLIST *)(buf+12);//获取list块
                                if(list->ChunkID==0X5453494C)//是list块
                                        list_off=list->ChunkSize+8;
                                fmt=(ChunkFMT *)(buf+list_off+12);        //获取FMT块
                                fact=(ChunkFACT *)(buf+list_off+12+8+fmt->ChunkSize);//读取FACT块
                                if(fact->ChunkID==0X74636166||fact->ChunkID==0X5453494C)wavx->datastart=12+8+fmt->ChunkSize+8+fact->ChunkSize+list_off;//具有fact/LIST块的时候(未测试)
                                else wavx->datastart=12+8+fmt->ChunkSize+list_off;  
                                data=(ChunkDATA *)(buf+wavx->datastart);        //读取DATA块
                                if(data->ChunkID==0X61746164)//解析成功!
                                {
                                        wavx->audioformat=fmt->AudioFormat;                //音频格式
                                        wavx->nchannels=fmt->NumOfChannels;                //通道数
                                        wavx->samplerate=fmt->SampleRate;                //采样率
                                        wavx->bitrate=fmt->ByteRate*8;                        //得到位速
                                        wavx->blockalign=fmt->BlockAlign;                //块对齐
                                        wavx->bps=fmt->BitsPerSample;                        //位数,16/24/32位
                                       
                                        wavx->datasize=data->ChunkSize;                        //数据块大小
                                        wavx->datastart=wavx->datastart+8;                //数据流开始的地方.
                                         
                                       
                                }else res=3;//data区域未找到.
                        }
回复 支持 反对

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-4-29 13:18:55 | 显示全部楼层
//完善部分采样率,当然也可以自己算
const u16 I2S_PSC_TBL[][5]=
{
{600 ,369,6,20,0},//6Khz采样率
{800 ,256,5,12,1},//8Khz采样率
{1102,429,4,19,0},//11.025Khz采样率
{1600,213,2,13,0},//16Khz采样率
{2205,429,4, 9,1},//22.05Khz采样率
{2400,418,4, 8,1}, //24khz采样率
{3200,213,2, 6,1},//32Khz采样率
{4410,271,2, 6,0},//44.1Khz采样率
{4800,258,3, 3,1},//48Khz采样率
{6400,295,3, 3,0}, //64Khz采样率
{8820,271,2, 3,0}, //88.2Khz采样率
{9600,344,2, 3,1}, //96Khz采样率
{12800,394,3,2,0}, //128Khz采样率
{17640,361,2,2,0}, //176.4Khz采样率
{19200,393,2,2,0}, //192Khz采样率
};
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-9-6
在线时间
2 小时
发表于 2021-5-3 23:32:55 | 显示全部楼层
可以加一下QQ详聊吗?我打算把这个东西继续做下去,加上DSD的和APE解码。我的QQ 1361137043
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-9-6
在线时间
2 小时
发表于 2021-5-3 23:33:53 | 显示全部楼层
可以加一下QQ详聊吗?我打算把这个东西继续做下去,加上DSD的和APE解码。我的QQ 1361137043
回复 支持 反对

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-5-6 20:06:48 | 显示全部楼层
wjq1361137043 发表于 2021-5-3 23:33
可以加一下QQ详聊吗?我打算把这个东西继续做下去,加上DSD的和APE解码。我的QQ 1361137043

DSD硬解不是已经说了嘛?我有写这个文章。本来就支持APE啊,你换个支持dsd的芯片就完事了,ogg我没加,要加上去也很简单
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-9-6
在线时间
2 小时
发表于 2021-5-7 21:11:08 | 显示全部楼层
风之伤544 发表于 2021-5-6 20:06
DSD硬解不是已经说了嘛?我有写这个文章。本来就支持APE啊,你换个支持dsd的芯片就完事了,ogg我没加,要 ...

好的,我先研究研究,不懂的话可能会再打扰您
回复 支持 反对

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-5-14 21:53:38 | 显示全部楼层
1、添加AT24C02的PCB工程
链接:https://pan.baidu.com/s/1OxVz4P8Gf2LRN1xK8a1hDg
提取码:xrxv
2、更换DAC芯片,PCM5122+AT24C02的PCB工程
链接:https://pan.baidu.com/s/1UupZP1WTSLm--sjjcRB0Iw
提取码:ah6w
3、PCM5122版本的keil5工程
链接:https://pan.baidu.com/s/1K2-JjkNjlrnOpiXjZIExWA
提取码:nvnw

回复 支持 反对

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-5-14 22:00:47 | 显示全部楼层
soliderwork2016 3D打印工程文件
链接:https://pan.baidu.com/s/1Zq-S4CRS6F38aoHm8B7XoA
提取码:9tjn
回复 支持 反对

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-6-5 22:29:42 | 显示全部楼层
应网友要求,对原理图进行说明,并给出部分元件购买链接,方便DIY
1、PCM5122版本资料链接:https://pan.baidu.com/s/1lCRCtdtB58VJPR7LMmhWmQ
提取码:k8bk
2、增加了RDA5807M收音机芯片版本,给出了驱动,但没写应用
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2021-3-17
在线时间
14 小时
发表于 2021-6-19 11:33:35 | 显示全部楼层
你这样做,那些拿去就卖钱的人恨死你了。另一方面,广大音乐爱好者因为你的举动自娱自乐爱死你了,这样的大神哪里找?
膜拜大神!
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2021-3-17
在线时间
14 小时
发表于 2021-6-19 11:57:53 | 显示全部楼层
风之伤544 发表于 2021-6-5 22:29
应网友要求,对原理图进行说明,并给出部分元件购买链接,方便DIY
1、PCM5122版本资料链接:https://pan.b ...

MP3音乐播放器,能支持主流高码流格式,非常棒,必须DIY来玩。
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2021-3-17
在线时间
14 小时
发表于 2021-6-19 11:59:12 | 显示全部楼层
下载了好几个stm32的制作资料,还是跟着楼主DIY靠谱。
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2021-3-17
在线时间
14 小时
发表于 2021-6-19 12:04:54 | 显示全部楼层
楼主,WM8523直接更换成工作于硬件模式的CS4398有没问题?
回复 支持 反对

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-6-20 12:25:26 | 显示全部楼层
kkksssi 发表于 2021-6-19 12:04
楼主,WM8523直接更换成工作于硬件模式的CS4398有没问题?

问题大了去了,外围电路完全不同。何况CS4398都要模拟部分5V才能用。WM8523是自己从3.3V升压的。说实话WM8523包括PCM5122比较偏向大众化听歌习惯,高音低音就没那个突出,跟手机一个发个。CS4398,明显就是偏向高音,人声要清晰得多,低音相对来说就差了些
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2021-3-17
在线时间
14 小时
发表于 2021-6-21 09:48:40 | 显示全部楼层
风之伤544 发表于 2021-6-20 12:25
问题大了去了,外围电路完全不同。何况CS4398都要模拟部分5V才能用。WM8523是自己从3.3V升压的。说实话WM ...

哦,替换主要是指I2S的数据格式,其他外围电路跟电压那些可以改一改。
回复 支持 反对

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-6-22 17:23:02 | 显示全部楼层
kkksssi 发表于 2021-6-21 09:48
哦,替换主要是指I2S的数据格式,其他外围电路跟电压那些可以改一改。

有些不一样,在处理32bit数据时稍微不太一样。可能时因为cs4398只支持到24bit,而其他两款支持到32bit。我还有一个大胆的想法,一般用来做低通滤波器的运放需要提供±电压,不是很方便。然而耳放也是一种运放,比如HT97220/MAX97220是内部产生-5V的,如果用这个耳放按cs4398推荐的滤波电路进行搭建来滤波又会怎么样呢?我拿multisim模拟了一下似乎是可以的。如果闲推力不够,那么还可以再加一个HT97220,这样一个负责滤波,另外一个负责放大。我做的是直接用一个HT97220进行滤波,测试时候发现放大倍数不能太大,会有底噪。不知道是我电源噪音太大,还是缺少低通滤波的原因。你可以试一试
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2021-3-17
在线时间
14 小时
发表于 2021-6-23 11:44:19 | 显示全部楼层
本帖最后由 kkksssi 于 2021-6-23 12:21 编辑
风之伤544 发表于 2021-6-22 17:23
有些不一样,在处理32bit数据时稍微不太一样。可能时因为cs4398只支持到24bit,而其他两款支持到32bit。 ...

好的,我得试试。 STM32F405RGT6这颗芯片蛮贵的,买到手,X宝最便宜都要卖到六十多。
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2021-3-17
在线时间
14 小时
发表于 2021-6-25 17:03:17 | 显示全部楼层
楼主要是能将芯片改成STM32H750VBT6这种就好了,便宜不说,主频去到了480MHz。对放音卡顿应该会好很多。
回复 支持 反对

使用道具 举报

4

主题

43

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
390
金钱
390
注册时间
2016-9-4
在线时间
73 小时
 楼主| 发表于 2021-12-27 21:22:16 | 显示全部楼层
所有的资料都在这了。前四个是最新的
链接:https://pan.baidu.com/s/1lCRCtdtB58VJPR7LMmhWmQ
提取码:k8bk
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2023-8-19
在线时间
5 小时
发表于 2023-8-19 15:37:32 来自手机 | 显示全部楼层
大神能加个QQ不
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2023-8-19
在线时间
5 小时
发表于 2023-9-18 03:59:47 来自手机 | 显示全部楼层
有偿帮忙设计一款数播可以了吗?
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

高级会员

Rank: 4

积分
592
金钱
592
注册时间
2023-8-29
在线时间
38 小时
发表于 2024-2-6 14:05:01 | 显示全部楼层
好东东,学习下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-5-14 18:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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