《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > TMS320C5402與MAX1270的SPI接口設(shè)計(jì)與實(shí)現(xiàn)
TMS320C5402與MAX1270的SPI接口設(shè)計(jì)與實(shí)現(xiàn)
劉文良,高 山,,王 杰
摘要: 根據(jù)MAXIM公司的12位串行模數(shù)轉(zhuǎn)換芯片MAX1270及TI公司TMS320C5402 DSP的多通道緩沖串口(McBSP)的工作原理,,設(shè)計(jì)了高速傳輸通道,采用McBSP的SPI(Series Protocol Interface)工作模式,,將McBSP與MAX1270直接相連,,不需要占用并行數(shù)據(jù)總線,避免了總線沖突,。給出了MAX1270與TMS320C5402的McBSP的接口電路及軟件編程實(shí)現(xiàn),。
關(guān)鍵詞: DSP SPI接口 TMS320C5402 MAX1270 Maxim TI
Abstract:
Key words :

  摘  要: 根據(jù)title="MAXIM">MAXIM公司的12位串行模數(shù)轉(zhuǎn)換芯片MAX1270及TI公司TMS320C5402 DSP的多通道緩沖串口(McBSP)的工作原理,設(shè)計(jì)了高速傳輸通道,,采用McBSP的SPI(Series Protocol Interface)工作模式,,將McBSP與MAX1270直接相連,不需要占用并行數(shù)據(jù)總線,,避免了總線沖突,。給出了MAX1270與TMS320C5402的McBSP的接口電路及軟件編程實(shí)現(xiàn)。
  關(guān)鍵詞: TMS320C5402,;MAX1270,;多通道緩沖串口;SPI

   TMS320C5402是一種具有高處理能力和低功耗特性的16位定點(diǎn)DSP芯片,,處理能力高達(dá)100MIPS,,其多功能串口McBSP(Multi-channel Buffered Serial Port)不僅可以完成標(biāo)準(zhǔn)串口的全雙工串行通信,還具有支持SPI設(shè)備,、多達(dá)128個(gè)通道的數(shù)據(jù)收發(fā)能力等特性,。核心電壓為1.8V,I/O電壓為3.3V,,尤其適合于便攜式設(shè)備,。MAX1270是8通道、多量程雙極性輸入,、串行輸出,、逐次逼近型12位AD轉(zhuǎn)換器。支持SPI/QSPI和MICROWIRE等多種接口方式,,可方便地與各種微控制器直接級(jí)聯(lián),。
1 MAX1270原理
1.1 MAX1270引腳功能

  MAX1270引腳分布如圖1所示。

 

  各引腳功能如下:1-VDD:+5V電源輸入,;2,,4-DGND:數(shù)字地;5-SCLK:串行時(shí)鐘輸入,為串口數(shù)據(jù)的輸入輸出提供移位時(shí)鐘,;6-:片選輸入端,,低電平有效,當(dāng)為高時(shí),,DOUT呈高阻狀態(tài),;7-DIN:串行數(shù)據(jù)輸入引腳,從該引腳寫入控制字,;8-SSTRB:轉(zhuǎn)換完成指示引腳,,在不同的時(shí)鐘模式下,該引腳的高低電平變化反映轉(zhuǎn)換是否完成,;10-DOUT:串行數(shù)據(jù)輸出引腳,,用來(lái)輸出轉(zhuǎn)換結(jié)果;方法:掉電模式控制輸入端,,低電平有效,,正常工作模式下置高;12-AGND:模擬地,;13~20-CH0~CH7:模擬信號(hào)輸入端,;21-REFADJ,參考電壓輸出/外部調(diào)節(jié)輸入,;23-REF,,參考電壓緩沖輸出/ADC的參考輸入。
