《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 數(shù)字信號處理器TMS320VC5402與音頻模擬芯片TLC320AD50C的接口設(shè)計
數(shù)字信號處理器TMS320VC5402與音頻模擬芯片TLC320AD50C的接口設(shè)計
楊艷紅 張 申
摘要: 介紹了TI公司的信號處理器TMS320VC5402串行口的主要特點,及其和音頻模擬接口芯片TLC320AD50C的結(jié)構(gòu)及其使用注意事項。詳細(xì)講述了兩者的硬件連接及軟件實現(xiàn)。
Abstract:
Key words :

  摘  要: 介紹了TI公司的信號處理器TMS320VC5402串行口的主要特點,及其和音頻模擬接口芯片TLC320AD50C的結(jié)構(gòu)及其使用注意事項。詳細(xì)講述了兩者的硬件連接及軟件實現(xiàn)。

  關(guān)鍵詞: 數(shù)字信號處理器   TMS320VC5402  音頻模擬接口芯片  TLC320AD50C

 

  目前發(fā)展起來的高速數(shù)字信號處理器(DSP)在語音處理系統(tǒng)中得到了廣泛應(yīng)用。TMS320VC5402是TI公司生產(chǎn)的一種性能價格比較高的16位定點DSP。它的指令周期為10ns,具有運算速度快、通用性強(qiáng)、接口連接方便等特點,尤其適合在語音編碼和通信中應(yīng)用。

  TLC320AD50C是TI公司生產(chǎn)的Σ-Δ型A/D、D/A音頻接口芯片,為V3.4調(diào)制解調(diào)器以及音頻應(yīng)用提供了通用的模擬接口,可以直接與TMS320VC5402相連。本文詳細(xì)介紹TLC320AD50C與TMS320VC5402的硬件接口連接和軟件設(shè)計。

1 TMS320VC5402的McBSP

  TMS320VC5402有兩個McBSP(多通道緩存串行口)。McBSP提供了全雙工的通信機(jī)制,以及雙緩存的發(fā)送寄存器和三緩存的接收寄存器,允許連續(xù)的數(shù)據(jù)流傳輸,數(shù)據(jù)長度可以為8、12、16、20、24、32;同時還提供了A-律和μ-律壓擴(kuò),多達(dá)128個通道的發(fā)送和接收。McBSP通過7個引腳使得一個數(shù)據(jù)通路和一個控制通路與外部設(shè)備相連。數(shù)據(jù)經(jīng)McBSP與外設(shè)的通信通過DR和DX引腳傳輸,控制信號則由CLKX、CLKR、FSX、FSR等四條引腳來實現(xiàn)。CPU和DMA控制器可以讀取DRR[1,2]的數(shù)據(jù)實現(xiàn)接收,并且可以對DXR[1,2]寫入數(shù)據(jù)實現(xiàn)發(fā)送。接收和發(fā)送幀同步脈沖既可以由內(nèi)部采樣速率產(chǎn)生器產(chǎn)生,也可以由外部脈沖源驅(qū)動。當(dāng)FSR和FSX都為輸入時(FSXM=FSRM=0,外部脈沖源驅(qū)動),McBSP分別在CLKR和CLKX的下降沿檢測,且DR的數(shù)據(jù)也在CLKR的下降沿進(jìn)行采樣。而當(dāng)FSR和FSX都為輸出時,則在CLKX和CLKR的上升沿進(jìn)行檢測。

  16-bit的串行口控制寄存器SPCR[1,2]和引腳控制寄存器PCR用來配置串行口;接收控制寄存器RCR[1,2]和發(fā)送控制寄存器XCR[1,2]分別設(shè)置接收和發(fā)送的不同參數(shù),如幀長度、每幀的數(shù)據(jù)長度等。

  圖1是當(dāng)FSR和FSX為輸出時McBsp的發(fā)送和接收時序圖。另外,McBSP還可以通過(R/X)DATDLY設(shè)置接收和發(fā)送數(shù)據(jù)延遲,通過(R/X)PHASE設(shè)置接收和發(fā)送的多階段。

 

2 音頻模擬接口芯片TLC320AD50C

  TLC320AD50C是TI生產(chǎn)的Σ-Δ型單片音頻接口芯片。它集成了16位A/D和D/A轉(zhuǎn)換器,采樣速率最高可達(dá)22.05kb/s,其采樣速率可通過DSP編程來設(shè)置。在TLC320AD50C內(nèi)部DAC之前有插值濾波器,而在ADC之后有抽樣濾波器,接收和發(fā)送可以同時進(jìn)行。TLC320AD50C與TMS320VC5402之間采用串行通信方式,有兩種數(shù)據(jù)傳輸模式:16位傳輸模式和15+1位傳輸模式。若采用15+1位傳輸模式,其中的D0位用來表示二次通信。TLC320AD50C的數(shù)據(jù)傳輸時序如圖2所示。

 

 

  該器件采用兩組模擬輸入和兩組模擬輸出,有足夠的共模抑制能力,可以工作在差分或單端方式。當(dāng)模擬輸出時,輸出端通常接600Ω的負(fù)載。

  TLC320AD50C的工作由7個控制寄存器控制。其中,控制寄存器1:軟件復(fù)位以及DAC的16位或15+1位模式選擇。

