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