

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 電子通信工程系</b></p><p> DSP原理及應(yīng)用課程設(shè)計報告</p><p> 設(shè)計題目:基于TMS320F2812 DSP處理器的信號儀的設(shè)計與實現(xiàn)</p><p><b> 引言</b></p><p><b> 二、設(shè)計目的</b
2、></p><p> 1、編寫串行外設(shè)接口SPI的驅(qū)動程序;</p><p> 2、了解數(shù)模轉(zhuǎn)換的基本操作,設(shè)計基于數(shù)模轉(zhuǎn)換芯片AD7303的正弦信號發(fā)生電路;</p><p> 3、編寫TMS320F2812利用SPI接口驅(qū)動AD7303輸出正弦信號波形的應(yīng)用程序。</p><p><b> 三、設(shè)計要求</b
3、></p><p><b> 四、總體設(shè)計</b></p><p><b> 4.1硬件部分</b></p><p> 4.1.1數(shù)模轉(zhuǎn)換操作的應(yīng)用基礎(chǔ)</p><p> 利用專用的數(shù)模轉(zhuǎn)換芯片,可以實現(xiàn)將數(shù)字信號轉(zhuǎn)換成模擬量輸出的功能。在EXPIV型實驗箱上,使用的是AD7303數(shù)模
4、芯片,它可以實現(xiàn)同時轉(zhuǎn)換2路模擬信號數(shù)出,并有8位精度,DA轉(zhuǎn)換時間1.2μs。其控制方式較為簡單:首先將需要轉(zhuǎn)換的數(shù)值及控制指令同時通過SPI總線傳送到AD7303上相應(yīng)寄存器,經(jīng)過一個時間延遲,轉(zhuǎn)換后的模擬量就從AD7303輸出引腳輸出。</p><p> 4.1.2 AD7303簡介</p><p> AD7303是一款雙通道、8位電壓輸出DAC,采用+2.7 V至+5.5 V單
5、電源供電。它內(nèi)置片內(nèi)精密輸出緩沖,能夠?qū)崿F(xiàn)軌到軌輸出擺幅。這款器件采用多功能三線式串行接口,能夠以最高30MHz的時鐘速率工作,并與QSPI、SPI、MICROWIRE以及數(shù)字信號處理器接口標(biāo)準(zhǔn)兼容。串行輸入寄存器為16位,其中8位用作DAC的數(shù)據(jù)位,其余8位組成一個控制寄存器。</p><p> 圖1 數(shù)字量與輸出模擬量換算表</p><p> 圖2 輸入移位寄存器</p>
6、;<p> 圖3 AD7303輸入移位寄存器位定義及設(shè)置方式</p><p> 4.1.3 應(yīng)用AD7303的DAC電路設(shè)計</p><p> 圖4 AD7303電路設(shè)計</p><p><b> 4.2 軟件部分</b></p><p> 4.2.1 程序流程圖</p><p
7、> 4.2.2 在CCS集成開發(fā)環(huán)境下新建工程</p><p> 4.2.3在Simulator環(huán)境下觀察信號的時域及FFT Magnitude波形</p><p> 4.2.4 程序清單</p><p> ;*************************************************************/</p>
8、<p> /*----------------------- 文件信息 ---------------------------- </p><p><b> ;* </b></p><p> ;* 文件名稱 : Example_DSP281x_da.c </p>
9、;<p> ;* 適用平臺 : DSP專家4實驗箱</p><p> ;* CPU類型 : DSP TMS320F2812 </p><p> ;* 軟件環(huán)境 : CCS2.20 (2000系列)</p><p> ;* 試驗接線 : 1、F2812CPU板的JUMP1的2和3腳短接,JUMP2的1和2腳短接;</p><
10、p> ;* 2、實驗箱底板的開關(guān)K9撥到右側(cè),選擇CPU2.</p><p> ;* 試驗現(xiàn)象 : 設(shè)置好CCS的環(huán)境,打開本工程,編譯、下載、運行。</p><p> ;* 利用示波器觀察實驗箱DA單元的二號孔"輸出1"有正弦波輸出。</p><p> ;* 地址譯碼說明:基地址(0x8
11、0000) </p><p> */ </p><p> /***************************頭文件*******************************/</p><p> #include "DSP281x_Device.h" // DSP281x
12、 Headerfile Include File</p><p> #include "DSP281x_Examples.h" // DSP281x Examples Include File</p><p> #include "math.h"</p><p> #define pi 3.1415926</p
13、><p> unsigned int curve[128]; </p><p> unsigned int curve1[128]; </p><p> unsigned int curve2[128];</p><p> // Prototype statements for functions found within this fi
14、le.</p><p> // interrupt void ISRTimer2(void);</p><p> void spi_init(void);</p><p> //void spi_fifo_init(void);</p><p> void delay(void); </p><p> voi
15、d main(void)</p><p><b> {</b></p><p> int i,p,data;</p><p> // Step 1. Initialize System Control:</p><p> // PLL, WatchDog, enable Peripheral Clocks<
16、/p><p> // This example function is found in the DSP281x_SysCtrl.c file.</p><p> InitSysCtrl();</p><p> // Step 2. Initalize GPIO: </p><p> // This example function is
17、 found in the DSP281x_Gpio.c file and</p><p> // illustrates how to set the GPIO to it's default state.</p><p> // InitGpio(); // Skipped for this example </p><p> // Setup
18、 only the GP I/O only for SPI functionality</p><p><b> EALLOW;</b></p><p> GpioMuxRegs.GPFMUX.all=0x000F;// Select GPIOs to be SPI pins </p><p> // Port F MUX - x00
19、0 0000 0000 1111</p><p><b> EDIS;</b></p><p> // Step 3. Clear all interrupts and initialize PIE vector table:</p><p> // Disable CPU interrupts </p><p>
20、<b> DINT;</b></p><p> // Initialize PIE control registers to their default state.</p><p> // The default state is all PIE interrupts disabled and flags</p><p> // ar
21、e cleared. </p><p> // This function is found in the DSP281x_PieCtrl.c file.</p><p> InitPieCtrl();</p><p> // Disable CPU interrupts and clear all CPU interrupt flags:</p>
22、;<p> IER = 0x0000;</p><p> IFR = 0x0000;</p><p> // Initialize the PIE vector table with pointers to the shell Interrupt </p><p> // Service Routines (ISR). </p>
23、<p> // This will populate the entire table, even if the interrupt</p><p> // is not used in this example. This is useful for debug purposes.</p><p> // The shell ISR routines are foun
24、d in DSP281x_DefaultIsr.c.</p><p> // This function is found in DSP281x_PieVect.c.</p><p> InitPieVectTable();</p><p> // Step 4. Initialize all the Device Peripherals:</p>
25、<p> // This function is found in DSP281x_InitPeripherals.c</p><p> // InitPeripherals(); // Not required for this example</p><p> // spi_fifo_init(); // Initialize the Spi FIFO<
26、;/p><p> spi_init(); // init SPI</p><p> for(i=0; i<128;i++) </p><p><b> {</b></p><p> /*產(chǎn)生128個點的正弦信號波形*/</p><p> data=(int)(127.5*(1+
27、sin(2*pi*i/127))); </p><p> curve[i]=data; </p><p> /*將數(shù)據(jù)打包成“從移位寄存器到DAC A數(shù)據(jù)寄存器*/ </p><p> curve1[i]=data&0x00ff|0x0100; </p><p> /*將數(shù)據(jù)打包成“從移位寄存器
28、到DAC B數(shù)據(jù)寄存器 </p><p> 且用數(shù)據(jù)寄存器同時更新A和B兩個DA的值*/ </p><p> curve2[i]=data&0x00ff|0x2500; </p><p><b> }</b></p><p><b> for(;;)</b></p
29、><p><b> { </b></p><p> for(p=0;p<128;p++)</p><p><b> {</b></p><p> /*將數(shù)據(jù)寫入AD7303*/</p><p> SpiaRegs.SPITXBUF=curve1[p]; &
30、lt;/p><p><b> delay();</b></p><p> /*將數(shù)據(jù)寫入AD7303*/</p><p> SpiaRegs.SPITXBUF=curve2[p]; </p><p><b> delay();</b></p><p><b&g
31、t; } </b></p><p><b> }</b></p><p><b> } </b></p><p> void spi_init()</p><p><b> { </b></p><p> SpiaRegs
32、.SPICCR.bit.SPISWRESET=0; // Reset SCI</p><p> SpiaRegs.SPICCR.all =0x000F; // Reset on, rising edge, 16-bit char bits </p><p> SpiaRegs.SPICTL.all =0x000E; // Enable m
33、aster mode, normal phase,</p><p> SpiaRegs.SPISTS.all=0x0080; // enable talk, and SPI int disabled.</p><p> SpiaRegs.SPIBRR =0x0000;
34、 // Baud rate; </p><p> SpiaRegs.SPIPRI.bit.FREE = 1; // Set so breakpoints don't disturb xmission </p><p> SpiaRegs.SPICCR.bit.SPISWRESET=1; // Enable SPI
35、 </p><p><b> }</b></p><p> void delay(void) //延時子程序</p><p><b> {</b></p><p> unsigned int k;</p><p> for(k=0
36、;k<50;k++);</p><p><b> }</b></p><p><b> 4.3 調(diào)試部分</b></p><p> 4.3.1 硬件調(diào)試</p><p> 4.3.2 軟件調(diào)試</p><p> 4.3.3 SCI串行數(shù)據(jù)傳輸</p>
37、;<p><b> 五、總結(jié)</b></p><p> 通過本實驗的設(shè)計,了解了CCS集成開發(fā)環(huán)境的大體使用情況,并會對程序?qū)崿F(xiàn)跟蹤,了解了數(shù)模轉(zhuǎn)換的基本操作,并分析了其結(jié)果。熟悉了SPI外設(shè)接口的相關(guān)知識,能通過SPI接口與外圍電路進(jìn)行通信。通過這次課程設(shè)計,讓我對所學(xué)的DSP課程有了實在的應(yīng)用,并對其產(chǎn)生了一些興趣,我會在以后的學(xué)習(xí)中,繼續(xù)努力學(xué)習(xí)!雖然在做的過程中,出
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計---基于tms320f2812 dsp處理器的信號儀的設(shè)計與實現(xiàn)
- dsp課程設(shè)計--基于tms320f2812 dsp處理器的fir濾波器的設(shè)計與實現(xiàn)
- dsp課程設(shè)計報告--基于tms320f2812 dsp處理器的fir濾波器的設(shè)計與實現(xiàn)
- dsp原理及其應(yīng)用技術(shù)課程設(shè)計--基于tms320f2812 dsp微處理器的最小系統(tǒng)設(shè)計
- dsp課程設(shè)計--基于tms320f2812的dsp最小系統(tǒng)設(shè)計
- 基于數(shù)字信號處理器tms320f2812的逆變電路設(shè)計
- 課程設(shè)計--基于tms320f2812的人機接口設(shè)計
- 基于DSP TMS320F2812的動態(tài)電壓恢復(fù)器研究.pdf
- 基于tms329f2812dsp的課程設(shè)計
- 基于TMS320F2812DSP的動態(tài)信號分析儀.pdf
- 基于DSP TMS320F2812多軸運動控制系統(tǒng)的設(shè)計.pdf
- 基于TMS320F2812實驗系統(tǒng)的設(shè)計與應(yīng)用.pdf
- 基于TMS320F2812的電力參數(shù)測試儀的設(shè)計與實現(xiàn).pdf
- 基于TMS320F2812的毫米波探測器信號處理系統(tǒng)設(shè)計與實現(xiàn).pdf
- 基于TMS320F2812的脈沖發(fā)生器設(shè)計.pdf
- 基于TMS320F2812 DSP的太陽能獨立光伏發(fā)電系統(tǒng)設(shè)計.pdf
- 基于DSP TMS320F2812的軟開關(guān)CO2焊機研究.pdf
- 畢業(yè)設(shè)計---基于tms320f2812的頻譜分析儀設(shè)計
- 基于TMS320F2812的智能變送器的設(shè)計與實現(xiàn).pdf
- 基于TMS320F2812的信號檢測與處理綜合實驗平臺研制.pdf
評論
0/150
提交評論