痞子衡嵌入式:基於恩智浦i.MXRT1010的MP3音樂播放器(RT-Mp3Player)設計


  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是基於i.MXRT1011的MP3播放器參考設計

  i.MXRT1011是恩智浦i.MXRT四位數系列的入門型號,雖然是入門級,可也是500MHz主頻的大殺器。

  為了讓大家見識到i.MXRT1011的能量,特給大家分享一個基於i.MXRT1011-EVK開發板的MP3播放器設計,mp3源文件從U盤獲取,使用Helix MP3庫進行軟解碼,最後將解碼出的pcm數據通過板載Codec(WM8960)連耳機進行播放。

  功能模組簡圖:

  這個設計目前還處於初級階段,但已經實現了最核心的mp3文件解碼與播放。設計主要參考了SDK包里的兩個常式:通過USB讀取U盤中的音頻源文件(usb_host_msd_fatfs),使用I2C對Codec進行設置後使用SAI和DMA進行數據的傳輸(sai).

SDK\boards\evkmimxrt1010\usb_examples\usb_host_msd_fatfs\bm
SDK\boards\evkmimxrt1010\demo_apps\sai

  此外,核心mp3解碼功能是使用了正點原子移植好的Helix MP3解碼庫。因為一些歷史原因,我們在Helix Community官網下載不到源碼了,這裡感謝原子哥的開源。

  全部硬體清單:

1. MIMXRT1010-EVK (Rev.C)
2. U盤 (Micro-USB介面)
3. 耳機(3.5mm介面),或音箱
4. USB線(連主機供電)

  實物連接圖:

  程式碼是開源的,會持續添加功能(考慮加入Arduino介面的觸控螢幕,實現GUI),歡迎感興趣的小夥伴加入一起開發!