新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于LPC2138的AES3數字音頻接口設計

        基于LPC2138的AES3數字音頻接口設計

        作者: 時間:2012-08-20 來源:網絡 收藏

        3.7 音頻格式轉換模塊
        音頻格式轉換模塊采用TI公司的SRC4382芯片。它是一款專用于廣播系統的芯片,它集成了帶有采樣頻率轉換的接口發送器(DIT)和接收器(DIR),2個音頻串行接口,以及支持數據和時鐘內聯的分布式邏輯,DIT和DIR兼容,S/PDIF,IEC 60958和EIAJ CP-1201接口標準,采樣頻率最高支持216 kHz,并且支持通過I2C總線控制芯片的工作狀態。
        本設計中,通過的I2C總線接口控制SRC4382的工作模式,器件地址為0xE0H。通過設置SRC4382內部寄存器,使其同時有2條工作的信號路徑,一條為RX+、RX-差分信號經過DIR單元的采樣頻率轉換和解碼后,轉換為I2S信號,由SDOUT輸出;另一條為I2S信號SDIN經過DIT單元的采樣頻率轉換和編碼后,轉換為接口信號,由差分線TX+、TX-輸出。LRCK與SCLK同CS5368,均由外部提供。RX+、RX-與DIN+、DIN-之間以及TX+、TX-與DOUTR+、DOUTR-之間均需要用變壓器做隔離去耦合,以防止前后級之間相互干擾。SRC4382的外圍電路如圖6所示。

        i.JPG

        4 軟件程序設計
        CS5368、CS4382、SRC4382 3款芯片均可通過設置其內部寄存器,獲得不同的工作狀態。
        4.1 CS5368軟件部分
        系統上電之后需對CS5368進行初始化。GCTL(globalmode control register)控制芯片的工作模式,本設計工作狀態為:控制端口模式,時鐘為256采樣率,輸出I2S模式,從模式下的所有采樣頻率。因此GCTL的值設置為0x87H。其他寄存器保持默認值即可。初始化程序如下:
        //I2C寫一個字節0x87到地址GCTL(0x01)
        I2c_WriteNByte(CS5368_Addr,1,GCTL,gctl,1);
        當CS5368發生溢出中斷時,會向的外部中斷INT0發送中斷信號,同時LED燈D1被點亮。在中斷程序中,查詢OVFL寄存器狀態,設置相應通道的輸出消聲(mute)。中斷服務程序如下:
        char ovfl,mute;
        I2c_ReadNByte(CS5368_Addr,1,OVFL,&ovfl,1);
        mute=~ovfl;
        I2c_WriteNByte(CS5368_Addr,1,MUTE,mute,1);
        4.2 CS4382軟件部分
        系統上電之后需對CS4382進行初始化。MC1、MC2和FC共同控制CS4382的工作狀態,本設計中將其值分別設置為0x80H,0x10H,0x05H。芯片工作存控制端口模式下,輸入音頻格式為24位I2S信號,去加重濾波器響應頻率為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,FC,&fc,1);
        4.3 SRC4382軟件部分
        4.3.1 SRC4382初始化
        系統上電之后需要對SRC4382進行初始化。SRC4382的寄存器分為4頁,第0頁為控制和狀態寄存器,第1頁為DIR通道狀態和用戶數據緩沖寄存器,第2頁為DIT通道狀態和用戶數據緩沖寄存器,第3頁保留。在操作每頁寄存器之前,必須通過設置每頁的頁選擇寄存器來確定要操作的頁。初始化程序中只需將寄存器07,09,0b,0d,0e,0f,16,17,2d分別設置為0x22,0x02,0x33,0x08,0x09,0x12,0xfe,0x01,0x42,其他保留默認值即可。各寄存器的具體值及其含義請參考技術手冊。初始化程序如下:



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 福建省| 吐鲁番市| 邓州市| 彭山县| 台安县| 连州市| 万山特区| 东乡| 宣城市| 虹口区| 克拉玛依市| 武夷山市| 宿松县| 琼结县| 新兴县| 虹口区| 德昌县| 肇东市| 敦煌市| 许昌县| 石河子市| 双牌县| 阿瓦提县| 利辛县| 溆浦县| 独山县| 宽甸| 九江县| 内乡县| 河源市| 留坝县| 车致| 本溪市| 昌图县| 池州市| 上虞市| 北京市| 思茅市| 宜丰县| 高邮市| 鄂托克前旗|