

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> DSP設計報告</b></p><p> 題目CPU內(nèi)部AD轉(zhuǎn)換</p><p> 學 院: 物理與信息工程學院 </p><p> 專 業(yè): 測 控 </p><p><b> 2013年1月2日</b></
2、p><p><b> 目 錄</b></p><p> 一:設計目的…………………………………..........…………3</p><p> 二:實驗設備..……………………………………………3</p><p> 三:實驗原理.……………………………………………...……4</p><p>
3、; 四:實驗說明..…………………………………………………7</p><p> 五:實驗數(shù)據(jù)…………………………………..……………10</p><p> 六:心得與體會……………………………………………11</p><p> A/D實驗(CPU)</p><p><b> 一:設計目的</b></p&g
4、t;<p> 1. 熟悉CPU內(nèi)部AD轉(zhuǎn)換的基本原理。</p><p> 2. 掌握TMS320F2812的內(nèi)部ADC功能模塊的指標和常用方法。</p><p><b> 二、實驗設備</b></p><p> 計算機,CCS3.3版本軟件,DSP仿真器,E300實驗箱,2812CPU板(新的),信號線,示波器</p
5、><p><b> 三、實驗原理與任務</b></p><p><b> 1、實驗原理:</b></p><p> TMS320F2812DSP自帶16路12位單極性ADC轉(zhuǎn)換器,并且內(nèi)置雙采樣保持器。快速轉(zhuǎn)換時間運行在25MHz。16個通道可配置為兩個獨立的8通道模塊以便為事件管理器A和B服務。兩個獨立的8通道模塊可以
6、級聯(lián)組成一個16通道模塊。雖然有多個輸入通道和兩個序列器,但是ADC模塊只有一個轉(zhuǎn)換器。</p><p> 下圖給出了F2812的ADC模塊框圖。</p><p> 兩個8通道模塊具有一對系列轉(zhuǎn)換和自動序列化的能力,通過模擬多路復用器,每個模塊都可以選擇可用的8個通道中的任何一個通道。在級聯(lián)模式下,自動序列發(fā)生器可作為一個單一的16通道序列發(fā)生器。在每個序列發(fā)生器上,一旦轉(zhuǎn)換結束,已選
7、擇的通道值就保存在各個通道的結果寄存器ADCRESULT中。</p><p> 自動序列化允許系統(tǒng)對同一通道轉(zhuǎn)換多次,允許用戶執(zhí)行過采樣算法。這較傳統(tǒng)的單一采樣轉(zhuǎn)換結果增加了更多的解決方案。</p><p> 輸入模擬電壓的數(shù)字值為:</p><p> 數(shù)字值=4095×(輸入模擬電壓值)/3</p><p> 多觸發(fā)源啟動
8、序列轉(zhuǎn)換(SOC)包括:</p><p> ●S/W:軟件直接啟動;</p><p> ●EVA/B:事件管理器A/B(EVA/B內(nèi)有多個事件源);</p><p> ●S/W:外部引腳。</p><p> 具體的原理和相關內(nèi)容,請讀者參閱相關的文檔和書籍。</p><p><b> 2、實驗任務一
9、:</b></p><p> 通過信號發(fā)生器,產(chǎn)生方波和正玄波,由DSP自帶AD將數(shù)據(jù)采集到DSP內(nèi),經(jīng)過CCS自帶的graph功能,運行程序,觀察測試結果。</p><p><b> 3、程序框圖</b></p><p><b> 4、主要程序:</b></p><p> #i
10、nclude "DSP281x_Device.h" // DSP281x Headerfile Include File</p><p> #include "DSP281x_Examples.h" // DSP281x Examples Include File</p><p> interrupt void adc_isr(voi
11、d);</p><p> Uint16 LoopCount;</p><p> Uint16 ConversionCount;</p><p> Uint16 input1[256];</p><p> Uint16 input2[256];</p><p> Uint16 Mixing[256];</
12、p><p> void main(void) </p><p><b> {</b></p><p> InitSysCtrl();</p><p><b> EALLOW;</b></p><p> SysCtrlRegs.PLLCR.all=0x8;</p&g
13、t;<p> SysCtrlRegs.HISPCP.all = 0x3; </p><p><b> EDIS; </b></p><p><b> DINT;</b></p><p> InitPieCtrl();</p><p> IER = 0x0000;<
14、/p><p> IFR = 0x0000;</p><p> InitPieVectTable(); </p><p><b> EALLOW; </b></p><p> PieVectTable.ADCINT = &adc_isr;</p><p><
15、b> EDIS; </b></p><p> InitAdc(); </p><p> PieCtrlRegs.PIEIER1.bit.INTx6 = 1;</p><p> IER |= M_INT1; </p><p> EINT; </p><p> ERTM
16、; </p><p> LoopCount = 0;</p><p> ConversionCount = 0; </p><p> AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; </p><p> AdcRegs.ADCMAXCONV.all = 0x0001; &l
17、t;/p><p> AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0;</p><p> AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x2;</p><p> AdcRegs.ADCTRL2.bit.EVA_SOC_SEQ1 = 1; </p><p> AdcRegs.ADCTRL2.
18、bit.INT_ENA_SEQ1 = 1; </p><p> EvaRegs.T1CMPR = 0x0380; </p><p> EvaRegs.T1PR = 0x07FF; </p><p> EvaRegs.GPTCONA.bit.T1TOADC = 1; </p>
19、<p> EvaRegs.T1CON.all = 0x1042; </p><p><b> for(;;)</b></p><p><b> {</b></p><p> LoopCount++;</p><p><b> }</b>&
20、lt;/p><p><b> }</b></p><p> interrupt void adc_isr(void)</p><p><b> {</b></p><p> input1[ConversionCount] = AdcRegs.ADCRESULT0 >>4;</
21、p><p> input2[ConversionCount] = AdcRegs.ADCRESULT1 >>4;</p><p> Mixing[ConversionCount] = input1[ConversionCount] + input2[ConversionCount];</p><p> if(ConversionCount == 256
22、) </p><p><b> {</b></p><p> ConversionCount = 0;//加軟件斷點</p><p><b> }</b></p><p> else ConversionCount++; </p><p> AdcRegs.ADC
23、TRL2.bit.RST_SEQ1 = 1; </p><p> AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; </p><p> PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; </p><p><b> return;</b></p>
24、;<p><b> }</b></p><p><b> 四、實驗說明:</b></p><p> 1、本實驗是用DSP自帶的ADC轉(zhuǎn)換器采集信號源的信號。并將采集到的信號儲存到指定的內(nèi)存區(qū)域。由于ADC是單極性的,所以從信號源過來的雙極性信號經(jīng)過偏置電路轉(zhuǎn)換成單極性信號然后由ADC采樣。</p><p&g
25、t; 2、實驗中相關語句說明:</p><p> /*************************頭文件*********************************/</p><p> #include "DSP281x_Device.h" // DSP281x Headerfile Include File</p><p&g
26、t; #include "DSP281x_Examples.h" // DSP281x Examples Include File</p><p> // Prototype statements for functions found within this file.</p><p> interrupt void adc_isr(void);</p
27、><p> 采用中斷方式來處理AD轉(zhuǎn)換,也就是在AD轉(zhuǎn)換完后可以產(chǎn)生中斷,然后由DSP處理。</p><p> // Global variables used in this example:</p><p> Uint16 LoopCount;</p><p> Uint16 ConversionCount; AD轉(zhuǎn)換的次數(shù)</
28、p><p> Uint16 input1[256];</p><p> Uint16 input2[256];</p><p> Uint16 Mixing[256];</p><p> void main(void) </p><p><b> {</b></p><p
29、> InitSysCtrl();</p><p><b> EALLOW;</b></p><p> SysCtrlRegs.PLLCR.all=0x8;</p><p> SysCtrlRegs.HISPCP.all = 0x3; // HSPCLK = SYSCLKOUT/6</p><p><
30、b> EDIS;</b></p><p><b> DINT;</b></p><p> 初始化外設中斷控制器</p><p> InitPieCtrl();</p><p> 禁止中斷,同時清中斷標記和中斷允許。</p><p> IER = 0x0000;<
31、/p><p> IFR = 0x0000;</p><p> 初始化外設中斷控制器向量表。</p><p> InitPieVectTable(); </p><p> 將中斷服務程序地址填入中斷向量表。 </p><p> EALLOW; // This is needed to write to E
32、ALLOW protected register</p><p> PieVectTable.ADCINT = &adc_isr;</p><p> EDIS; // This is needed to disable write to EALLOW protected registers</p><p> 初始化ADC,該程序在后面有詳細介紹。
33、</p><p> InitAdc(); // For this example, init the ADC</p><p> 以下程序開AD轉(zhuǎn)換中斷。</p><p> PieCtrlRegs.PIEIER1.bit.INTx6 = 1;</p><p> IER |= M_INT1; // Enable CPU Interrup
34、t 1</p><p> EINT; // Enable Global interrupt INTM</p><p> ERTM; // Enable Global realtime interrupt DBGM</p><p> LoopCount = 0;</p><p> Conversion
35、Count = 0; </p><p><b> 設置AD轉(zhuǎn)換參數(shù):</b></p><p> AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; 16通道采樣模式,排序器1,2進行級聯(lián)</p><p> AdcRegs.ADCMAXCONV.all = 0x0001; // SEQ1中有兩個通
36、道采樣</p><p> AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x0; // ADCINA0 在SEQ1中第一個采樣</p><p> AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x2; // ADCINA2 在SEQ1中第二個采樣</p><p> AdcRegs.ADCTRL2.bit.EVA_SO
37、C_SEQ1 = 1; // 啟動SEQ1采樣</p><p> AdcRegs.ADCTRL2.bit.INT_ENA_SEQ1 = 1; // 允許SEQ1采樣中斷</p><p> 參見資料Spru060d,</p><p> 以下設置定時器1的比較寄存器的值</p><p> EvaRegs.T1CMPR = 0x0380
38、; // Setup T1 compare value</p><p><b> 設置周期寄存器的值</b></p><p> EvaRegs.T1PR = 0x07FF; // Setup period register</p><p> 將定時器1用于AD轉(zhuǎn)換的定時</
39、p><p> EvaRegs.GPTCONA.bit.T1TOADC = 1; // Enable EVASOC in EVA</p><p> 允許定時器1進入比較模式。</p><p> EvaRegs.T1CON.all = 0x1042; // Enable timer 1 compare (upcount mode)&l
40、t;/p><p><b> 等待AD轉(zhuǎn)換時間。</b></p><p><b> for(;;)</b></p><p><b> {</b></p><p> LoopCount++;</p><p><b> }</b>&
41、lt;/p><p><b> }</b></p><p> AD轉(zhuǎn)換 中斷服務程序</p><p> interrupt void adc_isr(void)</p><p><b> {</b></p><p> 將采集來的值進行保存</p><
42、p> input1[ConversionCount] = AdcRegs.ADCRESULT0 >>4;</p><p> input2[ConversionCount] = AdcRegs.ADCRESULT1 >>4;</p><p> Mixing[ConversionCount] = input1[ConversionCount] + input
43、2[ConversionCount]; </p><p> if(ConversionCount == 256) </p><p> {最多采集256個數(shù)。</p><p> ConversionCount = 0;//加軟件斷點</p><p><b> }</b></p><p>
44、 else ConversionCount++;</p><p> // Reinitialize for next ADC sequence</p><p> 以下使SEQ1可以重新進行中斷,和采樣。</p><p> AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1</p><
45、;p> AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit</p><p> PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE </p><p><b> return;</b>&l
46、t;/p><p><b> }</b></p><p> 在文件dsp281x_Adc.c中定義</p><p> void InitAdc(void)</p><p><b> {</b></p><p><b> 內(nèi)部參考基準上電</b><
47、;/p><p> AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3;// Power up bandgap/reference circuitry</p><p><b> 模擬電路上電。</b></p><p> AdcRegs.ADCTRL3.bit.ADCPWDN = 1;// Power up rest o
48、f ADC</p><p> //DELAY_US(ADC_usDELAY2); // Delay after powering up ADC</p><p><b> }</b></p><p><b> 五、實驗數(shù)據(jù)</b></p><p><b&g
49、t; 六、心得體會:</b></p><p> 通過這些實驗的設計與操作,我們深深體會到DSP的理論知識與實踐相結合的重要性。在老師的指導下,我們完成了DSP的所有實驗,并學會了CCS 3.1版軟件,DSP仿真器,E300實驗箱,2812CPU板等的基本操作,掌握了外部斷的處理方法、數(shù)據(jù)存儲實驗、CUP定時器中斷方式控制程序流程A/D轉(zhuǎn)換模塊的使用、撥碼開關、了解DSP開發(fā)系統(tǒng)的組成和結
50、構、掌握F2812的CPU定時器的控制方法,同時非常感謝老師和同學們的幫助。</p><p> 1、實驗指導書中已給出一部分內(nèi)容的完整代碼,需要自己思考改動的地方不多,因此實驗難度不大。 </p><p> 2、硬件是基礎,做實驗時要首先檢查硬件設備是否可用,保證后續(xù)實驗的可檢測性。特別是要確定程序能輸入到實驗箱中。 </p><p> 3
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ad轉(zhuǎn)換器課程設計
- 單片機課程設計----ad轉(zhuǎn)換
- 單片機課程設計ad轉(zhuǎn)換
- dsp數(shù)字信號處理課程設計報告---基于tlv1571的ad轉(zhuǎn)換
- 課程設計---逐次漸近型ad轉(zhuǎn)換器
- 微機原理課程設計報告書--ad轉(zhuǎn)換
- 計數(shù)型ad轉(zhuǎn)換器課程設計報告
- 單片機課程設計---ad轉(zhuǎn)換系統(tǒng)設計
- dsp數(shù)字信號處理課程設計報告-- ad接口設計
- dsp課程設計--基于dsp的spi接口da轉(zhuǎn)換系統(tǒng)設計
- ad課程設計
- 基于單片機的系統(tǒng)課程設計---ad轉(zhuǎn)換
- dsp課程設計
- dsp課程設計---dsp芯片簡介
- dsp課程設計報告
- dsp課程設計實驗
- 微機皮帶課程設計ad
- dsp課程設計報告
- dsp課程設計實驗
- 課程設計--進制轉(zhuǎn)換
評論
0/150
提交評論