下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、tms320f241型dsp的spi口eeprom擴展tms320f241型是目前應用比較廣泛的一款定點dsp,它具有20的命令執(zhí)行速度,強大的內(nèi)部大事管理器、i/o端口和其他外圍設備。其中,串行外設接口(spi)是一個高速同步串行輸入/輸出(i/o)端口,它允許一個具有可編程長度(1到16位)的串行位流,以可編程的位傳送速率從設備移入或移出。spi通常用于dsp控制器和外部器件或其它控制器間的通訊。 在開發(fā)dsp系統(tǒng)時,某些狀況下會讀取或者存儲一些定值,這時我們就需要擴展eeprom。具有spi接口的串行eeprom均可被tms320f241挺直規(guī)律擴展,便利易行。x5043是xicor公司
2、最高時鐘速率為3.3mhz帶有塊鎖庇護的4kbits的串行eeprom。該器件內(nèi)部組織陣列是x8位,具有串行外圍接口(spi)和軟件協(xié)議的特點,允許在容易的四線上工作;該器件利用xicor專有的挺直寫入晶片提供最小為10萬次擦寫和最少100年的數(shù)據(jù)保存期。2硬件設計x5043與tms320f241型dsp的銜接關系1所示。dsp作為主控制器,工作于主模式下,spisimo為dsp的數(shù)據(jù)發(fā)送端,銜接到x5043的數(shù)據(jù)接收端(si);spisomi為dsp的數(shù)據(jù)接收端,銜接到x5043的數(shù)據(jù)發(fā)送端(so);spiste配置成i/o口銜接到x5043的片選端(/cs);slk為spi數(shù)據(jù)傳送的時鐘信
3、號,銜接到x5043的串行時鐘端(sck),串行時鐘由dsp控制。dsp的數(shù)據(jù)在spisimo引腳上輸出并從spisomi上鎖存, dsp通過寫入spidat寄存器的數(shù)據(jù)啟動spiclk串行時鐘信號從而啟動數(shù)據(jù)傳送,當8位串行位流傳送完畢后,spiclk信號中止,傳送結束。3軟件設計31工作模式的挑選tms320f241的spi接口有可挑選的四種不同的時鐘模式,如何挑選時鐘模式是它與各種擴展spi接口器件實現(xiàn)時鐘同步的關鍵。x5043的數(shù)據(jù)在時鐘下降沿從so引腳上輸出并在時鐘升高沿從si引腳上鎖存。讀操作時,在其從si引腳輸入的最低位地址所對應的時鐘下降沿,其so引腳開頭輸出數(shù)據(jù),5所示。 作
4、為主器件的dsp可以挑選 升高沿,無延時和升高沿、有延時兩種時鐘工作模式。升高沿,無延時模式與x5043的工作模式全都,數(shù)據(jù)在spiclk信號的時鐘升高邊沿(從低電平到高電平)從移位寄存器移出在si引腳上鎖存,在時鐘下降邊沿(從高電平到低電平)從so引腳上輸出的數(shù)據(jù)鎖存到移位寄存器中。升高沿,有延時模式4所示,數(shù)據(jù)在spiclk信號升高沿前半個周期從移位寄存器移出,在緊接著的升高邊沿在si引腳上鎖存,在時鐘下降邊沿(從高電平到低電平)從so引腳上輸出的數(shù)據(jù)鎖存到移位寄存器中。32波特率的挑選spi波特率可以由如下兩種狀況計算得出: (1)對于spibrr=3"127,波特率的計算公式
5、為: spi波特率=clkout/(spibrr+1) (2)對于spibrr=0"2,波特率的計算公式為: spi波特率=clkout/4 式中,clkout=器件的cpu時鐘頻率;spibrr=主spi器件中的spibrr內(nèi)容。 x5043最大的spi波特率為3.3mhz,若dsp的cpu時鐘頻率clkout=16mhz,則:最大的spi波特率 =16%26;215;106/(spibrr+1)3.3%26;215;106hz spibrr4+933 dsp的數(shù)據(jù)傳輸格式dsp中spi有16位的發(fā)送和接收能力,且接收和發(fā)送均是雙緩沖。全部數(shù)據(jù)寄存器都是16位寬的,而x5043的地
6、址、數(shù)據(jù)寄存器均是8位的,將dsp中spi傳輸字符長度設置成8位寬。要向x5043存儲數(shù)據(jù)時,dsp將一個8位字節(jié)長度的數(shù)據(jù)寫入spidat或spitxbuf的高8位上2所示,在時鐘信號的作用下,以左對齊方式發(fā)送,先發(fā)送數(shù)據(jù)的最高位。dsp接收一個8位字節(jié)長度的數(shù)據(jù),是以右對齊方式接收3所示,8位字節(jié)長度的數(shù)據(jù)寫入spidat或spirxbuf 的低8位上。34各控制寄存器設置ldp spiccr7 splk 0007h,spiccr ;復位spi, 8個字符長度 splk 000eh,spictl ;主模式,使能talk,禁止spi的中斷 ;升高沿發(fā)送,下降沿接收,有延時 splk 000f
7、h,spibrr ;設置spi的傳輸波特率 splk 0087h,spiccr ;spi預備好發(fā)送或接收下一字符35程序設計ram塊中的變量定義: .bss spi_xdata,1 ;spi數(shù)據(jù)傳輸暫存器 .bss address1,1 ;eeprom存儲器地址暫存器 .bss data1,1 ;eeprom存儲器數(shù)據(jù)暫存器 x5043存儲器地址: wren .set 0600h ;設置寫使能鎖存命令地址 wrdi .set 0400h ;復位寫使能鎖存命令地址 rsdr .set 0500h ;讀狀態(tài)寄存器命令地址 wrsr .set 0100h ;寫狀態(tài)寄存器命令地址 readh .set
8、 0b00h readl .set 0300h ;讀存儲器陣列數(shù)據(jù)命令地址 writeh .set 0a00h writel .set 0200h ;寫存儲器陣列數(shù)據(jù)命令地址3.5.1 dsp的spi數(shù)據(jù)發(fā)送、接收子程序代碼xmit_value: ldp 0 lacc spi_xdata ldp spitxbuf7 sacl spitxbuf ;寫需發(fā)送的值到spi傳輸緩沖器 xmit_rdy: ldp spists7 bit spists,bit6 bcnd xmit_rdy,ntc ;測試spi_int位,假如spi_int=0,則重復循環(huán) ;等待數(shù)據(jù)發(fā)送完畢舉行下一步操作 ldp spi
9、rxbuf7 lacl spirxbuf ;讀取數(shù)據(jù)清除spi_int標記位 ldp 0 sacl spi_xdata ;將接收的值存入數(shù)據(jù)傳輸暫存器 ret3.5.2 x5043內(nèi)部非易失性寫推斷子程序代碼rsdr_wip: spiste_low ;置低spiste引腳,從而選通x5043 ldp 0 splk rsdr,spi_xdata call xmit_value ;寫讀狀態(tài)寄存器地址,高8位 spiste_high ;置高spiste引腳,禁止x5043 ldp 0 bit spi_xdata,bit0 bcnd rsdr_wip,tc ;測試狀態(tài)寄存器wip位。假如wip=1,正
10、在舉行內(nèi)部寫操作。 ;等待內(nèi)部寫操作完成舉行下一步操作 ret 用法上述推斷子程序能夠保證x5043完成內(nèi)部寫操作。向x5043存儲器陣列寫入數(shù)據(jù)時后面將尾隨一次非易失性寫操作。可以讀狀態(tài)寄存器檢查wip位,若wip為高則非易失性寫正在舉行。x5043存儲器非易失性寫周期為10ms,也可以在一個寫操作完成后作一個大于10ms的延時,以保證x5043完成內(nèi)部寫操作。3.5.3向x5043eeprom存儲器陣列中寫數(shù)據(jù) 4所示,向eeprom存儲器陣列寫入任何數(shù)據(jù)之前,必需用wren命令設置wel位。首先將cs拉低,向器件輸入wren命令,然后拉高/cs。再次拉低/cs并輸入write命令,緊尾隨
11、8位地址,然后是要寫入的數(shù)據(jù)。write命令的位3是地址位a8,該位挑選陣列的高半部分或是低半部分。假如/cs在wren和write之間不變?yōu)楦?,則write命令將被忽視。為了完成寫操作,在最后一個被寫入的數(shù)據(jù)字節(jié)的位0完成后/cs必需被拉高。假如它在任何其它時光被拉高,寫操作將不完成。寫1個字節(jié)數(shù)據(jù)的程序代碼如下: write: kick_dog call rsdr_wip ;讀狀態(tài)寄存器檢查wip位 ;寫wren命令代碼段 spiste_low ;置低spiste引腳,從而選通x5043 ldp 0 splk wren,spi_xdata call xmit_value spiste_hi
12、gh ;置高spiste引腳,禁止x5043 call rsdr_wip ;讀狀態(tài)寄存器檢查wip位 ;寫write命令/地址/數(shù)據(jù)代碼段 spiste_low ;置低spiste引腳,從而選通x5043 ldp 0 splk writel(h),spi_xdata call xmit_value ;輸入寄存器命令 ldp 0 lacl address1 sacl spi_xdata call xmit_value ;輸入寄存器地址 ldp 0 lacl data1 sacl spi_xdata call xmit_value ;輸入寄存器數(shù)據(jù) spiste_high ;置高spiste引腳,
13、禁止x5043 call rsdr_wip ;讀狀態(tài)寄存器檢查wip位,x5043完成內(nèi)部非易失性寫 ret3.5.4從x5043 eeprom中讀取數(shù)據(jù)5所示,/cs只要拉低選中器件。8位read命令送到器件,后面尾隨8位地址,就可以讀取指定地址下的eeprom存儲器陣列中的數(shù)據(jù)。read命令的位3挑選器件的高半部分或是低半部分。在read命令碼和地址送出后,在選定地址的存儲在存儲器中的數(shù)據(jù)即在so線上移出。讀操作由拉高/cs而終止。讀1個字節(jié)數(shù)據(jù)的程序代碼如下: read: kick_dog call rsdr_wip ;讀狀態(tài)寄存器檢查wip位 spiste_low ;置低spiste引
14、腳,從而選通x5043 ldp 0 splk readl(h),spi_xdata call xmit_value ;輸入寄存器命令 ldp 0 lacl address1 sacl spi_xdata call xmit_value ;輸入寄存器地址 ldp 0 lacl data1 sacl spi_xdata call xmit_value ;此data1無意義,使spi口延續(xù)提供時鐘信號,使數(shù)據(jù)輸出 ;輸出的數(shù)據(jù)存儲在spi_xdata中 spiste_high ;置高spiste引腳,禁止x5043 ret 因為x5043是一個半雙工器件,在write子程序中從spirxbuf中讀出來的數(shù)據(jù)是無效的,同時,在read子程序中寫向spitxbuf的data1數(shù)據(jù)也是無效的,只起啟動發(fā)送時鐘的作用。4結束語dsp可以延續(xù)的向eeprom中寫入多至16個字節(jié)的數(shù)據(jù)。唯一的限制是16個字節(jié)必需在同一頁中。一頁地址由x xxxx 0000開頭,由x xxxx 1111結束。假如字節(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑公司聯(lián)營財務制度
- 福耀企業(yè)財務制度
- 公司大型活動財務制度
- 中國財務制度
- 施工小企業(yè)財務制度
- 供暖公司財務制度
- 農(nóng)民工監(jiān)測調(diào)查制度
- 關于川建安證書考試提醒制度
- 林地管道施工方案(3篇)
- 上門洗車施工方案(3篇)
- 2026中國國際航空招聘面試題及答案
- 房顫搶救流程護理
- 【8地RJ期末】安徽省蕪湖市2024-2025學年八年級上學期期末考試地理試卷+
- 學生成長規(guī)劃講座模板
- 碧桂園資金池管理制度
- GB/T 2879-2024液壓傳動液壓缸往復運動活塞和活塞桿單向密封圈溝槽的尺寸和公差
- 福建省廈門市2023-2024學年高二上學期期末考試英語試題(解析版)
- 高脂血癥性急性胰腺炎教學查房課件
- 廈門高容納米新材料科技有限公司高容量電池負極材料項目環(huán)境影響報告
- 當代藝術賞析課件
- GB/T 12789.1-1991核反應堆儀表準則第一部分:一般原則
評論
0/150
提交評論