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