基于 NXP i.MXRT1010 的音乐播放器方案

       众所周知,音乐丰富了人们的日常生活,一个好的音乐播放器有利于提高我们的生活品质。下面就给大家介绍下 i.MXRT1010 的音乐播放器方案,该方案最大的亮点是就是使用了 NXP i.MX RT1010 高性能低功耗跨界 MCU 作为主控,采用 Cortex-M7 内核,以不到一个美金的价格,频率高达 500 MHz,可以用来音频的编解码、预处理及后处理等。NXP i.MXRT1010最大的特点就是“小身材,大能量”。“小身材”是指该器件采用 LQFP80 封装,特别有利于 PCB 的布线,对整个方案进行优化。“大能量”是说 i.MX RT1010 内置 500MHz 的  CPU内核和较为丰富的外设资源,可以为开发者提供更大的发挥空间。RT1010 的框图如下:

 

         RT1010 有两路 I2S/SAI 接口,SAI模块提供同步音频接口(synchronous audio interface),支持I2S、AC97、TDM、codec/DSP等全双工串行接口,支持帧同步。

 

       其中,SAI-1 用于多声道音频接口,支持 384 kHz/32 位的 2 声道音频输入或 2 声道音频输出。 SAI-3 可用于立体声音频输入和输出,最高可达 384 kHz/32 位。此外, SAI-3 能够直接驱动 MQS 作为低成本音频输出。

       RT1010 芯片中具体的 SAI 功能主要有以下 10 点:

  • 支持带有帧同步的全双工串行接口,如 I2S、 AC97 和 TDM 接口。
  • 发送器带有独立的位时钟和帧同步,支持 4 条数据线。
  • 接收器带有独立的位时钟和帧同步,支持 4 条数据线。
  • 同步模式,用于在发送器和接收器之间共享位时钟和帧同步线。
  • 每个数据行可以支持 1 到 32 字的最大帧大小。
  • 字大小可从 8 位到 32 位 进行编程。
  • 每个发送和接收数据线为 异步 32 × 32 位 FIFO。
  • 支持 FIFO 错误后自动重启,无需软件干预。
  • 支持将 8 位和 16 位数据打包成每个 32 位 FIFO 字(FIFO 打包模式)。
  • 支持将多个数据线 FIFOs 组合成单个数据线 FIFO(FIFO 组合模式)。

 

 

 

      其他有关音频接口以及 SAI 通道的更多知识可以参考 大大通“小肥雪 PLUS”的博文,链接如下:

      i.MX RT 的多通道 SAI 介绍:

 https://www.wpgdadatong.com/blog/detail?BID=B1696

     数字音频基础及 i.MX RT 的音频子系统介绍:

 https://www.wpgdadatong.com/blog/detail?BID=B1165

 

硬件设计说明:

       大联大世平集团推出基于 NXP i.MXRT1010 的 MCU 评估板,该评估板主要由板载的烧录 MCU LPC11U35、SPI Flash、USB 接口、Arduino 接口、SWD 接口、耳机插孔、音频编解码芯片、晶振、LED 灯以、用户按键等部分组成,评估板功能框图如下:

 

 

 

原理图如下所示:

       ① 总体电源图:

 

      ② LPC11U35 板载调试电路:

      ③ 电源电路图:

 
      ④ IO 口配置图:

 

      ⑤ 其他模块图:

 

      ⑥ 音频模块图:

 

      ⑦ Arduino接口图:

 

 

PCB Layout

       ① Top 层:

 

       ② Bottom 层:

 

 

软件设计说明:

开发环境安装

      我们使用的是 Keil uVision5(也可使用 NXP 提供的 MCU 开发环境 MCUXpresso),MCUXpresso 下载地址:https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE

软件 SDK :

     SDK 包下载链接:https://mcuxpresso.nxp.com/en/builde

 
      ① 大联大世平集团可以提供客制化的 API 可以快速上手 ADC、I2C、 SPI、UART、SAI等功能调试。现在用 RT1010 SDK 的 SAI 来进行演示,实现音乐播放,例程的路径如下图所示:

 

      ② 程序如下图所示:

      ③ 引脚配置及初始化:

     



      ④ 将音频文件转化成 16 进制后存入 music[g_index] 中:
   


      ⑤ 判断传输是否完成:

      当传输完成后,音频数据将存入 Flash 中,再经过 I2S 将音频数据传输给 Codec解码并转换成模拟信号,此时可通过耳机插孔外接一个喇叭播放存入的音乐。

     
      ⑥ 外接喇叭播放音乐效果演示:

 

 

 

  • 场景应用图

          喇叭   


             
          MP3

 



  • 展示板照片

 

 

  • 技术文档
          ① 原理图
          ② 数据手册
          ③ BOM 表
          ④ 用户手册

►场景应用图

►展示板照片

►方案方块图

►核心技术优势

① Cortex-M7 内核的低成本高处理能力的微控制           ② 128kB 的紧密耦合 SRAM 存储器实现了仅 20ns 的低延迟响应时           ③ 支持 2 组 SPI 、2 组 I2C 和 2 组 I2S           ④ 支持设定多种波特率的音频文件           ⑤ 免费提供硬件参考设计、软件 SDK、API 以及软硬件技术支持

►方案规格

          ① 两层 Layout 板,尺寸:92 × 123 mm           ② 供电范围:7V~3.6V           ③ 工作温度: 0 ℃ ~ 95 ℃           ④ 支持 SWD 接口           ⑤ EMI:FCC 15B 3M Radiation

技术文档

类型标题档案
硬件Datasheet
硬件BOM
操作手册IMXRT1010 reference manual