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

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

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

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


存储部分

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


解码芯片

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

VS1003B

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

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

单片机自身

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

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

IIS接口是这样的:

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

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

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

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

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

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

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

处理器

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

功放

TDA2003?

网上很多,不解释

供电

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

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

开心就好~~~


推荐阅读:

专辑|Linux文章汇总

专辑|程序人生

专辑|C语言

我的知识小密圈

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

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

我想做个MP3,要怎么入手?相关推荐

  1. 想做C++软件开发工程师,我该如何去学习?

    想做C++软件开发工程师,我该如何去学习? 因为C++是一个兼具性能和抽象模型结合体,除了能够保证性能之外,还能用当今最流行的面向对象编程模型,而且生态系统由于这些年的积累,建设的也非常完善,所以在高 ...

  2. 想做编程者必看:三朝元老经验

    这篇文章本来已经整理好了,结果不巧这里的blog出问题了,现在就没那么详细的整理了.整篇文章并非全部作者原创,比较多的更早以前的师兄师姐写的经验,还有一些是网上的热心读者的作品.黑体的部分是我的说明或 ...

  3. 我想做一个课程表系统利用PHP+MYSQL+HTML实现课表的展示,但是不知道如何实现

    我想做一个课程表系统利用PHP+MYSQL+HTML实现课表的展示,但是不知道如何实现 1.课表不是唯一一个课表. 2.通过录入的课表信息展示在HTML表格 想实现的效果如图: 收藏 (1) 分享 举 ...

  4. 市场分析文档(从0到1开始设计产品,明确你想做的产品的方向)

    市场分析文档(从0到1开始设计产品,明确你想做的产品的方向) 选定你想做的或者几个感兴趣的市场领域进行粗略的分析,然后选择一个有明确切入点,或者熟悉的行业进行详细的分析,输出该市场领域的市场分析文档. ...

  5. 想学ui设计从哪里入手?基础怎么入门学习UI设计呢?

    对于零基础的小伙伴们来说,学习UI设计的头绪是比较大的,虽然有很多的书籍和视频可以供参考,但是很多人缺乏规律性,缺乏自学精神.因此零基础学习UI设计就相当吃力了.怎么样学习决定了你将来学完后的成果.优 ...

  6. 如何聪明地拒绝领导给自己安排的不想做的工作?

    纲领: 1 极其麻烦的任务,使用[场景构建法]拒绝 2 越摊越大的饼,使用[策划案法]拒绝 3 A领导擅自改B领导决策,使用[打个招呼法]拒绝 接下来我将为大家逐一破解上述困境: 1 极其麻烦的任务, ...

  7. 想做自媒体还是要趁早,充分掌握平台规则,也能轻松上手

    自媒体最近几年可以说是发展非常迅速,平台规则也日益完善,审核条件也越来越严格,所以说想做自媒体还是要趁早,对于新手来说,现在进入自媒体领域还是有一定难度的,如果不能提前做规划,充分掌握平台规则,那么想 ...

  8. 写给那些想做程序员和不想做程序员的人

    <写给那些想做程序员和不想做程序员的人> 首先说一说进入计算机专业的目的,我个人是因为十分喜欢IT业,很喜欢折腾电脑,所以在填报志愿是毫不犹豫的在报了的所有的学校都填写的计算机专业,梦想着 ...

  9. “入微”背后,微信想做的是新时代“超级门户”

    2022年的微信公开课落幕,意料之外而又在情理之中的是,张小龙没有出现,甚至连视频也没有,取而代之的是视频号业务成了演讲上"最靓的仔". 如果拉长时间线看,视频号的上位并不令人意外 ...

最新文章

  1. 无法显示验证码去掉html,后台登陆验证码无法显示
  2. docker可视化管理工具对比 DockerUI Shipyard Rancher Portainer
  3. JavaScript(数据类型、字符串操作)
  4. AtCoder AGC001F Wide Swap (线段树、拓扑排序)
  5. 数据流图中flow不显示文字_利用Flow来进行旋转流体仿真
  6. c语言中注释部分二侧分界符为,C语言常见复习题(选择填空)及参考答案
  7. python机器学习、数据分析常用第三方库(实时更新)
  8. ubuntu ifconfig只有lo没有ens33的问题
  9. 机器学习必备宝典-《统计学习方法》的python代码实现、电子书及课件
  10. Android用第三方jar包ClassNotFoundException:XXX in loader dalvik.system.PathClassLoader[/app/XX.apk]...
  11. 怎么用鼠标选中java中table的某一行_为什么同事的工作效率那么高?学会这些鼠标双击技巧,你也可以的...
  12. python水仙花数的编程讲解_《scratch编程+数学》课程:找寻水仙花数
  13. python进阶到高阶大全(强烈推荐)
  14. MVC项目使用easyui的filebox控件上传文件
  15. Dubbo负载均衡策略之最小活跃策略
  16. 郑州大学计算机考研拟录取名单,郑州大学2017年统考硕士生拟录取名单2(17)
  17. 天云大数据_【案例分享】天云大数据最佳实践系列之——信用评分模型
  18. 学计算机专业好还是学医专业好,学计算机好还是学医好 程序员的建议就是学医你认为呢...
  19. 研发提效:通过设计稿自动生成前端代码
  20. The tomcat server configuration at /sever/tomcat v9.0 localhost-config is.......错误解析

热门文章

  1. 提升你的开发效率,10 个 NPM 使用技巧
  2. 多个相同参数表单提交
  3. 《.NET最佳实践》与Ext JS/Touch的团队开发
  4. RedHat6.2 x86手动配置LNMP环境
  5. WCF简单教程(6) 单向与双向通讯
  6. Windows Server 2008操作系统安装手册
  7. 武侠乂怎么修改服务器,武侠乂怎么操作 按键功能详细介绍
  8. Linux 修改系统编码
  9. 深度学习之生成式对抗网络 GAN(Generative Adversarial Networks)
  10. jeecms附件标签用法