查看: 6921|回复: 6

[分享] 使用i.MXRT1010设计一个MP3播放器(Helix MP3解码库)

[复制链接]
  • TA的每日心情
    开心
    2025-7-11 08:53
  • 签到天数: 301 天

    连续签到: 2 天

    [LV.8]以坛为家I

    3918

    主题

    7536

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    39903
    最后登录
    2025-8-19
    发表于 2020-10-28 09:30:07 | 显示全部楼层 |阅读模式
    使用i.MXRT1010设计一个MP3播放器(Helix MP3解码库)


    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是基于i.MXRT1011的MP3播放器参考设计。


    i.MXRT1011是恩智浦i.MXRT四位数系列的入门型号,虽然是入门级,可也是500MHz主频的大杀器。


    为了让大家见识到i.MXRT1011的能量,特给大家分享一个基于i.MXRT1011-EVK开发板的MP3播放器设计,mp3源文件从U盘获取,使用Helix MP3库进行软解码,最后将解码出的pcm数据通过板载Codec(WM8960)连耳机进行播放。


    功能模块简图:
    1.png
    这个设计目前还处于初级阶段,但已经实现了最核心的mp3文件解码与播放。设计主要参考了SDK包里的两个例程:通过USB读取U盘中的音频源文件(usb_host_msd_fatfs),使用I2C对Codec进行设置后使用SAI和DMA进行数据的传输(sai).
    1. SDK\boards\evkmimxrt1010\usb_examples\usb_host_msd_fatfs\bm
    2. SDK\boards\evkmimxrt1010\demo_apps\sai
    复制代码
    此外,核心mp3解码功能是使用了正点原子移植好的Helix MP3解码库。因为一些历史原因,我们在Helix Community官网下载不到源码了,这里感谢原子哥的开源。


    全部硬件清单:
    1. 1. MIMXRT1010-EVK (Rev.C)
    2. 2. U盘 (Micro-USB接口)
    3. 3. 耳机(3.5mm接口),或音箱
    4. 4. USB线(连主机供电)
    复制代码
    实物连接图:
    2.png
    代码是开源的,会持续添加功能(考虑加入Arduino接口的触摸屏,实现GUI),欢迎感兴趣的小伙伴加入一起开发!
    1. 代码仓库:https://github.com/JayHeng/RT-Mp3Player
    复制代码
    关于这个参考设计,你有任何想知道的,欢迎留言。






    qiandao qiandao
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    6

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    452
    最后登录
    2023-5-31
    发表于 2020-11-2 16:01:38 | 显示全部楼层
    66666666666666666666666666666
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    6

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    452
    最后登录
    2023-5-31
    发表于 2020-11-2 16:48:51 | 显示全部楼层
    好像编译不过,是IAR IDE?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    6

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    452
    最后登录
    2023-5-31
    发表于 2020-11-2 18:33:30 | 显示全部楼层
    楼主链接文件怎么改的?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-24 18:42
  • 签到天数: 206 天

    连续签到: 1 天

    [LV.7]常住居民III

    19

    主题

    316

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2792
    最后登录
    2025-3-19
    发表于 2020-12-30 16:45:51 | 显示全部楼层
    测试了一下有点问题, 望大牛解惑!

    插上U盘之后打印信息

    插上U盘之后打印信息

    U盘中有一首MP3歌曲

    U盘中有一首MP3歌曲
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-24 18:42
  • 签到天数: 206 天

    连续签到: 1 天

    [LV.7]常住居民III

    19

    主题

    316

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2792
    最后登录
    2025-3-19
    发表于 2020-12-30 16:52:55 | 显示全部楼层
    teddy1980 发表于 2020-11-2 16:48
    好像编译不过,是IAR IDE?

    需要用 IAR5,否则打开之后 工程配置会有问题 包括路径 及 配置宏。
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-24 18:42
  • 签到天数: 206 天

    连续签到: 1 天

    [LV.7]常住居民III

    19

    主题

    316

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2792
    最后登录
    2025-3-19
    发表于 2020-12-31 10:00:41 | 显示全部楼层
    teddy1980 发表于 2020-11-2 16:48
    好像编译不过,是IAR IDE?

    IAR 文件路径配置
    $PROJ_DIR$/..
    $PROJ_DIR$/../../../../../../middleware/fatfs/source
    $PROJ_DIR$/../../../..
    $PROJ_DIR$/../../../../../../CMSIS/Include
    $PROJ_DIR$/../../../../../../devices
    $PROJ_DIR$/../../../../../../middleware/usb
    $PROJ_DIR$/../../../../../../middleware/usb/osa
    $PROJ_DIR$/../../../../../../middleware/usb/include
    $PROJ_DIR$/../../../../../../middleware/usb/host
    $PROJ_DIR$/../../../../../../middleware/usb/host
    $PROJ_DIR$/../../../../../../middleware/usb/include
    $PROJ_DIR$/../../../../../../middleware/usb/osa
    $PROJ_DIR$/../../../../../../middleware/usb/phy
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/drivers
    $PROJ_DIR$/../../../../../../middleware/usb/host
    $PROJ_DIR$/../../../../../../middleware/usb/host/class
    $PROJ_DIR$/../../../../../../middleware/usb/host/class
    $PROJ_DIR$/../../../../../../middleware/fatfs/source
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/drivers
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/drivers
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/drivers
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/drivers
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/drivers
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/xip
    $PROJ_DIR$/../../../../xip
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/utilities/str
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/utilities/debug_console
    $PROJ_DIR$/../../../../../../components/uart
    $PROJ_DIR$/../../../../../../components/serial_manager
    $PROJ_DIR$/../../../../../../components/serial_manager
    $PROJ_DIR$/../../../../../../components/lists
    $PROJ_DIR$/../../../../../devices/MIMXRT1011/drivers
    $PROJ_DIR$/../../../../../devices/MIMXRT1011/drivers
    $PROJ_DIR$/../../../../../devices/MIMXRT1011/xip
    $PROJ_DIR$/../../../xip
    $PROJ_DIR$/../../../../../../middleware/emwin/emWin_Config
    $PROJ_DIR$/../../../../../../middleware/emwin/emWin_header
    $PROJ_DIR$/../../../../../../components/ili9341
    $PROJ_DIR$/../../../../../../components/ft6x06
    $PROJ_DIR$/../../../../../../devices/MIMXRT1011/cmsis_drivers
    $PROJ_DIR$/../../../../../../CMSIS/Driver/Include

    定义宏
    USB_STACK_USE_NONCACHE_SECTION=1
    DEBUG
    XIP_EXTERNAL_FLASH=1
    XIP_BOOT_HEADER_ENABLE=1
    CPU_MIMXRT1011DAE5A
    USB_STACK_BM
    PRINTF_ADVANCED_ENABLE=1
    OCRAM_IS_SHAREABLE
    ARM_MATH_CM7
    SDK_I2C_BASED_COMPONENT_USED=1
    BOARD_USE_CODEC=1
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-20 06:22 , Processed in 0.107395 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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