<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > TMS320VC5410A I/O口的多種擴展與I2C接口模擬

          TMS320VC5410A I/O口的多種擴展與I2C接口模擬

          ——
          作者:兵器工業(yè)第58研究所 左顥睿 時間:2007-01-26 來源:《單片機與嵌入式系統(tǒng)應用》 收藏

          ti公司的dsp芯片tms320vc5410a(簡稱5410a)是性能卓越的低功耗定點16位dsp,在嵌入式系統(tǒng)中有著廣泛應用,5410a沒有專門的通用i/o引腳,僅有xf引腳可以作為單向輸出,/bio引腳作為單向輸入,同時5410a的片上外設沒有i2c接口,所以,當5410a需要控制外圍芯片或與其他芯片進行通信時(如i2c通信),必須擴展通用i/o口,本文首先介紹5410通用i/o口的多種擴展方式,然后針對每種擴展方式實現(xiàn)與語音芯片tlv320aic23的i2c通信。

          1 通用i/o口的多種擴展方式

          1.1 使用多通道緩沖串行接口擴展通用 i/o口

          5410a具有3個多通道緩沖串行(簡稱mcbsp)接口,每個mcbsp接口有6個引腳,在通常情況下,可以靈活地與外圍設備進行串行通信。在需要的時候,可以配置為通用i/o口。

          mcbsp的6個引腳分別是bclkr、bclkx、bfsr、bfsx、bdr和bdx,通過配置mcbsp的子寄存器pcr來實現(xiàn)通用i/o口的擴展,下面對圖1所示的pcr寄存器的配置進行闡述。

          本文引用地址:http://www.ex-cimer.com/article/21279.htm

          1)15位與16位。保留。

          2)第13位xioen和12位rioen,控制著mcbsp的功能,分別對應著3個引腳,xioen控制bclkx、bfsx和bdx,rioen控制bclkr、bfsr和bdr,其中bdx只能作為單向輸出,bdr只能作為單向輸入,當這兩位置0時,mcbsp作為普通的串行接口與外部通信,當這兩位置1時,把mcbsp置為通用i/o口。xioen和rioen對引腳的控制是分開的,例如xioen=1,rioen=0時,bclkx、bfsx和bdx三個引腳是作為同月i/o口的,而bclkr、bfsr和bdr依然可以作為通用串行口的接收。

          3)11位-8位,控制著相應引腳的輸入/輸出,配置為輸入時置0,配置為輸出時置1,例如bclkr引腳為輸出,則置第8位clkrm為1,bclkx引腳為輸入,則置第9位clkxm為0。

          4)第7位與6位,與通用i/o口無關(guān)。

          5)第5位lx_state,作為bdx引腳的輸出控制,置1輸出高電平,置0輸出低電平。

          6)第4位dr_state,表示bdr引腳的輸入狀態(tài),讀入1表示輸入高電平,讀入0表示輸入低電平。

          7)第3-0位,在輸出時控制著相應引腳的高低電平,而作為輸入時,可以從對應引腳讀出電平的高低狀態(tài),在這里要注意:在配置mcbsp為通用i/o口時,要首先停止串行接口的收發(fā),即配置spcr1中的rrst位為0,spcr2中的xrst位為0。

          1.2 使用主機接口(hpi)擴展通用i/o口

          5410a具有增強型8位和16位主機接口(簡稱hpi),通常情況下用來與主機進行高速率的數(shù)據(jù)通信,需要時可以禁止主機接口的功能,擴展為通用i/o口。
          hpi接口有8位數(shù)據(jù)線hd0-h(huán)d7可以用來作為通用i/o口,通用i/o口的擴展是通過兩個專用寄存器gpiocr(通用i/o口控制寄存器)和gpiosr(通用i/o口狀態(tài)寄存器)的控制來實現(xiàn)的。下面對圖2和圖3所示的兩個寄存器的配置進行闡述。


          圖2和圖3中的dir7-dir0和hd7-h(huán)d0引腳一一對應,gpiocr用來控制通用i/o口的讀/寫方向。當7-0中的某一位置0時,對應的引腳配置為輸入,當置為1時,對應引腳配置為輸出,例如dir7置為0時,dh7作為輸入引腳,dir6置為1時,dh6作為輸出引腳,gpiosr在作為輸出時是用來控制i/o口的高低電平,置為1高電平,置0為低電平,在作為輸入時,相應的位用來反應對應引腳上的電平狀態(tài)。在這里要注意:在配置hpi接口為通用i/o口時,在硬件設計上需要將5410a的第92引腳(hpiena)懸空或者接地,來禁止hpi接口。

          1.3 使用xio2接口擴展通用i/o口

          5410具有片上增強型外部并行接口(xio2),該接口具有23位地址線(a22-a0)和16位數(shù)據(jù)線(d15-d0),通常該接口用來與sram或其他并行設備進行通信,在需要的時候可以被用作通用i/o口來使用。作為i/o口使用時,使用portw合powtr指令來發(fā)出和讀入數(shù)據(jù)。在這里需要注意的是,23根地址線只能作為輸出引腳,16位數(shù)據(jù)線可以被用作通用雙向i/o引腳來使用。

          2 模擬i2c接口與tlv320aic23的通信

          2.1 i2c接口和tlv320aic23簡介

          i2c(inter-integrated circuit)總線是一種由philips公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設備。i2c總線是由數(shù)據(jù)線sda和時鐘scl構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù),在cpu與被控ic之間,ic與ic之間進行雙向傳送。各種被控制電路均并聯(lián)在這條總線上,但就象電話機一樣只有撥通各自的號碼才能工作,所以每個電路和模塊都有唯一的地址。i2c總線主要的優(yōu)點是其簡單性和有效性,由于接口直接在組件之上,因此i2c總線占用的空間非常小,減少了電路板的空間和芯片引腳的數(shù)量,降低了互聯(lián)成本,總線的長度可高達25英尺,i2c總線的另一個優(yōu)點是:支持多主控(multimastering),任何能夠進行發(fā)送和接收的設備都可以成為主總線,圖4給出了與i2c接口通信的數(shù)據(jù)流程。有關(guān)i2c總線的詳細資料請查閱參考文獻[1]。

          tlv320aic23(簡稱aic23)是ti公司推出的一款高性能的立體聲音頻編/解碼芯片,可以在8-96khz的頻率范圍內(nèi)提供16位、20位、24位和32位的采樣,adc和dac的輸出信噪比可以分別達到90db和100db;具有很低的功耗,回放模式下功率僅為23mw,省電模式下更是小于15μw,因此aic23是一款非常理想的音頻模擬i/o器件,可以很好地應用在數(shù)字音頻領(lǐng)域,有關(guān)aic23的詳細資料請查閱參考文獻[2],aic23的配置有spi和i2c兩種方式,這里介紹以通用i/o口模擬i2c通信來配置aic23。aic23的i2c時序圖如圖5所示。

          2.2 用mcbsp接口作為通用i/o模擬i2c接口

          使用mcbsp和aic23的i2c接口的原理如圖6所示,在這里使用5410a的mcbsp1的bclkx1和bfsx1引腳與aic23的sclk和sdin引腳連接。bclkx1作為i2c的時鐘,bfsx1作為i2c的數(shù)據(jù)線。需要注意的是,必須把aic23的mode引腳接地。才能選中aic23的i2c模式;而且當cs引腳為低電平時,aic23的i2c地址為0011010。在3種接口方式中,5410a都作為i2c總線上的主設備,aic23作為i2c總線上的從設備。

          使用mcbsp端口擴展通用i/o口時,每次都要先寫入pcr寄存器的入口地址0eh,然后才能操作pcr寄存器。

          2.3 使用hpi接口作為通用i/o模擬i2c接口

          使用hpi接口和aic23的i2c接口的原理如圖7所示,在這里使用5410a的hd0和hd1引腳與aic23的sclk和sdin引腳連接,hd1作為i2c的時鐘,hd0作為i2c的數(shù)據(jù)線,要注意的是,必須把5410a的hpiena引腳接地,才能將hpi端口作為通用i/o口使用。

          使用hpi端口擴展通用i/o口時,首先要配置控制寄存器確定端口的輸入/輸出方式,然后再操作數(shù)據(jù)寄存器。

          2.4 使用xio2接口作為通用i/o模擬i2c接口

          使用xi02接口和aic23的i2c接口的原理如圖8所示,在這里使用5410a的a0和d0引腳與aic23的sclk和sdin引腳連接,a0作為i2c的時鐘,d0作為i2c的數(shù)據(jù)線。需要注意的是:5410a的a0引腳只能作為輸出,在這種情況下,5410a只能作為i2c總線上的主設備。

          2.5 三種擴展方法的比較

          上述介紹的3種方法中,使用mcbsp接口來擴展通用i/o口,有配置靈活,收發(fā)端口可以獨立操作,最多4個引腳(bclkr、bclkx、bfsr和bfsx)可以作為雙向i/o口的優(yōu)點。但是從程序代碼的長度也可以看到,編程比較煩瑣,而且引腳數(shù)較少,使用起來不太方便,使用hpi接口來擴展通用i/o口,由于有專用的寄存器來控制通用i/o口擴展,具有配置靈活控制方便的優(yōu)點,而且全部8個引腳都可以作為雙向i/o口使用,但是hpi接口作為通用i/o口后,就不再具有hpi功能,如果i/o引腳需要不多,則會造成資源的浪費,而且在某些dsp芯片(如tms320vc5410)上不支持hpi作為通用i/o口使用。使用xio2接口擴展通用i/o口,具有引腳多(有38個引腳,)操作方便的優(yōu)點,但是xio2接口一般都是和sram或其他并行設備進行通信使用,復用xio2接口作通用i/o口時要格外謹慎,而且作為i/o口時地址線只能單向輸出,應用起來具有局限性,所以在擴展通用i/o口的時候,需要根據(jù)系統(tǒng)的需要選擇擴展的方式。

          結(jié)語

          ti公司的c5000系列dsp多都沒有專用的通用i/o引腳,本文介紹的3種方法可以有效地擴展dsp的通用i/o口,在設計時可以靈活地選擇擴展方式,其中hpi擴展方式適用于支持擴展功能的芯片,mcbsp擴展方式和xio2擴展方式適用于大多數(shù)c5000系列芯片,使用這些方法,可以省掉外圍的控制電路和芯片,降低系統(tǒng)成本和功耗,具有較高的實用價值。



          關(guān)鍵詞:

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();