我想做个MP3,要怎么入手?_嵌入式

从我更新的频率,大家应该猜出来了,最近有点忙。忙完了设备调试的工作,又来了个画图的活。本来改动不大,但怎料...哎,一言难尽。

今天回答一个粉丝的提问:

我想做个MP3,要怎么入手?_芯片_02

看完这个回复,我依然没明白他到底想做哪部分。算了,随便写写吧。

如果是想自己做解码的部分的话,略微还是有些难度,简单说下,欢迎补充。假设你是一个有单片机基础,但是对MP3以及相关知识不太了解的人,那么首先,要明白一个MP3的结构由哪些部分组成,如下:

我想做个MP3,要怎么入手?_stm32_03


我想做个MP3,要怎么入手?_芯片_04

存储部分

我想做个MP3,要怎么入手?_芯片_05

可以选择优盘或者TF卡之类的,优盘的话驱动芯片可以选择CH375,TF卡或者SD卡的话,一般是SPI接口就能驱动。但无论这两种之间的哪一种,你都要了解文件系统,因为你要查找存储器中的MP3格式的文件,文件系统个人建议FATFS,网上资料很多,百度去吧。


我想做个MP3,要怎么入手?_芯片_06

解码芯片

我想做个MP3,要怎么入手?_芯片_07

解码芯片这里有两个选择,一个是VS1003B,一个是单片机自身。

VS1003B

先说VS1003B,这个芯片出现很多年了,某宝一搜一大堆,网上的相关资料也很多。这是个具有DSP内核的编解码芯片,不光能播放MP3,还能录音,貌似还可以用它做VOIP。如下:

我想做个MP3,要怎么入手?_嵌入式_08

价格从20到40都有,随意。

单片机自身

像STM32F103系列里,有的型号是自带IIS接口的,这样的话可以把解码工作在单片机内部进行处理:

我想做个MP3,要怎么入手?_嵌入式_09

MP3解码,建议使用helix库(别的我也不知道),网上资料很多,放心用。比较占资源,据说编译后要用40K左右的RAM。

IIS接口是这样的:

我想做个MP3,要怎么入手?_stm32_10

有的时候是三条线,有的时候是四条线,取决于后面的音频DAC芯片是否需要MCLK。

然后外接的音频DAC我知道的有两种,一种是CS4344:

我想做个MP3,要怎么入手?_单片机_11

这个芯片工作时必须提供一个MCLK,而且必须要和SCLK同步,也就是说MCLK不能是外部晶体提供的,必须是处理器同时提供MCLK和SCLK。

我在数码之家论坛上,看到过有人用STM32F103的IIS外接CS4344,做了一个MP3,因为4344需要的时钟频率比较奇葩,所以作者把STM32小小的超频到了80MHZ,然后输出了一个频率接近的MCLK。

另一个芯片是WM8978,这个芯片也是比较强大的:

我想做个MP3,要怎么入手?_芯片_12

虽然标的是MP3模块,它也确实是MP3模块,不过送的例程里,是对WAV文件进行的解码,这种文件格式比较简单,不需要使用helix库。想要用它解码MP3文件的话,多上网搜搜吧。

对了,它虽然也需要MCLK信号,但是不必和SCLK信号同步。也就是说可以外接一个晶振给它提供时钟信号,同时芯片内部还有PLL电路,可以对输入的时钟进行倍频、分频,比较灵活。

我想做个MP3,要怎么入手?_单片机_13


我想做个MP3,要怎么入手?_sms_14

处理器

我想做个MP3,要怎么入手?_单片机_15


如果用的是VS1003B的话,增强型51,或者STM32就可以了。因为数据量比较大,该芯片是SPI接口的,所以尽量使用硬件SPI。如果是WM8978这种,需要IIS接口的,那就选带有IIS接口的处理器,例如STM32F103VET或者STM32F407都可以。


我想做个MP3,要怎么入手?_嵌入式_16

功放

我想做个MP3,要怎么入手?_芯片_17


TDA2003?

网上很多,不解释


我想做个MP3,要怎么入手?_单片机_18

供电

我想做个MP3,要怎么入手?_stm32_19


如果用的是锂电池,尽量带一个充电电路吧,也不复杂。TP4056,TP4057?

我想做个MP3,要怎么入手?_sms_20

基本就这些了吧。当然,如果你做到一半,发现有心无力,买个现成的MP3模块吧。这东西现在很成熟,没多少钱:

我想做个MP3,要怎么入手?_sms_21

开心就好~~~


关注公众号,后台回复「​1024​」获取学习资料网盘链接。

我想做个MP3,要怎么入手?_嵌入式_22