1.2 MAX1270的控制字
  MAX1270的控制字如表1所示,。


  其中PD0、PD1為時(shí)鐘模式選擇位,,其取值與相對(duì)應(yīng)的功能如表2所示,。


  在外部時(shí)鐘模式下,串行數(shù)據(jù)的輸入,、輸出和數(shù)據(jù)的采樣保持,、轉(zhuǎn)換全部由SCLK輸入的外部時(shí)鐘所控制。在內(nèi)部時(shí)鐘模式下,,數(shù)據(jù)的轉(zhuǎn)換時(shí)鐘由芯片內(nèi)部產(chǎn)生,,從而減輕了外部微控制器的負(fù)荷,提高了工作效率,。本文所設(shè)計(jì)的系統(tǒng)就是工作在內(nèi)部時(shí)鐘模式下,,由DSP提供2MHz的時(shí)鐘。由于DSP的收發(fā)寄存器為16位,,故采用16個(gè)時(shí)鐘周期轉(zhuǎn)換一個(gè)數(shù)據(jù)的工作時(shí)序,,使得每次轉(zhuǎn)換只需分別讀寫一次寄存器,大大簡(jiǎn)化了軟件的設(shè)計(jì)。在此模式下,,轉(zhuǎn)換速率可達(dá)到43ks/s,。
 RNG、BIP兩位決定了模擬電壓的輸入極性和范圍,,其取值與相對(duì)應(yīng)的功能如表3所示,。


  MAX1270具有軟件可編程極性選擇功能,只需要寫相應(yīng)控制字就可輕松實(shí)現(xiàn),,這一特點(diǎn)降低了輸入電路設(shè)計(jì)的復(fù)雜性,。對(duì)于單極性輸入,轉(zhuǎn)換結(jié)果為12位二進(jìn)制碼,;對(duì)于雙極性輸入,,轉(zhuǎn)換結(jié)果為12位二進(jìn)制補(bǔ)碼。只要把存儲(chǔ)轉(zhuǎn)換結(jié)果的變量定義為有符號(hào)整數(shù)類型(signed int)就可正確讀取結(jié)果,。
  SEL2,、SEL1、SEL0為模擬通道選擇位,,其取值與相對(duì)應(yīng)功能如表4所示,。


  START位為控制字的開始位,在CS低電平期間標(biāo)志著8位控制字的開始,,其后的控制字在SCLK作用下先高位后低位的順序由DIN輸入[2],。
2 McBSP原理
  McBSP內(nèi)部結(jié)構(gòu)如圖2所示,包括數(shù)據(jù)通路和控制通路兩部分,,并通過(guò)7個(gè)引腳與外部器件相連,。

 


  各引腳功能:DX為發(fā)送引腳,與McBSP相連接,;DR為接收引腳,,與接收數(shù)據(jù)總線相連接;CLKX為發(fā)送時(shí)鐘引腳,;CLKR為接收時(shí)鐘引腳,;FSX為發(fā)送幀同步引腳;FSR為接收幀同步引腳,。
  在時(shí)鐘信號(hào)和幀同步信號(hào)的控制下,,接收和發(fā)送過(guò)程通過(guò)DR和DX引腳與外部器件直接通信;DSP內(nèi)部對(duì)McBSP的操作是利用16位控制寄存器,,通過(guò)片內(nèi)外設(shè)總線進(jìn)行存取控制,。數(shù)據(jù)發(fā)送過(guò)程:將數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器DXR;然后,,發(fā)送移位寄存器XSR將數(shù)據(jù)經(jīng)DX引腳移出發(fā)送,。數(shù)據(jù)接收過(guò)程:通過(guò)DR引腳將接收的數(shù)據(jù)移入接收移位數(shù)據(jù)寄存器RSR中,;然后,將這些數(shù)據(jù)分別復(fù)制到接收緩沖寄存器RBR和DRR中,;最后,,由CPU或DMA控制器讀出。這個(gè)過(guò)程允許內(nèi)部和外部數(shù)據(jù)通信同時(shí)進(jìn)行[3],。
