DSP課程設(shè)計AD_第1頁
DSP課程設(shè)計AD_第2頁
DSP課程設(shè)計AD_第3頁
DSP課程設(shè)計AD_第4頁
DSP課程設(shè)計AD_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、鄭州航空工業(yè)管理學(xué)院電子通信工程系DSP原理及應(yīng)用課程設(shè)計報告設(shè)計題目:基于TMS320F2812 DSP處理器的信號儀的設(shè)計與實現(xiàn) 學(xué) 號: 101308205 姓 名: 韓 紅 印 專 業(yè): 電子信息工程 設(shè)計日期: 2013年6月8 日 指導(dǎo)老師: 陳 宇 老 師 1、 引言串行外設(shè)接口(SPI Serial Peripheral Interface)總線系統(tǒng)是一種同步串行外設(shè)接口,最早由Motorola公司推出,SPI是一種告訴、全雙工、同步的通信總線,信號線集束在芯片只用到4根管腳,既節(jié)省芯片管腳資源,又便于PCB布局。SPI接口以串行方式建立微處理器與外圍設(shè)備之間的信息通信,主要應(yīng)

2、用對象有AD轉(zhuǎn)換器、EEPROM、FLASH、實時時鐘及數(shù)字信號處理器等,本設(shè)計就SPI接口在AD轉(zhuǎn)換器方面的的應(yīng)用,并結(jié)合數(shù)模轉(zhuǎn)換器AD7303和TMS320F2812內(nèi)置模數(shù)轉(zhuǎn)換器來進行展開有關(guān)討論,并對正弦信號波形進行處理,對數(shù)模轉(zhuǎn)換性能進行必要的分析、處理。2、 設(shè)計目的及要求1、編寫串行外設(shè)接口SPI的驅(qū)動程序;2、了解數(shù)模轉(zhuǎn)換的基本操作,設(shè)計基于數(shù)模轉(zhuǎn)換芯片AD7303的正弦信號發(fā)生電路;3、編寫TMS320F2812利用SPI接口驅(qū)動AD7303輸出正弦信號波形的應(yīng)用程序。4、熟悉CCS集成開發(fā)環(huán)境的使用,能對程序進行跟蹤,分析結(jié)果;5、熟悉SPI外設(shè)接口的相關(guān)知識,能通過SPI

3、接口與外圍電路(芯片)進行通信。3、 總體設(shè)計4.1硬件部分數(shù)模轉(zhuǎn)換操作的應(yīng)用基礎(chǔ) 數(shù)模轉(zhuǎn)換器(ADC)基本上是一個比例上的問題,即由ADC產(chǎn)生的數(shù)字值跟輸入模擬量與轉(zhuǎn)換器量程的比值有關(guān)的。利用專用的數(shù)模轉(zhuǎn)換芯片,可以實現(xiàn)將數(shù)字信號轉(zhuǎn)換成模擬量輸出的功能。在EXPIV型實驗箱上,使用的是AD7303數(shù)模芯片,它可以實現(xiàn)同時轉(zhuǎn)換2路模擬信號數(shù)出,并有8位精度(8位電壓輸出DAC),采用+2.7V至+5.5V單電源供電,DA轉(zhuǎn)換時間1.2s。其控制方式較為簡單:首先將需要轉(zhuǎn)換的數(shù)值及控制指令同時通過SPI總線傳送到AD7303上相應(yīng)寄存器,經(jīng)過一個時間延遲,轉(zhuǎn)換后的模擬量就從AD7303輸出引腳輸

4、出。4.1.2 AD7303簡介AD7303是一款雙通道、8位電壓輸出DAC,采用+2.7 V至+5.5 V單電源供電。它內(nèi)置片內(nèi)精密輸出緩沖,能夠?qū)崿F(xiàn)軌到軌輸出擺幅。這款器件采用多功能三線式串行接口,能夠以最高30MHz的時鐘速率工作,并與QSPI(隊列穿行外設(shè)接口)、SPI(串行外設(shè)接口)、MICROWIRE(導(dǎo)電帶)以及數(shù)字信號處理器接口標(biāo)準(zhǔn)兼容。串行輸入寄存器為16位,其中高8位用作DAC的數(shù)據(jù)位,其余低8位組成一個控制寄存器。圖4-1-1 AD7303的芯片結(jié)構(gòu)框圖圖4-1-2 AD7303的芯片外觀結(jié)構(gòu)及尺寸信息圖4-1-3 AD7303 的模擬輸出表圖4-1-4 AD7303 的

