中科藍訊 AB5301A 外掛 FLASH MUSIC 功能示例
前言
今天給大家分享一下中科藍訊 AB5301A 外掛 Flash 的調試過程,使 AB5301A 讀取 Flash 播放音樂。本文從平臺準備開始介紹,再介紹 AB5301A SPI1 的配置,最后驗證功能。希望對大家進行調試外掛 Flash MUSIC 功能模式時有所幫助。
一、平臺準備
① 使用的 SDK 版本為:SDK_AB530X_V06X_S7148_20220224;
② 使用的 Flash 芯片型號為:W25Q128JV。還需把音頻 bin 文件燒錄進 Flash 芯片,轉化音頻為 bin 文件用到的軟件是 ABTools;燒錄 bin文件用到的軟件是 Minpro100B;操作流程在此不做贅述。
③ 使用的硬件樣機是 AB5301A 開發板,原理圖連接如下:


注意,上圖中的 R4 開發板默認是不焊接的,此處要手動焊接好;開發板上 MISO、MOSI、CLK、CS 腳是沒有連接到 GPIO 的,可以通過杜邦線,從 J26、J27 引到使用的 GPIO;本示例使用的是 SPI1,引腳分配為,CSA4 PA5:MISO PA6:CLK PA7:MOSI。
二、SPI1 初始化
1、寄存器介紹
① FUNCMCON1
端口功能映射寄存器;根據本示例所使用的引腳,應把各引腳映射到 G2,如此藍牙芯片就可以知道是把 PA5、PA6、PA7 配置為 SPI1,因此在選擇 SPI 引腳時應注意各引腳需為同一組,如此處使用的三個引腳皆是 G2 組。實現映射配置的是 FUNCMCON1 的 12:15 位。
② SPI1CON
SPI1 控制寄存器;該寄存器包含了 SPI1 使能,主從模式選擇,時鐘極性,時鐘相位,中斷使能等的配置,更具體配置可參考 ab53xx_usermanual。
③ SPI1BAUD
SPI1 波特率設置寄存器;Baud Rate = Fsys clock / (SPI_BAUD+1)。
④ SPI1CPND
SPI1 清除掛起寄存器;對該寄存器第 16 位寫 1,清除 SPI1 掛起標記。
⑤ SPI1BUF
SPI1 接收/發送數據寄存器。
2、SPI1 初始化函數

spi1_init() 函數最后由 exspiflash_init() 函數調用,放到 bsp_sys_init() 系統初始化函數中如下位置進行初始化:

三、SDK 準備
在上一步中,我們已經把 AB5301A 的SPI1 配置好,SDK 默認已經把 SPI 通信需要用到的讀 ID 函數,發送 1 字節函數,接收 1 字節函數寫好,詳細可以參見 bsp_spiflash1.c 文件,所以接下來做的就是把 SDK MUSIC 功能模式相關的宏做修改。
1、打開 MUSIC 功能


2、修改默認打印口


如果打印口默認是 PA7,應修改為 PB3,因為本示例中的 SPI1 引腳用到了 PA7。
3、外接 SPIFLASH 配置


EX_SPIFLASH_SUPPORT 選擇 Flash 支持音樂輸出功能;SPIFLASH_ID 配置 Flash 的 ID,ID 可以通過 Flash 的數據手冊獲得。 設置 SPIFALSH_MUSIC_PLAY_REC 為 0,關閉 FUNC_EXSPIFLASH_MUSIC 模式下播放錄音示例:

四、功能驗證


接通電源,再通過 X-Link 連接AB5301A 的 PB3 引腳,開發板切換到 MUSIC 功能模式,則打開 Downloader 上位機后會有如上打印,現 flash id 正確讀取,且讀取到 Flash total num 總曲目為 3。默認情況下音樂會自動播放,接上耳機或者功放喇叭即可聽到音樂。 中科藍訊 AB5301A 的 MUSIC 功能模式介紹到這里,希望可以在大家進行 外掛 Flash 調試時幫助到大家。如有錯誤歡迎大家批評指正。如果大家還有什么其他的問題或者功能想要詢問,亦可以在評論區中提出,可以共同探討,一起進步。
五、參考文檔:
1、ab53xx_usermanual
2、ab53xx 開發板原理圖
3、ab5301a_datasheet.pdf
4、W25Q128JVSIQ 數據手冊
5、AB5301A中科藍訊聲霸藍牙音箱插卡U盤光纖參考原理圖下載_資料下載_SUNSHINE SILICON
6、AB5301A中科藍訊藍牙5.4 BLE雙模支持插卡U盤光纖內置雙邊通話K歌藍牙音箱IC_電子元件_SUNSHINE SILICON