飛凌嵌入式FET1052-C解決方案 實(shí)現(xiàn)7.1聲道FLAC播放器

原創(chuàng) 2020-03-03 17:19:00 RT1052 iMXRT1052 RT1050

本文介紹了采用飛凌嵌入式FET1052-C核心板快速的實(shí)現(xiàn)7.1聲道FLAC播放器。核心板CPU采用i.MX RT1052,具備528MHz的主頻,其Arm Cortex-M7核心支持三個(gè)SAIs和SAI1有四個(gè)傳輸(TX)數(shù)據(jù)線,支持7.1環(huán)繞聲數(shù)據(jù)傳輸。CPU的高性能和四線SAI為本方案的實(shí)現(xiàn)提供支持。

i.MX RT1052是NXP i.MX RT1050系列跨界處理器中性價(jià)比較高的一款,所謂跨界指的是其兼具M(jìn)PU的高性能和MCU的低功耗與實(shí)時(shí)性。

1、i.MX RT1052 SAI特性介紹

?具有獨(dú)立位時(shí)鐘和幀同步的發(fā)送器,支持四條數(shù)據(jù)線。

?接收器與獨(dú)立位時(shí)鐘和幀同步,支持四數(shù)據(jù)線。

?每個(gè)數(shù)據(jù)線支持最大32字的幀大小。

?字大小從8位到32位可編程。

?幀的第一個(gè)字和其余字大小分別可配置。

?每個(gè)傳輸和接收數(shù)據(jù)線支持異步32×32位FIFO。

?支持在FIFO錯(cuò)誤后自動(dòng)重啟,無(wú)需軟件干預(yù)。

?支持將8位和16位數(shù)據(jù)打包到每個(gè)32位FIFO字中。

?支持將多數(shù)據(jù)線FIFOs組合成單數(shù)據(jù)線FIFO。

2、F LAC 解碼

FLAC(Free Lossless Audio Codec)是一種類似于MP3但無(wú)損的音頻格式,這意味著FLAC中的音頻壓縮沒(méi)有任何質(zhì)量損失。

我們所說(shuō)的FLAC是自由(free)的不僅僅意味著你可以不花錢而得到它。更重要的是FLAC的文件格式是對(duì)公眾完全開(kāi)放的,你可以以任何目的使用它(FLAC 項(xiàng)目只FLAC保留維護(hù) FLAC 格式規(guī)格和確認(rèn)兼容特性的權(quán)利),F(xiàn)LAC的文件格式和編碼/解碼的實(shí)現(xiàn)方式都不受任何已知專利的限制。還有,所有的源代碼都在開(kāi)放源代碼的授權(quán)方式下可以得到。它是第一個(gè)真正開(kāi)放和免費(fèi)無(wú)損音頻格式。

八個(gè)頻道分配是:前左、前右、前中、LFE、后左、后右、左、右。

FLAC在i.MX RT1052上的解碼完全是通過(guò)軟件實(shí)現(xiàn)的。

3、方案實(shí)現(xiàn)

 3 .1 硬件實(shí)現(xiàn)原理

基于RT1052設(shè)計(jì) 7.1聲道系統(tǒng)架構(gòu).png

圖1  7.1聲道系統(tǒng)架構(gòu)


RT1052核心板從SD卡和USB解碼FLAC文件并將數(shù)據(jù)傳輸?shù)絊AI1, SAI1有四條傳輸數(shù)據(jù)線(一條數(shù)據(jù)線包含兩個(gè)數(shù)據(jù)通道)。然后,Codec芯片CS42448 獲取4個(gè)數(shù)據(jù)線和時(shí)鐘來(lái)處理數(shù)據(jù)并使用DACs向后級(jí)功放傳輸8個(gè)聲道的模擬音頻信號(hào)。

筆者帶著大家來(lái)熟悉使用PINMUX表選擇核心板上的引腳,用于制作原理圖。

