眾所周知,音樂豐富了人們的日常生活,一個好的音樂播放器有利於提高我們的生活品質。下面就給大家介紹下 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