EzCode4K與SPI Flash語音播放
SPI是一種串列外設界面,通常稱爲“同步串列外設界面”,是Motorola定義的一種高速的,全雙工,同步的通訊匯流排,並且在晶片的Pin腳上只佔用四根線,節約了晶片的Pin腳,同時爲PCB的佈局上節省空間,提供方便,正是出於這種簡單易用的特性,現在越來越多的晶片(EEPROM,FLASH,即時時鐘,AD轉換器等)使用了這種通訊協定。SPI界面主要包含有4條線:串列時脈(SCK)、串列資料輸入(SDI)、串列資料輸出(SDO)和晶片選擇(CS)。
EzCode4K是針對AM4K IC研發的一套全新的綜合開發系統,它簡化了開發流程並爲使用者提供了強大的功能。播放外掛SPI Flash音效檔案就是其中的功能之一。本文介紹使用EzCode4K播放外掛SPI Flash中語音的過程。
目前支援的SPI Flash型號: W25X10/20/40/80(Winbond);MX25L16/32/64(Macronix)。
播放SPI Flash語音設計與實現
1、 用EzCode4K新增專案檔案,在[Project]頁面上填寫諸如客戶名稱、程式編號、程式名稱以及一些需要注明的訊息等。
2、 在[Option]頁面選擇AM4K的型號,並設定SPI通訊項:
1)允許SPI通訊:SPI Communication爲Enable。
2)指定通訊所用I/O Pin:SPI CS Pin、SPI CLK Pin、SPI DIO Pin與SPI DO Pin必須定義在同一組I/O Port上,如圖1,圖中使用PRA端口爲通訊口。
圖1
注: 上述SPI CS Pin, SPI SCK Pin, SPI SDI Pin and SPI SDO Pin分別對應圖1中 SPI CS Pin, SPI CLK Pin, SPI DIO Pin and SPI DO Pin。
3)選擇SPI flash裡Voice檔案編碼品質:SPI Voice Quality。
Voice檔案編碼品質選擇有3種:
Low: Bit/Sample = 4;
Mid: Bit/Sample = 5;
High: Bit/Sample = 6。
High的音質最好,但語音佔容量最多;Low的音質比High、Mid差,但佔容量最小。使用時應根據實際來選擇。
SPI容量 = 語音秒數 * 採樣率 * 編碼品質。
例如:一個500秒的聲音,採樣率爲8000,選擇編碼品質爲Low(4Bit/Sample),那麽這個聲音需要佔用SPI Flash的容量爲500 * 8000 * 4 = 16000000bit。
注:SPI Voice Quality值必須與SPI Flash音效檔案編碼時Quality值保持一致。
3、
製作SPI Flash語音檔案:
在EzCode4K工具列中有個SPI Flash語音編碼工具,如圖2所示:
圖2
點選上圖SPI Encoder工具列按鈕,彈出SPI Encoder主介面如圖3所示:
圖3
New: 新增一個新的SPI Flash語音專案檔。
Open: 開啟一個SPI Flash語音專案檔。
Save: 儲存目前的SPI Flash語音專案檔,副檔名爲SPI。
SaveAs: 將目前的SPI Flash語音專案檔另存一個名字。
Add: 增加語音檔案。
Insert: 在語音的中間插入一個語音檔案。
Delete: 刪除一個語音。
Clear: 清除全部語音檔案。
Build: 編譯目前的SPI Flash語音專案檔,編譯後產生一個(xxx_spi.bin)檔,xxx_spi爲專案檔案名。
SPIWriter: Alpha燒錄工具。
編譯生成的Bin檔案可以透過使用通用型燒錄器(比如Hi-Lo燒錄器)燒錄到SPI Flash中。
另:Alpha提供有一套SPI Flash Writer燒錄工具,配合Alpha製作的SPI Flash Demo Board,在編寫除錯時使用,也是非常方便的。
4、 SPI Flash Writer工具:
1)SPI Flash燒錄器及Demo Board,如圖4所示:
圖4
2)SPI Flash燒錄軟體使用:
點選圖3 啓動SPI Writer按鈕,彈出SPI Flash Writer主介面如圖5所示:
圖5
打開Open檔案xxx_spi.bin 將其Download到SPI Flash中即可。
5、編寫程式:
[In_State]
Prb0 Prb1
In_1 P1 P2
PowerOn: In_1
P1: R1=0x0, R0=0x1, SPIPlayV(R1:R0) ;Prb0 Input
P2: R1=0x0, R0=0x2, SPIPlayV(R1:R0) ;Prb1 Input
附件內容[4K_SPI_Demo.rar]:
AM4K_SPI_Demo.Bin AM4K的程式Bin檔
AM4K_SPI_DEMO_SPI.Bin SPI的語音檔
參考電路圖:
注: 上述SPI CS Pin, SPI SCK Pin, SPI SDI Pin and SPI SDO Pin分別對應圖1中 SPI CS Pin, SPI CLK Pin, SPI DIO Pin and SPI DO Pin。