首先打開(kāi)“**_PINMUX.xlsx”文件,表頭中Pin Name是引腳的名稱,用這個(gè)名字可以從i.MX RT1052 CPU手冊(cè)中找到關(guān)于引腳的詳細(xì)說(shuō)明;Coords是CPU的球號(hào)坐標(biāo);Alt0~7是引腳的8種功能描述。

那么我們以本文中最關(guān)鍵的SAI1功能做示例,從表中可以找到支持4個(gè)數(shù)據(jù)線的SAI1,如下圖2:

iMXRT1052 PINMUX表.jpg

圖2

根據(jù)這些CPU球號(hào),就可以在飛凌提供的OK1052-C底板原理圖中找到這些引腳在底板連接器上的位置(如圖3),不過(guò)可以發(fā)現(xiàn),這幾個(gè)引腳已經(jīng)被QSPI所占用,而QSPI在核心板上用做了QSPI的ROM,所以不建議使用這幾個(gè)引腳了。

圖3

換一組其它引腳,可以找到另外一組支持4 TX線的SAI1引腳,如下圖:

圖4

同樣的方法,可以在OK1052-C底板原理圖中找到引腳所在位置,通過(guò)圖5可以看出,目前飛凌默認(rèn)配置的是LCD的功能,但是本方案用不到LCD,可以將其用于SAI1的。

圖5

按照表格中引腳功能名稱,修改原理圖標(biāo)號(hào)如下:

圖6

其它引腳的配置也是同樣的方法,如果所用功能和飛凌OK1052-C底板一致的,可以不修改其功能引腳位置,這樣也便于程序的修改、開(kāi)發(fā)。

3 .2 軟件實(shí)現(xiàn)流程


S1、CPU、功能引腳和時(shí)鐘初始化,如USDHC、USB、IIC和SAI。

S2、看門狗初始化,以防止程序錯(cuò)誤。

S3、使用IIC實(shí)現(xiàn)CS42448編解碼器的初始化和配置。

S4、創(chuàng)建和初始化一個(gè)新的FLAC流解碼器。

S5、檢測(cè)FLAC文件的信息以配置SAI TX。

S6、解碼過(guò)程中的音頻回放。

S7、當(dāng)一個(gè)音頻文件結(jié)束,下一個(gè)文件開(kāi)始(到步驟4)。如果SD卡上的所有文件都播放完成后,從頭播放音頻。

4、附件說(shuō)明

4.1:《Sch》文件夾,參考原理圖源文件。

4.2:《CDB42448_DB2.pdf》CS42448評(píng)估板參考手冊(cè)

4.3:《CS42448_F5.pdf》CS42448芯片手冊(cè)

4.4:《FET1052-C&FLAC7.1player_PINMUX.xlsx》FET1052-C核心板引腳配置表

附件下載地址:https://pan.baidu.com/s/17VXLkYe2GSJVlQTP4YlJMA


     i.MX RT1052核心板詳細(xì)介紹以及關(guān)于RT1052的方案及資料您可聯(lián)系頁(yè)面左側(cè)在線客服人員。


相關(guān)產(chǎn)品 >

  • OK1052-C開(kāi)發(fā)板

    飛凌提供的i.MXRT105x系列單片機(jī),iMXRT1052單片機(jī)基于NXP Cortex-M7 i.MX RT1052跨界處理器設(shè)計(jì),底板+核心板分離結(jié)構(gòu),開(kāi)發(fā)更簡(jiǎn)單,imxrt1052核心板僅售68元,歡迎致電400-699-6866咨詢。推薦iMXRT單片機(jī),性價(jià)比高。 了解詳情
    OK1052-C開(kāi)發(fā)板
  • OKMX6ULL-C開(kāi)發(fā)板

    40*29mm,雙網(wǎng)雙CAN,8路串口| i.MX6ULL開(kāi)發(fā)板是基于NXP i.MX6ULL設(shè)計(jì)開(kāi)發(fā)的的一款Linux開(kāi)發(fā)板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對(duì)板連接器,適應(yīng)場(chǎng)景豐富。 了解詳情
    OKMX6ULL-C開(kāi)發(fā)板

推薦閱讀 換一批 換一批