3 TMS320C5402與MAX1270的接口設(shè)計(jì)
3.1 接口時(shí)序

  TMS320C5402的McBSp與MAX1270都支持SPI(Series Protocol Interface)總線協(xié)議,。SPI總線是Motorola公司推出的三線同步接口,同步串行三線方式進(jìn)行通信:一條時(shí)鐘線SCK,,一條數(shù)據(jù)輸入線MOSI,,一條數(shù)據(jù)輸出線MISO;用于CPU與各種外圍器件進(jìn)行全雙工,、同步串行通信,。SPI主要特點(diǎn)有:可以同時(shí)發(fā)送和接收串行數(shù)據(jù);可以當(dāng)作主機(jī)或從機(jī)工作;提供頻率可編程時(shí)鐘,;發(fā)送結(jié)束中斷標(biāo)志,。傳輸?shù)钠鹗加芍鳈C(jī)的時(shí)鐘信號(hào)控制,一旦檢測(cè)到主機(jī)有時(shí)鐘信號(hào)發(fā)出,,主機(jī)和從機(jī)的通信就開始,,分別在時(shí)鐘的不同跳變沿發(fā)送和接收數(shù)據(jù),當(dāng)主機(jī)時(shí)鐘信號(hào)結(jié)束時(shí),,通信就停止,,在通信過(guò)程中從機(jī)的片選信號(hào)要保持有效。
  本文采用MAX1270內(nèi)部時(shí)鐘模式下16時(shí)鐘周期的工作時(shí)序,,由5402作為主機(jī)提供串行時(shí)鐘,,MAX1270作為從機(jī)輸出轉(zhuǎn)換結(jié)果,其時(shí)序如圖3,。


  當(dāng)片選信號(hào)CS置低時(shí),,主機(jī)的串行時(shí)鐘開始發(fā)出時(shí)鐘信號(hào),在時(shí)鐘的每個(gè)下降沿主機(jī)向DIN上寫數(shù)據(jù),,在時(shí)鐘的每個(gè)上升沿?cái)?shù)據(jù)打入從機(jī)。在DIN上第7位控制字建立的上升沿開始采樣模擬電壓信號(hào),,并保持2個(gè)外部時(shí)鐘周期和4個(gè)內(nèi)部時(shí)鐘周期,,隨后在第8個(gè)控制字之后的下降沿轉(zhuǎn)換開始。轉(zhuǎn)換的過(guò)程中,,SSTRB置低直到轉(zhuǎn)換完成,,查詢此引腳的狀態(tài)可判斷轉(zhuǎn)換是否完成,同時(shí)為了去除噪聲干擾,,在轉(zhuǎn)換過(guò)程中應(yīng)保持高電平直到轉(zhuǎn)換完成,。轉(zhuǎn)換完成后,12位轉(zhuǎn)換結(jié)果由高到低由從機(jī)輸出到DOUT上,并在每個(gè)時(shí)鐘的上升沿打入主機(jī),,從而得到轉(zhuǎn)換結(jié)果,。
  由圖3的時(shí)序圖可以看出,每次轉(zhuǎn)換都必須寫入控制字,,相鄰兩次轉(zhuǎn)換的控制字之間間隔16個(gè)時(shí)鐘周期,,兩次轉(zhuǎn)換結(jié)果同樣間隔16個(gè)時(shí)鐘周期,而且如果在第一次讀取結(jié)果的D3位同時(shí)在DIN上寫入下一次的控制字,,在下個(gè)周期到來(lái)時(shí)就可以直接讀取結(jié)果而不用在等待一個(gè)空周期,。這樣可以充分利用SPI總線的特點(diǎn),在一個(gè)周期內(nèi)主機(jī)寫DIN讀DOUT,,而從機(jī)寫DOUT讀DIN,。由于McBSP的DXR(發(fā)送寄存器)和DDR(接收寄存器)都是16位的,故選擇了16個(gè)時(shí)鐘周期的工作時(shí)序與之相匹配,。
3.2 接口電路
  根據(jù)McBSP的引腳特性和上述時(shí)序分析,,設(shè)計(jì)了如圖4的接口電路。


  5402作為主機(jī)通過(guò)Mcbsp0的時(shí)鐘輸出引腳BCLKX0給MAX1270提供串行時(shí)鐘,,通過(guò)幀輸出引腳BFSX0選通MAX1270,,通過(guò)BDX0引腳寫入控制字。同時(shí),,通過(guò)BDR0引腳接收轉(zhuǎn)換結(jié)果,,并把BCLKR1設(shè)置成通用I/O與MAX1270的SSTRB引腳相連,通過(guò)查詢此引腳的狀態(tài)來(lái)判斷轉(zhuǎn)換是否完成,。
  由于5402的I/O管腳電壓為3.3V,,而MAX1270的I/O管腳電壓則為5V,因此在MAX1270向5402傳輸?shù)姆较蛏霞恿艘黄娖睫D(zhuǎn)換芯片74LVC4245A,,把5V的TTL電平轉(zhuǎn)換成3.3V的TTL電平,,以避免5402無(wú)法承受高于3.3V的電壓而燒毀芯片。
