dsp的spi接口課程設(shè)計_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  2014~2015學年 第一學期</p><p>  《DSP原理及應(yīng)用》</p><p>  課 程 設(shè) 計 報 告</p><p>  題 目: DSP的SPI接口 </p><p>  班 級: 11電子信息(1) </p><p&g

2、t;<b>  姓 名: </b></p><p>  指導教師: </p><p><b>  電氣工程學院</b></p><p><b>  2014年11月</b></p><p>  《DSP原理及應(yīng)用》任務(wù)書&l

3、t;/p><p><b>  目 錄</b></p><p><b>  目 錄1</b></p><p><b>  摘 要2</b></p><p>  第1章 硬件電路設(shè)計3</p><p>  1.1 TMS320LF2407A的介紹

4、3</p><p>  1.2 TLV5617的介紹4</p><p>  1.3 DA轉(zhuǎn)換系統(tǒng)原理圖5</p><p>  第2章 軟件的設(shè)計6</p><p>  2.1 程序流程圖6</p><p>  2.2 SPI 接口的DA 實驗編程6</p><p>  第3章

5、SPI接口的EEPROM存儲區(qū)訪問8</p><p>  3.1 接口特點8</p><p>  3.2 硬件設(shè)計8</p><p>  3.3 軟件設(shè)計8</p><p><b>  總 結(jié)11</b></p><p>  參 考 文 獻12</p><p&

6、gt;<b>  附 錄13</b></p><p><b>  摘 要</b></p><p>  數(shù)字信號處理就是用數(shù)值計算的方式對信號進行加工的理論和技術(shù),它的英文原名叫digital signal processing,簡稱DSP。它是集成專用計算機的一種芯片,只有一枚硬幣那么大。有時人們也將DSP看作是一門應(yīng)用技術(shù),稱為DSP技

7、術(shù)與應(yīng)用。介紹TMS320LF2407A的SPI的D/A轉(zhuǎn)換芯片采用TLV5617進行數(shù)字到模擬的轉(zhuǎn)換通過觀察輸出的結(jié)果來驗證通信和轉(zhuǎn)換的情況。TLV5617是單極性,10位串口DA,所以生成的正弦波數(shù)據(jù)要換算到TLV5617的數(shù)據(jù)范圍,而且根據(jù)TLV5617要求的數(shù)據(jù)格式還要對換算后的數(shù)據(jù)做相應(yīng)的變換才能最終通過SPI接口發(fā)送給TLV5617.在這個應(yīng)用中SPI用于控制TLV5617工作,所以配置為主模式。從TLV5617的控制時序中

8、可以發(fā)現(xiàn)串行數(shù)據(jù)在時鐘的上升沿鎖存。因此SPI時鐘配置選擇無延下降沿即SPI在時鐘的下降沿發(fā)送數(shù)據(jù)在時鐘的上升沿數(shù)據(jù)被鎖存在TLV5617。本設(shè)計對DA轉(zhuǎn)換的工作原理的分析以及對DSP的數(shù)模轉(zhuǎn)換系統(tǒng)進行功能分析設(shè)計出數(shù)模轉(zhuǎn)換接口的系統(tǒng)框圖硬件電路圖和軟件程序。DSP的串行外設(shè)接口(SPI)完成EEPROM的存儲區(qū)訪問。</p><p>  關(guān)鍵詞:數(shù)字信號處理器 串行外設(shè)接口 D/A轉(zhuǎn)換 TLV5617

9、EEPROM</p><p>  第1章 硬件電路設(shè)計</p><p>  1.1 TMS320LF2407A的介紹</p><p>  TMS320LF2407A的D/A轉(zhuǎn)換是基于2407的SPI接口以及TLV5617芯片里完成。SPI參與數(shù)據(jù)傳輸?shù)募拇嫫饔?個,其中SPICCR、SPICTL用于設(shè)置SPI的工作狀態(tài)工作方式、數(shù)據(jù)長。作為主器件時,時鐘模式的選擇

