TMS320C5402與MAX147的接口設(shè)計
MCBSP是TMS320C5402的多通道緩沖串口(MCBSP0和MCBSP1)。MCBSP的外部通過6個管腳與其他串行器件相連,在內(nèi)部與DSP的內(nèi)核連接。串行數(shù) 據(jù)收發(fā)管腳與內(nèi)部各個串口寄存器相連。
根據(jù)MCBSP的功能和結(jié)構(gòu),可以將其工作方式概括為:SPI工作方式和多通道緩沖工作方式。
本文主要介紹SPI操作方式。MCBSP的外部管腳為:串行數(shù)據(jù)接收管腳DR、接收時鐘管腳CLKR、接收幀同步信號管腳FSR、發(fā)送時鐘管腳CLKX、串行數(shù)據(jù)發(fā)送管腳DX、發(fā)送幀同步信號管腳FSX。在時鐘和幀同步信號控制下,接收和發(fā)送通過DR和DX引腳與外部器件直接通訊。在T MS320C5402內(nèi)部CPU對MCBSP的操作,利用了數(shù)個16位控制寄存器,通過2個中斷和4個事件信號控制模塊觸發(fā),對片內(nèi)外設(shè)總線進行存取控制。在進行數(shù)據(jù)接收時,數(shù)據(jù)到達接收管腳DR后,在接收時鐘CLKR的上升沿(或下降沿)處被逐位依次移入RSR中,當(dāng)收滿一個字后,RSR被拷貝到緩沖寄存器RBR,接著再拷貝到數(shù)據(jù)接收寄存器DRR,此刻CPU可以通過外設(shè)總線從DRR中讀取收到的數(shù)據(jù)。發(fā)送數(shù)據(jù)時,CPU將數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器DXR,接著拷貝到發(fā)送移位寄存器XSR,在發(fā)送幀同步信號FSX后,CLKX的上升沿(或下降沿)到來時,XSR的內(nèi)容被逐位依次移到發(fā)送管腳DX上。
2 MAX147的主要特點
A/D芯片MAX147是一種具有8路通道,12位精度的串行數(shù)據(jù)轉(zhuǎn)換器??梢怨ぷ饔赟PI和QSPI方式。輸入電壓范圍:0~2.5V(或-1.25V~+1.25V)。采樣頻率可達133kHz。MAX147的管腳定義見圖1。CH0~CH7為8路模擬采樣輸入;COM為模擬信號的參考地,VREF為2.5V外部基準電壓輸入;AGND為模擬地,DGND為數(shù)字地;DOUT為串行數(shù)據(jù)輸出,DIN為串行數(shù)據(jù)輸入;SSTRB為串行信號輸出,MAX147每次輸出12位轉(zhuǎn)換結(jié)果時,都會在最高位輸出之前產(chǎn)生一個時鐘周期的正脈沖;CS為低電平有效的片選管腳;SCLK為串行時鐘輸入,最高頻率為2MHz;SHDN為Shutdown模式選擇,該腳懸空可使MAX147工作在外部比較模式;REFADJ為Reference?Buffer Amplifier輸入,該腳接高電平可以使MX147工作在外部比較模式;VDD為工作電壓。
3 TMS320C5402 DSP與MAX147的接口電路
如圖1所示,MAX147的8路采樣通道作為模擬信號輸入,與前端傳感器相連。MAX147需要外部的2.5V基準電壓,用LM385-2.5提供。MAX147的第9腳(COM)是模擬信號的參考地,直接關(guān)系到A/D轉(zhuǎn)換的精度與準確度,一定要與模擬地良好連接。MAX147的數(shù)字部分與TMS320C5402DSP的多通道緩沖串口MCBSP相連接,見圖2。在與MAX147接口時,DSP作為SPI主設(shè)備,向作為從設(shè)備的MAX147提供串行時鐘、命令和片選信號。因此,連接時可以直接相連,而且能夠工作于內(nèi)部轉(zhuǎn)換時鐘。FSX作為低有效的片選信號輸出到MAX147的CS端(低有效);CLKX輸出的時鐘信號是串行數(shù)據(jù)的基準時鐘,而且還決定了A/D轉(zhuǎn)換速率。DX為SPI通訊中的主出從入;DR為SPI通訊中的主入從出。DSP串口工作在CLOCK STOP模式(兼容SPI協(xié)議)下,CLKX腳和CLKR腳已經(jīng)在內(nèi)部相連。
4 程序設(shè)計
對DSP的串口編程時,首先要復(fù)位MCBSP串口,其次是配置一些16位寄存器,設(shè)置控制和收發(fā)寄存器中各位的值。配置好寄存器,對串口的操作實際上就變成了對寄存器DRR和DXR的操作,發(fā)送數(shù)據(jù)就是對DXR進行寫操作,接收數(shù)據(jù)就是對DRR進行讀操作。MCBSP支持包括8、12、16和32位字長格式的數(shù)據(jù)收發(fā)。編程復(fù)位和配置寄存器的程序如下:
MAX147每次從DIN接收一組8位的控制字,啟動一次轉(zhuǎn)換,DOUT上輸出一組12位的A/D轉(zhuǎn)換數(shù)值。一般控制字為1XXX1111,其中包括選擇輸入通道、采樣極性和轉(zhuǎn)換時鐘方式(內(nèi)部時鐘和外部時鐘)、功耗模式等設(shè)置信息。在最后一位控制字輸出結(jié)束后的第一個時鐘下降沿,觸發(fā)一次A/D轉(zhuǎn)換。在A/D轉(zhuǎn)換數(shù)據(jù)的最高位移出之前,SSTRB產(chǎn)生一個高電平脈沖,可以作為DSP串口的幀同步信號。如果在A/D轉(zhuǎn)換器空閑時出現(xiàn)第一個高電平或在第5位A/D轉(zhuǎn)換數(shù)值后出現(xiàn)的第一個高電平,MAX147都判斷為起始位。圖3所示為16時鐘周期轉(zhuǎn)換時序。
一組16個時鐘的數(shù)據(jù)包對應(yīng)一組12位的A/D轉(zhuǎn)換數(shù)據(jù),DSP讀入的16位數(shù)中最高1位和最低3位是無效位。當(dāng)一組數(shù)據(jù)包傳送完畢后,至少有2個SCLK周期的空閑,這是由SPI方式的特點所決定的,所以,在SPI模式下,最快的采樣周期并不是16個SCLK周期,而是18個SLCK周期。MCBSP在時鐘的下降沿發(fā)送數(shù)據(jù),上升沿接受數(shù)據(jù)。以下是向DXR傳送一次控制字,將接收寄存器DRR中的數(shù)據(jù)存入緩沖區(qū)的中斷服務(wù)子程序。
?。籺int中斷服務(wù)程序
?。璽int:SSBX INTM;/屏蔽所有中斷
STM #COMMAND,DXR11;/向DXR11傳送控制字
LDM DRR1l,A;/DRR11為Mcbsp1的數(shù)據(jù)接收寄存器
STL A,-3,*AR1+%;/數(shù)據(jù)存入緩沖區(qū),循環(huán)尋址
RETE
.end
本系統(tǒng)已成功地應(yīng)用到溫度、振動加速度信號檢測系統(tǒng)中。
參考文獻
[1]TMS320C54X DSP Reference Set Volume 5:Enhanced Peripherals[Z].T I,1999.Literature Number.SPRU302.
[2]申敏.DSP原理及其在移動通信中的應(yīng)用[M].北京:人民郵電出版社,2001.