手機和弦芯片C520原理及播放MIDI音樂(lè )文件的流程
C520與S3C4510B可以是并行接口或者串行接口,但是并行接口比串行接口數據傳輸速度快,因此在本設計中采用并行接口。芯片應用電路如圖2所示。
在這個(gè)電路中,C520的CS_N用S3C4510B的I/O P0進(jìn)行控制。其實(shí)如果在片選信號線(xiàn)夠用的情況下,可選擇S3C4510B中ROM/SRAM/Flash片選信號 Nrcs[5∶0]中的任何一根信號線(xiàn),這樣可以節省1根GPIO;同理,如果不想再控制C520復位,可以將其復位信號與S3C4510B的復位線(xiàn)nRESET相連,這樣S3C4510B與C520將在上電時(shí)同時(shí)復位;C520 PD腳是低功耗狀態(tài)控制引腳,“1”為正常工作狀態(tài),“0”為進(jìn)入低功耗狀態(tài);C520 IRQ腳為中斷輸出腳,其可連接S3C4510B的外部中斷請求信號腳XINTREQ。
3.2 芯片初始化
C520的初始化工作非常簡(jiǎn)單,包括:
?、?根據外部時(shí)鐘設置PLL分頻比。PLL分頻比由寄存器CLOCK(read:10h/write:11h)和寄存器Master Clock(read:18h/write:19h)共同決定。內部時(shí)鐘頻率fsys=fclock·(DN+1)/(DM+1)。其中DM為寄存器CLOCK[4∶0],DN為寄存器Master clock tuning[5∶0],fclock是外部輸入時(shí)鐘,內部系統時(shí)鐘頻率fsys必須定在48 MHz50 MHz之間。
?、?打開(kāi)模擬模塊,向寄存器Analog Power Down(read:66h/write:67h)的bit3寫(xiě)0。
?、?設置Analog Select,根據寄存器Analog Select(read:60h/ write:61h)選擇模擬功能。
C520可以播放MIDI FORMAT 0和MMD格式的MIDI文件。
MIDI FORMAT 0文件開(kāi)頭4字節數據ASCII值為“MThd”,MMD文件開(kāi)頭4字節數據ASCII值為“MMhd”。ARM發(fā)送這兩種格式的MIDI數據過(guò)程不同,在發(fā)送前根據文件開(kāi)頭4字節數據進(jìn)行區分。
發(fā)送MIDI FORMAT 0格式的MIDI文件,文件中的所有數據都要發(fā)送。
MMD格式的文件,可分為四塊,每塊的開(kāi)頭都有8字節的頭數據部分。第1塊頭數據部分前4字節的ASCII碼值是“MMhd”,第2塊頭數據部分前4字節的 ASCII 碼值是 “MMly”, 第 3 塊頭數據部分前 4 字節的ASCII碼值是“MMdd”。第4塊頭數據部分前4字節的ASCII碼值是“MMex”。每一塊頭數據的第5、6、7、8字節是這塊數據的長(cháng)度(不包括頭數據),第5字節是低字節位,第8字節是高字節位,這4個(gè)字節組成的十六進(jìn)制數據加上頭數據長(cháng)度8,就是這塊數據的長(cháng)度。MMdd塊數據的頭數據后面就是經(jīng)過(guò)壓縮的MIDI數據;MMly塊數據是用于卡拉OK的專(zhuān)用數據,播放MIDI時(shí)無(wú)須發(fā)送該塊;Mmex為擴展塊。

圖3播放MIDI文件流程
向C520發(fā)送MMD格式的MIDI數據時(shí),先發(fā)送MMhd塊,接著(zhù)發(fā)送MMdd塊的MIDI數據部分(即該塊中除塊名及塊長(cháng)度的部分),而MMly塊不用發(fā)送。
圖3為播放MIDI文件流程。
結語(yǔ)
本文介紹了智多微公司的手機和弦芯片C520,給出了其原理及內部結構圖。采用三星的RISC芯片S3C4510B做控制器,實(shí)現了和弦音樂(lè )的播放。文中給出了詳細的電路原理圖和播放MIDI音樂(lè )文件的流程,可以作為和弦芯片在移動(dòng)產(chǎn)品上的應用參考。
評論