10、要參考工作方式。SPIBRR用于設(shè)定SPI的波特率;SPISTS反映數(shù)據(jù)傳輸?shù)臓顟B(tài);SPIRXBUF、SPITXBUF用于數(shù)據(jù)的接收和發(fā)送;SPIDAT為數(shù)據(jù)的發(fā)送/接收緩沖寄存器。</p><p> ?。?)2407A的SPI工作方式和時鐘模式</p><p>  工作方式:2407A的SPI功能模塊是一種真正的同步串行接方式無延時上升沿有延時上升沿無延時下降沿有延時下降沿SPICLK信

11、號上升沿發(fā)送數(shù)據(jù),下降沿接00收數(shù)據(jù)提前SPICLK信號上升沿半個周期發(fā)送數(shù)據(jù),上升沿接收數(shù)據(jù)SPICLK信號下降沿發(fā)送數(shù)據(jù),上升沿接01口,可以工作于主動和從動方式。將SPICTL寄存器的位2(MASTER/SLAVE)設(shè)置為1,即選擇了主動工作方式,2407A作為主器件;反之,為從動方式,2407A作為從器件。當SPI工作在主動方式時,SPICLK為時鐘信號輸出端,與從器件的時鐘信號輸入引腳相連接,二者共用2407A的時鐘信號。SP

12、I數(shù)據(jù)傳輸由第30、32、33、35引腳完成。引腳功能見表1。</p><p><b>  表1 引腳功能表</b></p><p>  引腳名稱:SPISIMO(30引腳)SPISOMI(32引腳)SPISTE(33引腳)SPICLK(35引腳)</p><p>  2407A數(shù)據(jù)字長度可以是1到16位,收發(fā)數(shù)據(jù)的功能從動輸入/主動輸出從動輸

13、出/主動輸入從動發(fā)送使能串行時鐘輸入/輸出位數(shù)由SPI的配置控制寄存器SPICCR的低四位(SPICHAR3~SPICHAR0)決定。在二進制中,這四位共有16種組合,每一個組合對應(yīng)一種數(shù)據(jù)長度,比如:組合是0000時,規(guī)定收發(fā)數(shù)據(jù)的位數(shù)是1位;當組合是1111時,就規(guī)定了收發(fā)數(shù)據(jù)位數(shù)為16位。SPI數(shù)據(jù)的收發(fā)都經(jīng)過發(fā)送/接收緩沖寄存器SPIDAT。SPIDAT是一個16位寄存器,SPI發(fā)送采用左對齊方式,所以當要發(fā)送的數(shù)據(jù)小于16位時

14、,需對要發(fā)送的數(shù)據(jù)進行調(diào)整,有效位要從高位開始放置(靠左),無效位可為隨意的數(shù)據(jù)。</p><p><b>  (2) 時鐘模式</b></p><p>  SPI的時鐘模式有四種。時鐘模式的選擇由配置控制寄存器SPICCR的時鐘極性位(位6:CLOCKPO2LARITY)和接口操作控制寄存器SPICTL的時鐘相位位(位3:CLOCKPHASE)的組合狀態(tài)來決定。&l

15、t;/p><p>  圖2 SPI數(shù)據(jù)傳輸格式時序</p><p>  波特率的設(shè)定要參考外設(shè)的最大傳輸頻率。通過向波特率寄存器(SPIBRR)寫入設(shè)定值,就可以得到不同的波特率。波特率計算公式如下:SPI波特率=SYSCLK/(SPIBRR+1)(3ΦSPIBRRΦ127)(SPISPI波特率=SYSCLK/4BRR=0,1,2時)其中,SPIBRR為SPI模塊的SPIBRR寄存器中的內(nèi)容,

16、SYSCLK為倍頻或分頻后的系統(tǒng)時鐘頻率。</p><p>  1.2 TLV5617的介紹</p><p>  TLV5617A是帶有靈活3線串行接口的雙10位電壓輸出數(shù)/模轉(zhuǎn)換數(shù),DAC串行接口可與TMS320 SPITM QSPIM和MiscrowaresTM的串行端口兼容。它可用含有4個控制位和10個數(shù)據(jù)位的串行16位字符串編程。</p><p><b

