摘 要:DSP(數字信號處理器)具有強大的數字信號處理能力,關鍵在其應用系統中,大多由ADC和DAC通道來完成對模擬信號的數字化處理。本文介紹了一種集成ADC和DAC于一體的TLC320AD50C模擬接口電路與TMS320VC5402定點DSP接口電路的設計方法。
關鍵詞:TLC320AD50C;DSP;主從模式
1 硬件設計
1.1 AD50與DSP的引腳連接方式
AD50的MCLK外接8.192MHz的晶振,TMS320VC5402的FSX和FSR由AD50設置。如果選擇D7=0,N=8,則采樣速率為8KHz。
AD50與TMS320VC5402是以SPI方式連接的。AD50工作在主機模式(M/S=1),提供SCLK(數據移位時鐘)和FS(幀同步脈沖)。TMS320VC5402工作于SPI方式的從機模式,BCLKX1和BFSX1為輸入引腳,在接數據和發數據時都是利用外界時鐘和移位脈沖。
具體通信過程如下:AD50C數據輸入輸出與TMS320VC5402數據接收管腳相連,AD50C發出的幀頻信號通過FS腳與TMS320VC5402達到同步,AD50C上M/S可控制AD50C的主從方式。TMS320VC5402中時鐘和同步信號腳可用軟件設置成外部輸入,這樣數據發送/接收,幀同步,時鐘信號均由AD50產生,主時鐘(MCLK)信號由晶振提供,FC、XF端作為二次通訊請求,假設數據傳輸格式為16位,則FC高電平時發出二次通訊請求。
采樣頻率的計算:AD50具有可編程的采樣頻率,其采樣頻率由控制寄存器4決定;當內部鎖相環PLL被使能時(控制寄存器4的D7=0),采樣頻率為fs=MCLK/(128×N)①;當內部鎖相環PLL(即控制寄存器4的D7=1),采樣頻率為fs=MCLK/(512×N)②.如果采樣頻率<7KHz,則根據公式②由主時鐘MCLK得到,內部鎖相環必須被旁路。①②兩式中的N值由控制寄存器4的D4,D5,D6三位的數值決定(數值選擇范圍為1~8);當D6 D5 D4=001時,N=1,當D6 D5 D4=010時,N=2,當D6 D5 D4=000時,N=8.語音信號的頻率范圍為20Hz~3400Hz,所以通常的采樣頻率8KHz.MCLK=8.192MHz時,為當使能內部鎖相環時,要得到的采樣率為8KHz,就要設定控制寄存器4的D6D5D4=100,SCLK的頻率通過下式由采樣頻率fs得到,而不是由MCLK得到:SCLK=256×fs.
在ADC通道中,ADC將輸入的模擬信號轉換為二進制補碼數據,并在幀同步有效期間內,在SCLK的上升沿從DOUT管腳移出。數據可采用16或15+1比特格式。在DAC通道中,AIC在幀同步有效期間內,在SCLK的下降沿將主機送來的16比特串行數據移入并由DAC將其轉換為相應幅值的模擬信號。
1.2 AD50與 TMS320VC5402的串口通信
⑴首次通信。在首次通信中,有兩種數據傳送模式,16位傳送模式和15+1位傳送模式,可通過控制寄存器設定.省卻情況下為15十1位傳送模式.若采用15+1位傳送模式,其高15位數據作為轉換數據,最低位D0為非數據位,輸入DAC數據的最后一位D0位為二次通信請求位,輸出ADC數據的D0位為M/S腳的狀態位.如果工作在16位傳輸模式,則必須由FC產生二次通信請求。
⑵二次通信。二次通信只有在發出請求時產生,當首次通信采用15+1位模式時,可以用D0進行二次通信請求,當首次通信采用16位模式時,則必須由FC腳輸入高電平信號來產生二次通信請求。二次通信數據時序圖及格式如圖4中所示,其中D7~D0為控制寄存器數據,D12~D8為控制寄存器地址,D13=1為讀控制寄存器數據,D13=0對控制寄存器寫數據。通過二次通信,可實現AD50初始化和修改AD50內部控制寄存器的值,可以通過向DIN寫數據來初始化。
系統復位后,必須通過DSP的DX口向AD50的DIN寫數據,如果采用一片AD50,只需初始化其寄存器1、寄存器2和寄存器4。
由于通信數據長度為16位,初始化時應通過RCR1和XCR1設置MCBSP的傳輸數據長度為16。考慮到AD50復位后至少經過6個MCLK才可以脫離復位,故可以在此時間內初始化DSP的串行口。
通過對串口編程設置工作方式,可以進行AD50初始化,建立AD50與TMS320VC5402的連接,從而實現2個芯片之間的數據傳輸。
3 軟件設計
⑴TMS320VC5402串口的初始化。首先將DSP串口1復位,再對串口1的16個寄存器進行編程,使DSP串口工作在以下狀態:以SPI模式運行,每幀一段,每段一個字,每字16位,采樣率發生器由DSP內部產生,幀同步脈沖低電平有效,并且幀同步信號和移位時鐘信號由外部產生。DSP給AD50C編程用查詢方式,接收A/D轉換的D信號和發送D/A轉換的D信號用DMA方式。
⑵AD50初始化。該初始化操作過程包括通過TMS320VC5402的同步串口發送兩串16位數字信息到AD50。第一串為0000 0000 0000 0001B,最低有效位(bits0)說明下一個要傳輸的數據字屬于二次通信。第二個數據值用來對AD50的4個數據寄存器的某一個進行配置。Bits15~11位為0,Bits10~8位為所選寄存器地址值,Bits7~0位為所選中寄存器的編程值。4個用戶可編程寄存器的描述如下:R1中包含模擬輸入通道選擇,硬件/軟件編程方式選擇;R2進行單機/從機工作和電話模式選擇;R3控制帶從機個數選擇;R4用來設置模擬信號可編程放大增益和A/D、D/A轉換頻率。其它兩個寄存器R5、R6是廠家留著測試用的,用戶不可以對其編程。我們在以下例程中對4個可編程寄存器編程,使AD50C工作在以下狀態:選擇INP/INM為工作模擬輸入,15+1位ADC和15+1位DAC模式,不帶從機,采樣頻率為10.67KHz,模擬信號輸入和輸出放大增益均為0dB。
⑶用戶代碼的編寫。完成音頻信號采集與回放代碼的編制。本設計給AD50編程用查詢方式,接收A/D轉換的D信號和發送D/A轉換的D信號用DMA方式。
[參考文獻]
[1]劉益成.TMS320C54x DSP應用程序設計與開發RM].北京:北京航空航天大學出版社,2002.
[2]TLC320AD50C,I TLC320AD52C Data Manual[z].Texas Instrument Inc.,2000.
[3]TMS320C54x DSP Reference Set Volume 5:Enhanced Peripherals[Z].Texas Instrument Inc.,l999.