基于LPC2138的AES3數(shù)字音頻接口設(shè)計(jì)
3.7 音頻格式轉(zhuǎn)換模塊
音頻格式轉(zhuǎn)換模塊采用TI公司的SRC4382芯片。它是一款專(zhuān)用于廣播數(shù)字音頻系統(tǒng)的芯片,它集成了帶有采樣頻率轉(zhuǎn)換的數(shù)字音頻接口發(fā)送器(DIT)和接收器(DIR),2個(gè)音頻串行接口,以及支持?jǐn)?shù)據(jù)和時(shí)鐘內(nèi)聯(lián)的分布式邏輯,DIT和DIR兼容AES3,S/PDIF,IEC 60958和EIAJ CP-1201接口標(biāo)準(zhǔn),采樣頻率最高支持216 kHz,并且支持通過(guò)I2C總線控制芯片的工作狀態(tài)。
本設(shè)計(jì)中,通過(guò)LPC2138的I2C總線接口控制SRC4382的工作模式,器件地址為0xE0H。通過(guò)設(shè)置SRC4382內(nèi)部寄存器,使其同時(shí)有2條工作的信號(hào)路徑,一條為RX+、RX-差分信號(hào)經(jīng)過(guò)DIR單元的采樣頻率轉(zhuǎn)換和解碼后,轉(zhuǎn)換為I2S信號(hào),由SDOUT輸出;另一條為I2S信號(hào)SDIN經(jīng)過(guò)DIT單元的采樣頻率轉(zhuǎn)換和編碼后,轉(zhuǎn)換為數(shù)字音頻接口AES3信號(hào),由差分線TX+、TX-輸出。LRCK與SCLK同CS5368,均由外部提供。RX+、RX-與DIN+、DIN-之間以及TX+、TX-與DOUTR+、DOUTR-之間均需要用變壓器做隔離去耦合,以防止前后級(jí)之間相互干擾。SRC4382的外圍電路如圖6所示。
4 軟件程序設(shè)計(jì)
CS5368、CS4382、SRC4382 3款芯片均可通過(guò)設(shè)置其內(nèi)部寄存器,獲得不同的工作狀態(tài)。
4.1 CS5368軟件部分
系統(tǒng)上電之后需對(duì)CS5368進(jìn)行初始化。GCTL(globalmode control register)控制芯片的工作模式,本設(shè)計(jì)工作狀態(tài)為:控制端口模式,時(shí)鐘為256采樣率,輸出I2S模式,從模式下的所有采樣頻率。因此GCTL的值設(shè)置為0x87H。其他寄存器保持默認(rèn)值即可。初始化程序如下:
//I2C寫(xiě)一個(gè)字節(jié)0x87到地址GCTL(0x01)
I2c_WriteNByte(CS5368_Addr,1,GCTL,gctl,1);
當(dāng)CS5368發(fā)生溢出中斷時(shí),會(huì)向LPC2138的外部中斷INT0發(fā)送中斷信號(hào),同時(shí)LED燈D1被點(diǎn)亮。在中斷程序中,查詢OVFL寄存器狀態(tài),設(shè)置相應(yīng)通道的輸出消聲(mute)。中斷服務(wù)程序如下:
char ovfl,mute;
I2c_ReadNByte(CS5368_Addr,1,OVFL,&ovfl,1);
mute=~ovfl;
I2c_WriteNByte(CS5368_Addr,1,MUTE,mute,1);
4.2 CS4382軟件部分
系統(tǒng)上電之后需對(duì)CS4382進(jìn)行初始化。MC1、MC2和FC共同控制CS4382的工作狀態(tài),本設(shè)計(jì)中將其值分別設(shè)置為0x80H,0x10H,0x05H。芯片工作存控制端口模式下,輸入音頻格式為24位I2S信號(hào),去加重濾波器響應(yīng)頻率為48 kHz。其他寄存器保持默認(rèn)值。初始化程序如下:
mc1=0x80;mc2=0x10;fc=0x05;
I2c_WriteNByte(Cs4382_Addr,1,MC1,mc1,1);
I2c_WriteNByte(CS4382_Addr,1,MC2,mc2,1);
I2c_WritcNByte(CS4382_Addr,1,F(xiàn)C,&fc,1);
4.3 SRC4382軟件部分
4.3.1 SRC4382初始化
系統(tǒng)上電之后需要對(duì)SRC4382進(jìn)行初始化。SRC4382的寄存器分為4頁(yè),第0頁(yè)為控制和狀態(tài)寄存器,第1頁(yè)為DIR通道狀態(tài)和用戶數(shù)據(jù)緩沖寄存器,第2頁(yè)為DIT通道狀態(tài)和用戶數(shù)據(jù)緩沖寄存器,第3頁(yè)保留。在操作每頁(yè)寄存器之前,必須通過(guò)設(shè)置每頁(yè)的頁(yè)選擇寄存器來(lái)確定要操作的頁(yè)。初始化程序中只需將寄存器07,09,0b,0d,0e,0f,16,17,2d分別設(shè)置為0x22,0x02,0x33,0x08,0x09,0x12,0xfe,0x01,0x42,其他保留默認(rèn)值即可。各寄存器的具體值及其含義請(qǐng)參考技術(shù)手冊(cè)。初始化程序如下:
評(píng)論