17、>  其特點</b></p><p>  雙10位電壓輸出數(shù)/模轉(zhuǎn)換器DAC:可編程的內(nèi)部基準,可編程的穩(wěn)定時間,快速方式2.5s,慢速方式12s,可與TMS320和SPITM串行端口兼容</p><p>  應(yīng)用范圍:數(shù)據(jù)伺服系統(tǒng)控制回路,數(shù)據(jù)偏置和增益調(diào)節(jié)器,工業(yè)處理控制,機械和運作控制器件,海量存儲器一般功能TLV5617A是一個基于串聯(lián)電阻結(jié)構(gòu)的雙10位電源的DA

18、C,它由一個串行接口一個速度和掉電控制邏輯一個電阻字符串和一個軌對軌的輸出緩沖器組成輸出電壓全額度由內(nèi)部基準決定由一下公式給出:</p><p>  2REF CODE/0*1000【v】</p><p>  其中REFSHI 電壓基準,CODE是在0x000至0xFFC范圍內(nèi)的數(shù)字輸入值一次上電復位初始化內(nèi)部鎖存至置位狀態(tài)所有位均為0。</p><p><b

19、>  串行接口</b></p><p>  CS引腳的下降沿開始將數(shù)據(jù)一位接一位從最高有效位開始轉(zhuǎn)移到在SCLK引腳的下降沿上的內(nèi)部寄存器中在16位數(shù)據(jù)傳送完或CS上升時轉(zhuǎn)移寄存器的內(nèi)部被移入目標鎖存DACA DACB緩沖器或控制中這取決于數(shù)據(jù)字中的控制位。</p><p>  1.3 DA轉(zhuǎn)換系統(tǒng)原理圖</p><p>  圖3 DA轉(zhuǎn)換系統(tǒng)原理

20、圖</p><p>  第二章 軟件的設(shè)計</p><p><b>  2.1 程序流程圖</b></p><p>  圖4 SPI模塊軟件流程</p><p>  當SPICTL的使能發(fā)送允許位TALK位為1時,寫數(shù)據(jù)到SPIDAT或SPITXBUF就啟動了SPISIMO引腳的數(shù)據(jù)發(fā)送,數(shù)據(jù)從SPIDAT的最高位依

21、次發(fā)送出去。在數(shù)據(jù)移出SPIDAT時,將置位SPI的接口狀態(tài)寄存器SPISTS的中斷標志位SPIINTFLAG;若中斷使能,將發(fā)生中斷事件。2407A發(fā)送數(shù)據(jù)的狀態(tài)可以用兩種方法檢測:一是中斷方式,二是查詢方式。查詢方式查詢SPI中斷標志位SPIINTFLAG是否為1,若為1,則數(shù)據(jù)發(fā)送完畢。</p><p>  2.2 SPI 接口的DA 實驗編程</p><p>  DA轉(zhuǎn)換程序 #i

22、nclude "global.c" void SystemInit(); void Timer1Init(); void KickDog(); void SPI_Init(); void DA_OUT(unsigned CHANNEL,unsigned int RNG,unsigned int SPI_DATA); int numled0=200; unsigned int t0=0,i=0; int Voltage

23、=0; main() { SystemInit(); //系統(tǒng)初始化 MCRA=MCRA & 0xC0FF; //IOPB0-6設(shè)為IO口模式 PBDATDIR=0xFFC2; //所有LED=0 PBDATDIR=PBDATDIR | 0x003D; //所有LED=1 SPI_Init(); // CreateDASigal(); /* while(1) { CreateDASigal(); i=10; for(i=0;i&

24、lt;100;i++); } */ Timer1Init(); //定時器初始化 asm(" CLRC INTM "); while(1</p><p>  第三章 SPI接口的EEPROM存儲區(qū)訪問</p><p>  3.1 SPI接口特點</p><p>  TMS320F241型DSP是目前應(yīng)用比較廣泛的一款定點DSP,它具有20MIP

25、S的指令執(zhí)行速度,強大的內(nèi)部事件管理器、I/O端口和其他外圍設(shè)備。其中,串行外設(shè)接口(SPI)是一個高速同步串行輸入/輸出(I/O)端口,它允許一個具有可編程長度(1到16位)的串行位流,以可編程的位傳送速率從設(shè)備移入或移出。SPI通常用于DSP控制器和外部器件或其它控制器間的通訊。</p><p>  在開發(fā)DSP系統(tǒng)時,某些情況下會讀取或者存儲一些定值,這時我們就需要擴展EEPROM。具有SPI接口的串行EE

