新聞中心

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

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

作者: 時(shí)間:2004-12-06 來源:網(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(多通道緩沖串口)無縫串行連接進(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話簡(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差分話筒驅(qū)動(dòng)器;Flash寫使能電路為外部的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Ω的差分話筒驅(qū)動(dòng)器相連,通過對(duì)控制寄存器進(jìn)行編程,話筒驅(qū)動(dòng)器可以設(shè)置為0dB增益或者不發(fā)聲,通過編程,話筒驅(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í)行串口操作以及通過串口的二次通信對(duì)控制寄存器進(jìn)行編程。這些控制寄存器用于設(shè)置放大器增益,選擇循環(huán)功能以及讀取ADC的溢出標(biāo)志等。此外,還有一個(gè)Flash寫命名能電路,它提供了一個(gè)外部的邏輯輸入,并且可以為外部存儲(chǔ)器設(shè)備的寫使能電路提供電源,這個(gè)Flash寫使能電路采用數(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è)置是通過串行通信來完成的。主通信在DSP和AD545的ADC通道和DAC通道之間傳輸實(shí)際信號(hào)數(shù)據(jù),二次通信用來配置AD545的控制寄存器。二次通信是在主通道期間通過設(shè)置所傳輸?shù)紸D545中數(shù)據(jù)字的最低有效位(LSB)的值來標(biāo)識(shí)的。如果LSB是1,則下一個(gè)通信周期是二次通信周期,AD545所接收到的數(shù)據(jù)就會(huì)被變換來對(duì)控制寄存器進(jìn)行寫入操作。圖4給出了主通信數(shù)據(jù)格式。

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

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

圖3

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

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

(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){} /*無限循環(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來清除RRDY位*/

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

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

}

結(jié)語

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



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