<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TLC320AD545編解碼器與C54x DSP接口設(shè)計(jì)

          TLC320AD545編解碼器與C54x DSP接口設(shè)計(jì)

          作者: 時(shí)間:2004-12-06 來(lái)源:網(wǎng)絡(luò) 收藏
          摘要:介紹一種與TMS320 的McBSP方法。內(nèi)容包括硬件和與之相關(guān)的軟件;介紹AD545與各自的初始化以及它們之間的通信協(xié)議。

          關(guān)鍵詞: TMS320VC5402 McBSP

          (AD545)是TI公司生產(chǎn)的一種單通道數(shù)據(jù)/傳真編(Codec)。它是一種常用的混合信號(hào)寬帶連接芯片,廣泛應(yīng)用于音頻和傳真數(shù)據(jù)采集處理系統(tǒng)中。它可以TMS320 DSP的McBSP(多通道緩沖串口)無(wú)縫串行連接進(jìn)行數(shù)據(jù)采集、存儲(chǔ)和處理。本文提出一種AD545 Codec與VC5402 DSP的McBSP設(shè)計(jì)方法,包括硬件連接及相關(guān)軟件代碼。

          1 芯片介紹

          1.1 主要特性

          AD545是一種單通道的數(shù)據(jù)/傳真編解碼器。它由一個(gè)單通道的Codec和帶有一個(gè)串口的模擬混合電路組成,其中的串口用于和外接主處理器接口相連。此芯片同時(shí)包含了可編程增益控制器和一個(gè)AT41話(huà)簡(jiǎn)驅(qū)動(dòng)器。其電源可以是模擬5V、數(shù)字5V和監(jiān)控5V;也可是模擬3.3V、數(shù)字3.3V和監(jiān)控3.3V;還可是模擬5V、數(shù)字3.3V和監(jiān)控5V。芯片封裝是48腳TQFP。

          AD545的主要特點(diǎn)有:差分和單端驅(qū)動(dòng)模擬輸出;采樣速率最大可達(dá)11.025kHz;采樣精度16位,2的補(bǔ)碼數(shù)據(jù)格式;80dB動(dòng)態(tài)范圍;具有可編程增益放大器;帶有可編程增益放大器的8ΩAT41差分話(huà)筒驅(qū)動(dòng)器;Flash寫(xiě)使能電路為外部的Flash提供電源;溫度范圍-40~85℃。

          1.2 功能框圖

          AD545內(nèi)部功能框圖如圖1所示。

          1.3 各功能部分簡(jiǎn)介

          Codec部分:①1個(gè)ADC通道;②低通濾波;③模擬輸入和模擬輸出增益控制;④1個(gè)16位與外部主處理器接口的串口;⑤最大采樣速率可達(dá)11.025kHz。

          模擬混合電路部分:①1個(gè)集成放大器,其增益和濾波器頻率可由外部的電容和電阻設(shè)定;②1個(gè)可編程增益放大器和1個(gè)8Ω的差分話(huà)筒驅(qū)動(dòng)器相連,通過(guò)對(duì)控制寄存器進(jìn)行編程,話(huà)筒驅(qū)動(dòng)器可以設(shè)置為0dB增益或者不發(fā)聲,通過(guò)編程,話(huà)筒驅(qū)動(dòng)器的輸入可以選擇放大了的DAC輸出(Data_Out PGA),也可以是ADC的輸入信號(hào);③變換器的參考電壓輸入端(DT_REF)應(yīng)接2.5V或1.5V電壓(當(dāng)DACDD是5V時(shí),應(yīng)接2.5V;當(dāng)DAVDD是3.3V時(shí),應(yīng)接1.5V)。

          邏輯和其它電路部分:邏輯電路的功能是執(zhí)行串口操作以及通過(guò)串口的二次通信對(duì)控制寄存器進(jìn)行編程。這些控制寄存器用于設(shè)置放大器增益,選擇循環(huán)功能以及讀取ADC的溢出標(biāo)志等。此外,還有一個(gè)Flash寫(xiě)命名能電路,它提供了一個(gè)外部的邏輯輸入,并且可以為外部存儲(chǔ)器設(shè)備的寫(xiě)使能電路提供電源,這個(gè)Flash寫(xiě)使能電路采用數(shù)字電源供電。

          2 硬件連接

          AD545與VC5402硬件連接原理如圖2所示。

          AD545的幀同步信號(hào)可以是高電平有效,也可以是低電平有效,這取決于AD545串行接口模式選擇引腳SI_SEL的狀態(tài)。本設(shè)計(jì)采用低電平有效方式和VC5402接口,因此,AD545的串行接口模式選擇SI_SEL接高電平DVDD。

          3 軟件設(shè)計(jì)

          3.1 串行通信工作時(shí)序

          DSP與Codec串行通信工作時(shí)序如圖3所示。

          3.2 VC5402 DSP的McBSP寄存器設(shè)置

          McBSP應(yīng)該配置成單相位通信、16位字長(zhǎng)的標(biāo)準(zhǔn)模式。由于AD545提供了串行時(shí)鐘和幀同步時(shí)鐘信號(hào),因此,不必要配置McBSP的采樣速率發(fā)生器。鑒于上述的串行通信工時(shí)序圖,表1給出了McBSP控制寄存器的典型配置值。

          表1 VC5402 DSP的McBSP控制寄存器的典型配置值

          McBSP的控制寄存器名設(shè)置值(16位)
          SPCR x (串口控制寄存器1)0000000000000001B(0001H
          SPCR2x (串口控制寄存器2)1000000000000000B(8000H
          RCR1x (接收控制寄存器1)0000000001000000B(0040H
          RCR2x (接收控制寄存器2)0000000000000100B(0004H
          XCR1x (發(fā)送控制寄存器1)0000000001000000B(0040H
          XCR2x (發(fā)送控制寄存器2)0000000000000100B(0004H
          PCRx (幀控制寄存器)0000000000001110B(000EH

          3.3 AD545寄存器設(shè)置

          DSP對(duì)AD545控制寄存器的設(shè)置是通過(guò)串行通信來(lái)完成的。主通信在DSP和AD545的ADC通道和DAC通道之間傳輸實(shí)際信號(hào)數(shù)據(jù),二次通信用來(lái)配置AD545的控制寄存器。二次通信是在主通道期間通過(guò)設(shè)置所傳輸?shù)紸D545中數(shù)據(jù)字的最低有效位(LSB)的值來(lái)標(biāo)識(shí)的。如果LSB是1,則下一個(gè)通信周期是二次通信周期,AD545所接收到的數(shù)據(jù)就會(huì)被變換來(lái)對(duì)控制寄存器進(jìn)行寫(xiě)入操作。圖4給出了主通信數(shù)據(jù)格式。

          在二次通信期間,通過(guò)DT_DIN傳輸?shù)紸D545的數(shù)據(jù)包含了AD545控制寄存器的地址信息、一位表示寄存器是否正在被讀或?qū)懙奈恍畔⒁约霸趯?xiě)寄存器狀態(tài)下將被寫(xiě)到寄存器的數(shù)據(jù)信息。如圖5所示,是在寫(xiě)寄存器狀態(tài)下的數(shù)據(jù)格式,其中bit15和bit14為缺省值00,bit13為讀/寫(xiě)位(1表示寫(xiě),0表示讀)。

          AD545僅有兩個(gè)控制寄存器(標(biāo)識(shí)為1和2)。程序代碼中所提供的控制寄存器設(shè)置值(分別是0x0100和0x0200)是一種通用配置,可以很容易地對(duì)其修改,以滿(mǎn)足所需要的情況。

          圖3

          3.4 關(guān)鍵程序代碼

          這里所提供的程序代碼是基于上述硬件連接的單機(jī)模式程序,此程序?qū)C5402的McBSP和AD545進(jìn)行了初始化,并且用DSP的CPU來(lái)完成數(shù)據(jù)的采集和回放(AD545的ADC通道輸入數(shù)據(jù)被送到DAC通道進(jìn)行輸出)。所有代碼在CCS2.0下調(diào)試通過(guò)。

          (1)主程序

          void main(void)

          {……

          init_core(); /*初始化DSP*/

          ……

          setup_codec(McBSP_ch1,codec_ctrl_chl,N_delay_chl);

          /*設(shè)置AD545通道*/

          setup_CPU_to_codec(McBSP_ch1);/*設(shè)置數(shù)據(jù)流向*/

          while(1){} /*無(wú)限循環(huán)*/

          }

          (2)子程序

          void init_core(void)

          {/*設(shè)置PLL*/

          *CLKMD=0x0000; /*禁止PLL*/

          *CLKMD=0x90b2; /*PLLx10,外部晶振10MHz*/

          /*其它設(shè)置*/

          *SWWSR=0x2492; /*設(shè)置等待狀態(tài)*/

          *SWCR=0x0000; /*設(shè)置等待狀態(tài)控制寄存器*/

          *PMST=*PMST|0x0020; /*設(shè)置OVLY=1*/

          void setup_codec(McBSP *McBSPx,int *codec_ctr1_data,unsigned

          }

          int N_delay)

          {……

          asm(SSBX INTM ;/*禁止全局中斷*/

          /*設(shè)置McBSP*/

          /*設(shè)置AD545寄存器*/

          ……

          for(i=1;i=codec_ctr1_data[0];i++){

          *McBSPx->DXRlx=0x0001;

          /*主通信中標(biāo)識(shí)下一通道為二次通信*/

          while(!IFR McBSPx->BXINTx_MASK)){}

          /*DXR1x寄存器中的主要通信數(shù)據(jù),等待BXINT標(biāo)志*/

          *IFR=McBSPx->BXINTx_MASK;/*清除BXINT flag*/

          *McBSPx->DXR1x=codec_ctrl_data[i];

          /*二次通信數(shù)據(jù)*/

          while(!(*IFR McBSPx->BXINTx_MASK)){}

          /*DXR1寄存器中二次通信數(shù)據(jù),等待BXINT標(biāo)志*/

          *IFR=McBSPx->BXINTx_MASK;/*清除BXINT標(biāo)志*/}

          }

          void setup_CPU_to_codec(McBSP *McBSPx)

          {……

          if((McBSPx->McBSPnum==1)||(McBSPx->McBSPnum==2)

          ){

          *DMPREC=*DMPREC 0xff3f;/*設(shè)置INTOSEL[1:0]=00b*/}

          *IFR=McBSPx->BRINTx_MASK;/*清除BRINT標(biāo)志*/

          temp=*DRR10;/*讀取DRR10來(lái)清除RRDY位*/

          *IMR=*IMR|McBSPx->BRINTx_MASK;/*使能BRINT中斷*/

          asm(RSBX INTM ;/*使能全局中斷*/

          }

          結(jié)語(yǔ)

          AD545 Codec是較為常用的數(shù)據(jù)/傳真編解碼器,TMS320VC02是性能價(jià)格比較高的定點(diǎn)DSP芯片?;谏鲜鲈O(shè)計(jì)的系統(tǒng),可以應(yīng)用于音頻/傳真數(shù)據(jù)采集、存儲(chǔ)及處理系統(tǒng)中。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();