26、PROM均可被TMS320F241直接邏輯擴展,方便易行。X5043是Xicor公司最高時鐘速率為3.3MHz帶有塊鎖保護的4Kbits的CMOS串行EEPROM。該器件內(nèi)部組織陣列是X8位,具有串行外圍接口(SPI)和軟件協(xié)議的特點,允許在簡單的四線總線上工作;該器件利用Xicor專有的直接寫入晶片提供最小為10萬次擦寫和最少100年的數(shù)據(jù)保存期。</p><p><b>  3.2硬件設(shè)計</

27、b></p><p>  X5043與TMS320F241型DSP的連接關(guān)系如圖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);SPICLK為SPI數(shù)據(jù)傳送的時鐘信號,連接到X5043的串行時鐘端(SCK

28、),串行時鐘由DSP控制。DSP的數(shù)據(jù)在SPISIMO引腳上輸出并從SPISOMI上鎖存, DSP通過寫入SPIDAT寄存器的數(shù)據(jù)啟動SPICLK串行時鐘信號從而啟動數(shù)據(jù)傳送,當8位串行位流傳送完畢后,SPICLK信號中止,傳送結(jié)束。</p><p><b>  3.3軟件設(shè)計</b></p><p> ?。?)工作模式的選擇</p><p>

29、  TMS320F241的SPI接口有可選擇的四種不同的時鐘模式,如何選擇時鐘模式是它與各種擴展SPI接口器件實現(xiàn)時鐘同步的關(guān)鍵。X5043的數(shù)據(jù)在時鐘下降沿從SO引腳上輸出并在時鐘上升沿從SI引腳上鎖存。讀操作時,在其從SI引腳輸入的最低位地址所對應(yīng)的時鐘下降沿,其SO引腳開始輸出數(shù)據(jù)。作為主器件的DSP可以選擇 ‘上升沿,無延時’和‘上升沿、有延時’兩種時鐘工作模式?!仙?,無延時’模式與X5043的工作模式一致,數(shù)據(jù)在SPICL

30、K信號的時鐘上升邊沿(從低電平到高電平)從移位寄存器移出在SI引腳上鎖存,在時鐘下降邊沿(從高電平到低電平)從SO引腳上輸出的數(shù)據(jù)鎖存到移位寄存器中?!仙兀醒訒r’模式如圖4所示,數(shù)據(jù)在SPICLK信號上升沿前半個周期從移位寄存器移出,在緊接著的上升邊沿在SI引腳上鎖存,在時鐘下降邊沿(從高電平到低電平)從SO引腳上輸出的數(shù)據(jù)鎖存到移位寄存器中。</p><p><b>  (2)波特率的選擇<

31、;/b></p><p>  SPI波特率可以由如下兩種情況計算得出:對于SPIBRR=3~127,波特率的計算公式為:</p><p>  SPI波特率=CLKOUT/(SPIBRR+1)</p><p>  對于SPIBRR=0~2,波特率的計算公式為:SPI波特率=CLKOUT/4</p><p>  式中,CLKOUT=器件的C

32、PU時鐘頻率;SPIBRR=主SPI器件中的SPIBRR內(nèi)容。</p><p>  X5043最大的SPI波特率為3.3MHz,若DSP的CPU時鐘頻率CLKOUT=16MHz,則:最大的SPI波特率 =16×106/(SPIBRR+1)≤3.3×106HzSPIBRR≥4+9</p><p> ?。?) DSP的數(shù)據(jù)傳輸格式</p><p>

33、;  DSP中SPI有16位的發(fā)送和接收能力,且接收和發(fā)送均是雙緩沖。所有數(shù)據(jù)寄存器都是16位寬的,而X5043的地址、數(shù)據(jù)寄存器均是8位的,將DSP中SPI傳輸字符長度設(shè)置成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ù)寫入