3.3 軟件設(shè)計(jì)
  軟件設(shè)計(jì)分為初始化和數(shù)據(jù)傳輸兩大部分,。
  初始化部分包括5402的初始化和McBSP的初始化,,其中5402的初始化是對(duì)系統(tǒng)上電復(fù)位后對(duì)DSP的整個(gè)工作壞境的基本設(shè)置,包括對(duì)系統(tǒng)時(shí)鐘,、處理器工作方式,、存儲(chǔ)器分配、中斷,、外設(shè)等待狀態(tài)等的設(shè)置,。而對(duì)McBSP的初始化則是軟件設(shè)計(jì)的核心,其步驟如下:
  (1)禁止McBSP0發(fā)送器發(fā)送,,接收器接收,。
  (2)設(shè)置5402為SPI主機(jī)模式,,串行時(shí)鐘采用5402主時(shí)鐘的50分頻,在時(shí)鐘的上升沿接收數(shù)據(jù),,在時(shí)鐘的下降沿發(fā)送數(shù)據(jù),,接收數(shù)據(jù)為右對(duì)齊高位補(bǔ)零格式。
  (3)設(shè)置每個(gè)幀信號(hào)由DXR(數(shù)據(jù)發(fā)送寄存器)向XSR(發(fā)送移位寄存器)復(fù)制數(shù)據(jù)時(shí)產(chǎn)生,,接收和發(fā)送都為單項(xiàng)幀,,每幀一個(gè)數(shù),每個(gè)數(shù)16位,。
  (4)使能McBSP0接收器,,發(fā)送器。
  (5)等待兩個(gè)時(shí)鐘周期,,保證內(nèi)部信號(hào)同步,,接收器和發(fā)送器激活[1]
  數(shù)據(jù)傳輸部分完成控制字的寫入和轉(zhuǎn)換結(jié)果的保存,,其步驟如下:
  (1)向DXR中寫入控制字,,查詢發(fā)送控制字狀態(tài),確認(rèn)發(fā)送完成,。
  (2)查詢SSTRB狀態(tài),,確認(rèn)轉(zhuǎn)換完成。
  (3)查詢接收控制字狀態(tài),,確認(rèn)接收完成,,從DRR中讀出轉(zhuǎn)換結(jié)果。
  (4)循環(huán)執(zhí)行上述步驟,。
  軟件基本流程如圖5所示,。

3.4 實(shí)驗(yàn)結(jié)果
  圖6為采集由信號(hào)發(fā)生器產(chǎn)生的1kHz的正弦波的結(jié)果。其中橫坐標(biāo)為連續(xù)時(shí)間段內(nèi)采集數(shù)據(jù)的序號(hào),,縱坐標(biāo)為轉(zhuǎn)換后的數(shù)字量結(jié)果,。由圖可以看出,采集的數(shù)字量很好地復(fù)現(xiàn)了模擬電壓波形,。而實(shí)際上,,圖中一個(gè)周期的正弦波之間是43個(gè)點(diǎn),說(shuō)明了對(duì)于1kHZ的正弦波,,每周期采樣43次,,由此可知采樣率達(dá)到了43kHz。這與MAX1270內(nèi)部時(shí)鐘工作模式的最大采樣率完全一致,,而且可以實(shí)現(xiàn)雙極性采樣,證明了本設(shè)計(jì)在實(shí)踐中是可行的,。

  本文詳細(xì)介紹了MAX1270與TI公司的16位高性能定點(diǎn)DSP TMS320C5402之間的SPI接口設(shè)計(jì)和編程實(shí)現(xiàn),。實(shí)現(xiàn)了MAX1270真正的SPI接口,,并達(dá)到了最大內(nèi)部轉(zhuǎn)換速率43kHz?;赟PI接口的特點(diǎn)使得電路設(shè)計(jì)十分簡(jiǎn)潔,,軟件編程采用C語(yǔ)言完成,通俗易懂且可移植性強(qiáng),,已經(jīng)應(yīng)用在光柵信號(hào)的采集,、細(xì)分與辯向系統(tǒng)中,有一定的實(shí)用性,。

參考文獻(xiàn)
[1] 張勇.C/C++語(yǔ)言硬件程序設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,,2003.
[2] MAXIM Corp,MAX1270/MAX1271 Data Sheet[Z],,2004.

[3] 汪安民,,陳明欣,朱明.TMS320C54xx實(shí)用技術(shù)[M].北京:清華大學(xué)出版社,,2007.

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