5、移位寄存器的控制位(高八位)和數(shù)據(jù)位(低八位)圖4-1-5 AD7303 的移位寄存器的位定義和設(shè)置4.1.3 應(yīng)用AD7303的DAC電路設(shè)計圖4-1-6 AD7303芯片與TMS320F2812芯片的SPI接口連接圖4-1-7 AD7303通道A模擬信號調(diào)理電路圖4-1-8 AD7303通道B模擬信號調(diào)理電路4.2 軟件部分4.2.1 程序流程圖無限循環(huán)處理器上電復(fù)位CPU及串行外設(shè)接口初始化產(chǎn)生128個點的正弦信號波形按AD7303輸入移位寄存器的位定義,傳輸數(shù)據(jù),進行數(shù)模轉(zhuǎn)換雙路波形輸出4.2.2 在CCS集成開發(fā)環(huán)境下新建工程(1)實驗準(zhǔn)備設(shè)置軟件仿真模式,啟動CCS3.3,并設(shè)置成

6、軟件仿真狀態(tài)。如圖4-2-1、圖4-2-2、圖4-2-3、圖4-2-4。圖4-2-1 CCS3.3 Simulator/Emulator設(shè)置圖4-2-2 CCS3.3設(shè)置成Simulator模式圖4-2-3圖4-2-4 CCS3.3界面(2)建立新工程圖4-2-5 設(shè)置工程名稱圖4-2-6 添加Example_281x_da.c文件到工程圖4-2-7 添加DSP281x_Headers_nonBIOS.cmd文件到工程圖4-2-8 添加DSP281x_GlobalVariableDefs.c文件到工程圖4-2-9 添加F2812_EzDSP_RAM_lnk.cmd文件到工程圖4-2-10 添加

7、DSP281x_DefaultIsr.c、DSP281x_PieCtrl.c、DSP281x_PieVect.c、DSP281x_Spi.c、DSP281x_SysCtrl.c文件到工程圖4-2-11 添加DSP281x_CodeStartBranch.asm文件到工程圖4-2-12 打開Example_281x_da.c(3)對Project下的Build Options進行如圖4-2-13到圖4-2-23的操作.圖4-2-13 編譯器基本設(shè)置圖4-2-14 編譯器高級設(shè)置圖4-2-15 編譯器反饋信息設(shè)置圖4-2-16 目錄填寫“C:my fir projectsine waveDebug

8、”圖4-2-17 編譯器匯編設(shè)置圖4-2-18 編譯器的解析設(shè)置圖4-2-19 填入“C:my fir projectsine waveDSP281x_headersinclude;C:my fir projectsine waveDSP281x_commoninclude”圖4-2-20 編譯器診斷項設(shè)置圖4-2-21鏈接器的基本設(shè)置圖4-2-22 庫文件搜索路徑“C:my fir projectsine waveDSP281x_headersinclude”包含到庫文件“rts2800_ml.lib”圖4-2-23 鏈接器高級設(shè)置(4)執(zhí)行“File”下的“Load Program”操作,

9、如下圖4-2-24和圖4-2-25。圖4-2-24 執(zhí)行“File/Load Program”圖4-2-25 執(zhí)行“File/Load Program”結(jié)果(5)執(zhí)行“Graph”的“Time/Frequency”操作,如圖4-2-26、圖4-2-27和圖4-2-28。圖4-2-26 執(zhí)行“Graph”的“Time/Frequency”操作圖4-2-27 執(zhí)行相關(guān)參數(shù)設(shè)置(時域)圖4-2-28 執(zhí)行相關(guān)參數(shù)設(shè)置(頻域)(6)設(shè)置斷點,生成波形圖4-2-29 設(shè)置斷點在Simulator環(huán)境下觀察信號的時域及FFT Magnitude波形圖4-2-30 生成的正弦波形圖4-2-31 時域正弦波圖

10、4-2-32 對正弦波進行快速傅里葉變換后的頻域波形4.2.4 程序清單;* CPU類型 : DSP TMS320F2812 ;* 軟件環(huán)境 : CCS3.3;* 接線說明 : 1、F2812CPU板的JUMP1的2和3腳短接,JUMP2的1和2腳短接;;* 2、實驗箱底板的開關(guān)K9撥到右側(cè),選擇CPU2.;* 測試現(xiàn)象 : 設(shè)置好CCS的環(huán)境,打開本工程,編譯、下載、運行。;* 利用示波器觀察實驗箱DA單元的二號孔"輸出1"有正弦波輸出。*/ /*頭文件*/#include "DSP281x_Device.h" / DSP281x Headerfile

11、 Include File#include "DSP281x_Examples.h" / DSP281x Examples Include File#include "math.h"#define pi 3.1415926unsigned int curve128; unsigned int curve1128; unsigned int curve2128;/ Prototype statements for functions found within this file.void spi_init(void);void delay(void); v

12、oid main(void) int i,p,data;/ Step 1. Initialize System Control:/ PLL, WatchDog, enable Peripheral Clocks/ This example function is found in the DSP281x_SysCtrl.c file. InitSysCtrl();/ Step 2. Initalize GPIO: / This example function is found in the DSP281x_Gpio.c file and/ illustrates how to set the