34、SPIDAT或SPIRXBUF 的低8位上。</p><p> ?。?)各控制寄存器設(shè)置</p><p>  LDP  #SPICCR>>7SPLK  #0007h,SPICCR ;復位字符長度SPLK  #000Eh,SPICTL;主模式,使能TALK,禁止SPI的中斷;上升沿發(fā)送,下降沿接收,有延時SPLK  #

35、000Fh,SPIBRR;設(shè)置SPI的傳輸波特率SPLK  #0087h,SPICCR;SPI準備好發(fā)送或接收下一字符</p><p> ?。?)程序設(shè)計RAM塊中的變量定義:.bss  SPI_Xdata,1;SPI數(shù)據(jù)傳輸暫存器.bss  address1,1;EEPROM存儲器地址暫存器.bss  data1,1;EEPROM存儲器數(shù)據(jù)暫存器</p

36、><p>  X5043存儲器地址:WREN      .set  0600h;設(shè)置寫使能鎖存指令地址WRDI      .set  0400h;復位寫使能鎖存指令地址RSDR      .set  0500h;讀狀態(tài)寄存器指令地址

37、WRSR      .set  0100h;寫狀態(tài)寄存器指令地址READh     .set  0B00hREADl     .set  0300h;讀存儲器陣列數(shù)據(jù)指令地址WRITEh    .set  0A00hWRITEl&

38、#160;   .set  0200h;寫存儲器陣列數(shù)據(jù)指令地址</p><p> ?。?)DSP的SPI數(shù)據(jù)發(fā)送、接收子程序代碼XMIT_VALUE:LDP   #0  LACC  SPI_Xdata  LDP   #SPITXBUF>>7  SACL  SPI

39、TXBUF;寫需發(fā)送的值到SPI傳輸緩沖器XMIT_RDY:  LDP   #SPISTS>>7  BIT   SPISTS,BIT6  BCND  XMIT_RDY,NTC;測試SPI_INT位,如果SPI_INT=0,則重復循環(huán);等待數(shù)據(jù)發(fā)送完畢進行下一步操作 LDP   #SPIRXBUF>&g

40、t;7  LACL  SPIRXBUF;讀取數(shù)據(jù)清除SPI_INT標志位  LDP #0 SACL  SPI_Xdata;將接收的值存入數(shù)據(jù)傳輸暫存器RET</p><p><b>  總結(jié)</b></p><p>  DSP結(jié)構(gòu)特點決定了它尤其適合做數(shù)字信號處理的應(yīng)用,而學好數(shù)字信號處理對日后的信息

41、處理的深入學習和應(yīng)用有著重要的意義,因而學好DSP技術(shù)就有很深遠的意義。通過此次課程設(shè)計詳細掌握了TMS320LF2407A的SPI功能模塊和TLV5617的性能特點,完成了SPI的DA轉(zhuǎn)換實驗和EEPROM存儲區(qū)訪問。 在此次課程設(shè)計中我也遇到了很多問題,通過閱讀幾本參考書和其他一些資料,自己已經(jīng)基本明白了他們的作用和配置方法。還有就是程序的調(diào)試,DSP的結(jié)構(gòu)比單片機要復雜的多,相應(yīng)的寄存器比較多,而且很多情況下編寫DSP程序都需要操

42、作盒配置,這既要對諾依曼體系結(jié)構(gòu)的共性有一定了解,同時也要針對DSP的特點來進行,編程前需對各個硬件模塊之間的內(nèi)在聯(lián)系進行整體考慮,這樣可以訓練自己的系統(tǒng)思維。當然這些問題都有一定的難度,但是想辦法解決它們的過程也就是學習和進步的過程。</p><p><b>  參考文獻:</b></p><p>  [1]劉和平,王維俊,等.TMS320LF240XDSPC語言開

43、發(fā)應(yīng)用.北京:北京航空航天大學出版社,2003.</p><p>  [2]TLC5620C,TLC5620I數(shù)據(jù)手冊武漢力源電子股份有限公司,1998.</p><p>  [3]楊永輝,曹丹華,吳裕斌.TMS320LF2407A與SPI的接口設(shè)計測控技術(shù),2003,22</p><p>  [4]王改名,赫蘇敏,王忠杰,HD7279A的原理與應(yīng)用.2007<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論