控制寄存器2:ADC的16位或15+1位模式選擇。

  控制寄存器4:選擇輸入和輸出放大器的增益;通過選擇N確定采樣速率fs;選擇PLL,如果選擇PLL(D7=0),則fs=MCLK/(128N),否則(D7=1),fs=MCLK/(512N)。其中,N=1-8。

  該器件工作方式的設(shè)定和采樣頻率均可以由DSP編程來實現(xiàn),所以TLC320AD50C使用靈活、設(shè)置容易、與TMS320VC5402的連接易于實現(xiàn)。

3 TMS320VC5402與TLC320AD50C硬件連接及軟件實現(xiàn)

3.1 硬件連接

  根據(jù)圖1和圖2的時序,則容易實現(xiàn)TLC320AD50C與TMS320VC5402的硬件連接,如圖3所示。

 

  TLC320AD50C的MCLK外接8.192MHz的晶振,TMS320VC5402的FSX和FSR由TLC320AD50C設(shè)置。如果選擇D7=0,N=8,則采樣速率為8kHz。

3.2 通信協(xié)議

  TLC320AD50C的通信有兩種格式:一次通信格式和二次通信格式。

  一次通信格式的16位都用來傳輸數(shù)據(jù)。DAC的數(shù)據(jù)長度由寄存器1的D0位決定。啟動和復(fù)位時,缺省值為15+1位模式,最后一位要求二次通信。如果工作在16位傳輸模式,則必須由FC產(chǎn)生二次通信請求。

    二次通信格式則用來初始化和修改TLC320AD50C內(nèi)部寄存器的值。在二次通信中可通過向DIN寫數(shù)據(jù)來初始化。

  格式如下:

 

  系統(tǒng)復(fù)位后,必須通過DSP的DX口向TLC320AD50C的DIN寫數(shù)據(jù),如果采用一片TLC320AD50C,只需初始化其寄存器1、寄存器2和寄存器4。

  由于通信數(shù)據(jù)長度為16位,初始化時應(yīng)通過RCR1和XCR1設(shè)置McBSP的傳輸數(shù)據(jù)長度為16。考慮到TLC320AD50C復(fù)位后至少經(jīng)過6個MCLK才可以脫離復(fù)位,故可以在此時間內(nèi)初始化DSP的串行口。

3.3 軟件實現(xiàn)

SERIAL_INIT:

    LD             #AIC_DP,DP  *為AIC的復(fù)位初始化DP

    ST             #K_RESET,AIC_IN_RESET     

  PORTW #AIC_IN_RESET,K_AIC_ADDR       *復(fù)位AIC

    *Need at least 6 cycles to pull the aic out of reset*

    STM           #K_SERIAL_RETR,SPCR1 

    STM           #K_SERIAL_RETX,SPCR2 

                        *初始化串行口控制寄存器1,2復(fù)位串行口 

  STM            #K_SERIAL_OUTRETR,SPCR1 

  STM            #K_SERIAL_OUTRETX,SPCR2 

                      *使串行口脫離復(fù)位 

  RSBXINTM      *INTM=0,打開所有的中斷 

  LD           #0DP 

  ORM            #(K_BRINT0|K_BXINT0),IMR 

                        *打開BRINT0和BXINT0 

    LD           #AIC_DP,DP 

    STM            #(*K_BRINT0),IFR  

                        *清除標(biāo)志 

    ST             #K_ORESET,AIC_OUT_RESET        

    PORTW          #AIC_OUT_RESET,K_AIC_ADDR

                        *AIC脫離復(fù)位

    STM            RCR1,#K_RFW  

                        *初始化接收控制寄存器1,設(shè)置接收數(shù)據(jù)長度為16位

    STM            XCR1,#K_XFW

                        *初始化發(fā)送控制寄存器1,設(shè)置發(fā)送數(shù)據(jù)長度為16位

    STM            PCR,#K_SERIAL

                        *設(shè)置為串行口工作方式,而不是通用I/O方式

    STM            #K_DATA,DXR1

                        *向DIN寫數(shù)據(jù),引起二次通信,等待串行口中斷

    IDLE

    *在BXINT0的中斷服務(wù)程序里,向DXR1寫入寄存器的值。*

 

參考文獻(xiàn)

1 TMS320C54xDSP Applications Guide.Texas Instuments,1999

2 TMS320C54xDSP Enhanced Peripherals.Texas Instuments,1999

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。