13、 GPIO to it's default state./ InitGpio(); / Skipped for this example / Setup only the GP I/O only for SPI functionality EALLOW; GpioMuxRegs.GPFMUX.all=0x000F;/ Select GPIOs to be SPI pins / Port F MUX - x000 0000 0000 1111 EDIS;/ Step 3. Clear all interrupts and initialize PIE vector table:/ Dis

14、able CPU interrupts DINT;/ Initialize PIE control registers to their default state./ The default state is all PIE interrupts disabled and flags/ are cleared. / This function is found in the DSP281x_PieCtrl.c file. InitPieCtrl();/ Disable CPU interrupts and clear all CPU interrupt flags: IER = 0x0000

15、; IFR = 0x0000;/ Initialize the PIE vector table with pointers to the shell Interrupt / Service Routines (ISR). / This will populate the entire table, even if the interrupt/ is not used in this example. This is useful for debug purposes./ The shell ISR routines are found in DSP281x_DefaultIsr.c./ Th

16、is function is found in DSP281x_PieVect.c. InitPieVectTable();/ Step 4. Initialize all the Device Peripherals:/ This function is found in DSP281x_InitPeripherals.c/ InitPeripherals(); / Not required for this example/ spi_fifo_init(); / Initialize the Spi FIFO spi_init(); / init SPI for(i=0; i<128

17、;i+) data=(int)(127.5*(1+sin(2*pi*i/127); /產(chǎn)生128個點的正弦信號波形 curvei=data; curve1i=data&0x00ff|0x0100; /將數(shù)據(jù)打包成“從移位寄存器到DAC A數(shù)據(jù)寄存器 curve2i=data&0x00ff|0x2500; /將數(shù)據(jù)打包成“從移位寄存器到DAC B數(shù)據(jù)寄存器 /且用數(shù)據(jù)寄存器同時更新A和B兩個DA的值 for(;) for(p=0;p<128;p+) /*將數(shù)據(jù)寫入AD7303*/ SpiaRegs.SPITXBUF=curve1p; delay(); /*將數(shù)據(jù)寫入AD73

18、03*/ SpiaRegs.SPITXBUF=curve2p; delay(); void spi_init() RESET=0; / Reset SCISpiaRegs.SPICCR.all =0x000F; / Reset on, rising edge, 16-bit char bits SpiaRegs.SPICTL.all =0x000E; / Enable master mode, normal phase, SpiaRegs.SPISTS.all=0x0080; / enable talk, and SPI int disabled.SpiaRegs.SPIBRR =0x0000

19、; / Baud rate; SpiaRegs.SPIPRI.bit.FREE = 1; / Set so breakpoints don't disturb xmission SpiaRegs.SPICCR.bit.SPISWRESET=1; / Enable SPI void delay(void) /延時子程序 unsigned int k; for(k=0;k<50;k+);4.3 調(diào)試部分4.3.1 硬件調(diào)試(進行硬件調(diào)試時要先進行相關(guān)設(shè)置)(1)將CCS設(shè)置Emulator的方式(通過硬件仿真調(diào)試器XDS510連接C2000開發(fā)板進行硬件仿真調(diào)試的方式),并且指定通過

20、XDS510 USB接口仿真器C2000硬件評估電路板。如圖4-3-1。圖4-3-1 Emulator方式設(shè)置(2) 打開路徑“C:my fir projectsine wave”文件中的工程文件。 (3)編譯鏈接工程。選擇菜單“Project”的“Rebuild All”項,或單擊工具條中的按鈕。注意編譯過程中CCS3.3主窗口下部“Build”提示窗中顯示編譯信息,最后將給出錯誤和警告的統(tǒng)計數(shù)。如圖4-3-2圖4-3-2 編譯結(jié)果(4)下載程序。執(zhí)行FileàLoad Program,在隨后打開的對話框中選擇剛剛建立的C:my fir projectsine waveDebugs

21、ine wave.out文件,點擊“打開”按鈕如圖4-3-3。CCS將程序加載到硬件仿真器上,并打開Disassembly窗口,該窗口顯示反匯編指令。圖4-3-3 下載sine wave.out文件(5)運行程序。先使用Debug下的Go main命令,然后選擇DebugRun。(6)測試輸出信號。先將示波器一信號輸入線接在實驗板上的END上,然后將另一個信號輸入線接在A/D信號輸出口上,調(diào)試示波器,示波器屏幕上將出現(xiàn)一個正弦波。如圖4-3-4所示:圖4-3-4 波形輸出單擊完成和保存設(shè)置(7)通過傳輸線連接到試驗臺并通過示波器進行輸出,可測得模擬輸出電壓約為3.3V,即的電壓約為1.6V。(基本符合AD7303的設(shè)置,即)4.3.2 軟件調(diào)試這次課程設(shè)計所需的基本資料和程序平時已經(jīng)由老師已經(jīng)給定,所以我在操作過程按所給資料進行必要的整合和設(shè)計,基本上可以很好地實現(xiàn)設(shè)計的要求??梢韵仁褂肈ebug8Go

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論