ccs6.0f28335至尊板軟件用戶手冊(cè)_第1頁
ccs6.0f28335至尊板軟件用戶手冊(cè)_第2頁
ccs6.0f28335至尊板軟件用戶手冊(cè)_第3頁
ccs6.0f28335至尊板軟件用戶手冊(cè)_第4頁
ccs6.0f28335至尊板軟件用戶手冊(cè)_第5頁
已閱讀5頁,還剩104頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

電氣科技保留隨時(shí)對(duì)其產(chǎn)品進(jìn)行修改、改進(jìn)和完善的權(quán)利,同時(shí)也保獲取相關(guān)信息的版本,并驗(yàn)證這些信息是當(dāng)前的和完整的。 電氣科技第一章YXDSP-F28335A開發(fā)平臺(tái)硬件測 第二章實(shí)驗(yàn)例程詳 浮點(diǎn)運(yùn)算實(shí) LED跑馬燈實(shí) 外部SRAM實(shí) 片外FLASH實(shí) 定時(shí)器實(shí) 外部中斷實(shí) 實(shí) CAP實(shí) -CAP實(shí) CAN實(shí) RTL8019網(wǎng)口測 UART串口實(shí) DA實(shí) DA與AD聯(lián)合實(shí) 外擴(kuò)EEPROM實(shí) RTC實(shí)時(shí)時(shí)鐘測 LCD液晶實(shí) USB實(shí) AIC23實(shí) 第二章保修與服 第三章其他產(chǎn) 第一章YXDSP-F28335A開發(fā)平臺(tái)硬件測試YXDSP-F28335系列開發(fā)板根據(jù)每個(gè)子產(chǎn)品所配備的外設(shè)資源不同,而配備不同的開發(fā)試驗(yàn)例程,例程均為源代碼,載入均可直接運(yùn)行,例程代碼有注釋說明。例程圖示序號(hào)1GPIO-LED測試2GPIO-Setup實(shí)驗(yàn)3TIMER0定時(shí)測試4TIMER1定時(shí)測試5TIMER2定時(shí)測試6DA7ADC8ADC-SEQ9AD、DA聯(lián)合試驗(yàn)AIC23音頻測試CAN39VF800外擴(kuò)FLASHExInt外部中斷測試EXRAMSRAMDMARAMRTL8019網(wǎng)口測試IPSCIBSCIC-AQ-TIMER-INT-CAP聯(lián)合實(shí)驗(yàn)_DEADBAND實(shí)驗(yàn)-EQEP實(shí)驗(yàn)HR實(shí)HR_SFO實(shí)CAPCAP-A實(shí)QEP-FREQCAL實(shí)驗(yàn)QEP-POS-SPEED實(shí)驗(yàn)外擴(kuò)EEPROM讀寫測試LCD12864圖形顯示測試USBRTC實(shí)時(shí)時(shí)鐘測試浮點(diǎn)運(yùn)算試驗(yàn)實(shí)時(shí)操作系統(tǒng)uC-OS2F28335的移植直流電機(jī)驅(qū)動(dòng)實(shí)驗(yàn)步進(jìn)電機(jī)驅(qū)動(dòng)實(shí)驗(yàn)SD卡測試試驗(yàn)下面一章,我們了一些常用例程的操作與詳解,在后續(xù)的時(shí)間里不斷完善開發(fā)板的一些資源例程,請(qǐng)客戶隨時(shí)關(guān)注我們的學(xué)習(xí),我們會(huì)及時(shí)更新在中。。浮點(diǎn)運(yùn)算實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)?、實(shí)驗(yàn)設(shè)3、實(shí)驗(yàn)步驟:板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置);在CCS中點(diǎn)擊Run- 運(yùn)行程序利用CCS查看工具觀察變量值,點(diǎn)擊View->Expressions,然后在彈出Expressions窗口,輸入變量y1和y2,即可查看y1、y2變量的值。此查看工具可以幫助用戶在分析程序運(yùn)行過程中,相關(guān)變量的變化情況。如下圖2-3-2:\4、實(shí)驗(yàn)原理及程序說明:

TMS320F28335和其他的CPU一樣,也是需要進(jìn)行初始化,在此實(shí)驗(yàn)中,由于未用到DSP的其他外設(shè),所以只需對(duì)TMS320F28335的時(shí)鐘和看門狗進(jìn)行初始化即可。TMS320F28335的時(shí)鐘原理圖如下圖2-1-3所示:

圖2-1-3TMS320F28335的時(shí)鐘原理YX-F28335板上采用的是30MHz外部晶體給CPU提供時(shí)鐘,并使能F28335片上PLL電路。PLL倍頻系數(shù)由PLL控制寄存器PLLCR的低4位控制,可由軟件進(jìn)行動(dòng)態(tài)修改。F28335的CPU最高可工作在150MHz主頻下,即對(duì)30MHz輸入頻率進(jìn)行5倍頻。PLLCR控制位與倍頻系數(shù)的關(guān)系如下圖2-1-4所示:圖2-1-4PLLCR控制位與倍頻系數(shù)的關(guān)門狗的原理與使用,用戶可以參考TMS320F28335Datasheet和其他相關(guān)資料。TMS320F28335是浮點(diǎn)型處理器,相比于其他的TMS320F28xx定點(diǎn)型處理器,F(xiàn)28335具有y1=y2=m1=m2=x1=x2=b1=b2=y1=m1*x1+b1; y2=m2*x2+b2;LED跑馬燈實(shí)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)備:(2)XDS100v2仿真器一套;(3)YX-F28335開發(fā)板一套;3、實(shí)驗(yàn)步驟:板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置);4、實(shí)驗(yàn)原理及程序說明在YX-F28335開發(fā)板中,DSP的8個(gè)管腳通過74LVC245緩沖、限流電阻與8個(gè)發(fā)光二極管相連,其原理圖如下圖2-2-2所示,其中有D7和D8是CAP/QEP捕捉指示燈,所以此時(shí)只用控制D1—D6光盤附帶的YX-F28335開發(fā)板的原理圖以及TMS320F28335平的時(shí)候,LED熄滅。 2C22 2C23 2C24 2C25 2C26 2C27 2C28 2C29 需要注意的TMS320F28335IO管腳具有多功能復(fù)用GPAMUX寄存器的設(shè)置可這些IO口配置為輸出口,詳細(xì)原理請(qǐng)參照TMS320F28335的中的GPIO部分。void{GpioCtrlRegs.GPAMUX1.bit.GPIO0=GPIO0GPIO0GpioCtrlRegs.GPADIR.bit.GPIO0=GPIO0配置為輸出GpioCtrlRegs.GPAMUX1.bit.GPIO1=GpioCtrlRegs.GPADIR.bit.GPIO1=GPIO1配置為輸出GpioCtrlRegs.GPAMUX1.bit.GPIO2=GpioCtrlRegs.GPADIR.bit.GPIO2=GPIO2配置為輸出GpioCtrlRegs.GPAMUX1.bit.GPIO3=GpioCtrlRegs.GPADIR.bit.GPIO3=GPIO3配置為輸出GpioCtrlRegs.GPAMUX1.bit.GPIO4=GpioCtrlRegs.GPADIR.bit.GPIO4=GPIO4配置為輸出GpioCtrlRegs.GPAMUX1.bit.GPIO5=GpioCtrlRegs.GPADIR.bit.GPIO5=GPIO5配置為輸出}LED1LED1GPIO0LED2LED2GPIO1LED3LED3GPIO2LED4LED4GPIO3LED5LED5GPIO4LED6LED6GPIO5{ }外部SRAM實(shí)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)(2)XDS100v2仿真器一套;(3)YX-F28335開發(fā)板一套;3、實(shí)驗(yàn)步驟:板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置);在CCS中點(diǎn)擊Run- 運(yùn)行程序在CCS中點(diǎn)擊Run->Resume,此時(shí)用戶可以發(fā)現(xiàn)程序運(yùn)行到第一個(gè)斷點(diǎn)處,然后點(diǎn)擊View->MemoryBrowser查看器,在地址欄輸入中0X180000,memory各個(gè)地址的值變?yōu)?X5555,如下圖2-3-3所示;2-3-30XAAAA,2-3-42-3-4址的值有改變了,如下圖2-3-5所示;4、實(shí)驗(yàn)原理及程序說明:

2-3-52-3-6TMS320F28335DSP,哈佛結(jié)構(gòu)是一種將程序指令和數(shù)據(jù)分開的存儲(chǔ)器結(jié)構(gòu)。哈佛結(jié)構(gòu)是一種并行體系結(jié)構(gòu),其主要特點(diǎn)是將程序和數(shù)據(jù)在不同的空間中,即程序器和數(shù)據(jù)器是兩個(gè)獨(dú)立的器,每個(gè)器獨(dú)立編址、獨(dú)立。 ×16OTPROM和Zone7。Zone0區(qū)域:0X004000—0X004FFF,4K×16位可編程最少一個(gè)等待周期Zone6區(qū)域:0X100000—0X1FFFFF,1M×16位10ns最少一個(gè)等待周期Zone7區(qū)域:0X200000—0X2FFFFF,1M×16位70ns最少一個(gè)等待周2-3-7YX-F28335將512K×16位的SDRAM映射到Zone6的前半部分,實(shí)現(xiàn)此邏輯的方法是將地址線19取反后再與CS6相與送給SDRAM片選線DSP其他地址線和數(shù)據(jù)線直接和SDRAM的地址線和數(shù)據(jù)線相連、將DSPSDRAM的讀寫線相連即可。2-3-8SRAM{==========================================}定義一個(gè)SDRAM的起始地址,使得程序更直觀易懂。如下所示: *ExRamStart=(Uint16*)0x180000for(i=0;i<0xFFFF;{*(ExRamStarti) //從0x180000起始地址開始寫,一共寫0xFFFF{ 環(huán),說明SDRAM有問題}}for(i=0;i<0xFFFF;{*(ExRamStart+i)=0xAAAA; RAM0x55550xAAAA{ }}for(i=0;i<0xFFFF;{*(ExRamStart+i)=i; if(*(ExRamStarti)i)0x180000{ }片外FLASH實(shí)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)(2)XDS100v2仿真器一套;(3)YX-F28335開發(fā)板一套;3、實(shí)驗(yàn)步驟:板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置);在CCS中點(diǎn)擊Run- 運(yùn)行程序在CCS中用Run->Resume,此時(shí)用戶可以發(fā)現(xiàn)程序運(yùn)行到第一個(gè)斷點(diǎn)處,然后點(diǎn)擊view->memory,在地址欄輸入0x100000,memory各個(gè)地址的值變?yōu)?xFFFF,即擦除FLASH內(nèi)容,如下圖2-4-3所示;2-4-3在CCSRun->Resume,此時(shí)程序運(yùn)行到第二個(gè)斷點(diǎn),在地址欄輸入0x180000,memory各個(gè)地址的值如下圖2-4-4所示;2-4-4CCSRun->Resume,此時(shí)程序運(yùn)行到第三個(gè)斷點(diǎn),在地址欄輸入0x100000,給FLASH各單元;2-4-5memory2-4-6SDRAM2-4-6memory2-4-7FLASHSDRAM;4、實(shí)驗(yàn)原理及程序說明:

2-4-7YX-F28335將256K×16位的FLASH映射到Zone6的前半部分,實(shí)現(xiàn)此邏輯的方法是將地址線19和CS6相與后送給FLASHDSP其他地址線和數(shù)據(jù)線直接和FLASH的地址線和數(shù)據(jù)線相連、將DSP的讀寫線與FLASH的讀寫線相連即可。其接法和SDRAM類似,其原理圖如下圖2-4-8所示:Uint16{Uint16Data;/***********以下過程需要嚴(yán)格遵守*(FlashStart0x5555)0x1010;FLASH0x55550x1010i=0;TimeOut=0;{Data=*(FlashStart+0x3FFFF);if(Data==0xFFFF)elseif(++TimeOut>0x return(TimeOutErr);}{Data=*(FlashStart+i);if(Data!=0xFFFF)return(EraseErr);}return}以上部分檢測FLASH是否擦除正確,正確的話返回EraseOK.;否則返回EraseErr,標(biāo)明擦除失敗。FLASH寫操作程序如下:Uint16FlashWrite(Uint32RamStart,Uint32RomStart,Uint16//FLASH寫函數(shù)里面有3個(gè)參數(shù),分別是源地址、目的地址、所傳地址長{Uint32i,TimeOut;Uint16Data1,Data2,j;{//*********以下3行過程需要嚴(yán)格遵守*(FlashStart+0x5555)=*(FlashStart+0x2AAA)=*(FlashStart+0x5555)=*(FlashStart+RomStart+i)=*(ExRamStart+RamStart+TimeOut=0;{Data1=*(FlashStart+RomStart+i);Data2=*(FlashStart+RomStart+i);if(Data1==Data2)elseif(++TimeOut>0x return(TimeOutErr);}}for{Data1=*(FlashStart+RomStart+i);Data2=*(ExRamStart+RamStartif(Data1!=Data2)return}return//以上部分同樣是檢測FLASH寫入的數(shù)據(jù)和讀出的數(shù)據(jù)是否一樣,一樣的話返回WriteOK,否則返回}FLASH的讀操作比較簡單,具體程序如下所示 FlashRead(Uint32RamStart,Uint32RomStart,Uint16{Uint32Uint16{Temp=*(FlashStart+RomStart*(ExRamStart+RamStart+i)=}}定時(shí)器實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)(2)XDS100v2仿真器一套;(3)YX-F28335開發(fā)板一套;3、實(shí)驗(yàn)步驟:板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置);在CCS中點(diǎn)擊Run- 運(yùn)行程序在CCS中點(diǎn)擊Run- ,此時(shí)用戶可以發(fā)現(xiàn)程序運(yùn)行到斷點(diǎn)處在CCS中點(diǎn)擊Run->Resume……,此時(shí)程序第二次運(yùn)行到斷點(diǎn),然后查看4、實(shí)驗(yàn)原理及程序說明中斷函數(shù)中來改變LED的狀態(tài),從而實(shí)現(xiàn)LED閃爍的效果。圖2-5-3TMS320F28335定時(shí)器工每來一個(gè)時(shí)鐘信號(hào),預(yù)定標(biāo)計(jì)數(shù)器PSCH:PSC1,直到減到0后,它將會(huì)重載 時(shí)將清除中斷標(biāo)志;TIE:定時(shí)器中斷使能位,寫1時(shí)使能中斷,寫0時(shí)不使能中斷;FREE、SOFT:定時(shí)器仿真模式選擇位:00;01;10;11個(gè)中斷請(qǐng)求,所以TMS320F2833x系列DSP的中斷要比其他處理器復(fù)雜。CPU2-5-42-5-5DSP1上外設(shè)事件。CPU沒有足夠的中斷源來管理所有的片上外設(shè)中斷請(qǐng)求,所以在F28x系列DSP中設(shè)置了一個(gè)外設(shè)中斷擴(kuò)展控制器(PIE)CPUINT1~I(xiàn)NT12。每個(gè)中斷源對(duì)應(yīng)一個(gè)中斷向量(對(duì)應(yīng)的中斷服務(wù)程序?qū)iT用作PIE的中斷向量表,用于存放每個(gè)中斷源所對(duì)應(yīng)的中斷服務(wù)程序(ISR)的地址。為什么是128個(gè)中斷向量呢?在復(fù)位時(shí),F(xiàn)2833x的PIE被,所以只有32個(gè)CPU中斷,所以也只需32個(gè)中斷向量,而當(dāng)PIE被使能后,除了32CPU中斷外,還有96PIE中斷,所以需要3296128TMS320F2833xExternalInterface(XINTF)User’sGuideTMS320F2833502-5-6):定時(shí)器中斷信號(hào)是經(jīng)過PIE后,再作為C28x處理器的中斷輸入信號(hào),并且定時(shí)器的時(shí)鐘信號(hào)也是與處理器的時(shí)鐘同步的。由上面的原理圖可知,定時(shí)器0屬于PIE中斷,下面分析PIE模塊的框架圖(圖2-5-7):那么定時(shí)器0中斷到底屬于PIE的哪一組中斷呢?又屬于這一組的第幾個(gè)中斷呢?帶著這兩個(gè)問題我們來看PIE中斷向量表:大家請(qǐng)看下圖2-5-8中紅色框里面的TINT0就是0中斷,用戶請(qǐng)?jiān)倏磧蓚€(gè)紅勾,橫向的INT1代表中斷組,縱向的INTx.7是第一組中斷的第

void {CpuTimer0.RegsAddr=&CpuTimer0Regs;//指向定時(shí)0的寄存器地址CpuTimer0Regs.PRD.all=0xFFFFFFFF;//設(shè)置定時(shí)器0的周期寄存器值CpuTimer0Regs.TPR.all=0; //設(shè)置預(yù)定標(biāo)計(jì)數(shù)器值為0CpuTimer0Regs.TPRH.all=CpuTimer0Regs.TCR.bit.TSS=1; CpuTimer0Regs.TCR.bit.TRB=1; //重載使能CpuTimer0.InterruptCount=0; //中斷計(jì)數(shù)清0}voidConfigCpuTimer(structCPUTIMER_VARS*Timer,floatFreq,float{Uint32temp;Timer->CPUFreqInMHz=Freq;Timer->PeriodInUSec=Period;temp(long)(Freq*Period);Timer->RegsAddr->PRD.all= //Freq*PeriodTimer->RegsAddr->TPR.all=Timer->RegsAddr->TPRH.all=//InitializetimercontrolTimer->RegsAddr->TCR.bit.TSS=1; //1為停止,0為啟動(dòng)Timer->RegsAddr->TCR.bit.TRB=1; //寫1重載計(jì)數(shù)Timer->RegsAddr->TCR.bit.SOFT=0;Timer->RegsAddr->TCR.bit.FREE=Timer->RegsAddr->TCR.bit.TIE= 1Timer->InterruptCount= }△T=Freq*Period/ 時(shí)鐘頻率)針對(duì)此實(shí)驗(yàn),F(xiàn)rep為150,Period為100000,那么△T=0.1s=100ms。void{ PieCtrlRegs.PIECTRL.bit.ENPIE= ================PieCtrlRegs.PIEIFR5.all=PieCtrlRegs.PIEIFR6.all=PieCtrlRegs.PIEIFR7.all=PieCtrlRegs.PIEIFR8.all=PieCtrlRegs.PIEIFR9.all=PieCtrlRegs.PIEIFR10.all=PieCtrlRegs.PIEIFR11.all=PieCtrlRegs.PIEIFR12.all=}voidInitPieVectTable(void){int16Uint32*Source=(void*)&PieVectTableInit;//中斷服務(wù)函數(shù)地Uint32*Dest=(void*) for(i=0;i<128;*Dest++=*Source++; PieCtrlRegs.PIECTRL.bit.ENPIE= } //寫保護(hù)PieVectTable.TINT0&ISRTimer0; IER|=M_INT1;PieCtrlRegs.PIEIER1.bit.INTx7=interruptvoid{PieCtrlRegs.PIEACK.all=PIEACK_GROUP1; }外部中斷實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)(2)XDS100v2仿真器一套;(3)YX-F28335開發(fā)板一套;3、實(shí)驗(yàn)步驟:板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置);在CCS中點(diǎn)擊Run- 運(yùn)行程序,之后用戶可以按下YX-4、實(shí)驗(yàn)原理及程序說明:DLOGINT12PIE)PIE12*8=96PIEPIEIER8的IFR是大中斷的標(biāo)志寄存器。下面來看詳細(xì)的中斷流程圖(圖2-6-2):鈕來產(chǎn)生邊沿信號(hào),其原理圖如下圖2-6-3所示:K_INT0—K_INT3K_INT0—K_INT3GPIO57void{=通過前面的實(shí)驗(yàn)二,將GPIO54作為通用IO=通過前面的實(shí)驗(yàn)二,將GPIO55作為通用IO=通過前面的實(shí)驗(yàn)二,將GPIO56作為通用IO=通過前面的實(shí)驗(yàn)二,將GPIO57作為通用IO=通過前面的實(shí)驗(yàn)二,將GPIO54作為輸入IO=通過前面的實(shí)驗(yàn)二,將GPIO55作為輸入IO==通過前面的實(shí)驗(yàn)二,將GPIO56作為輸入IO通過前面的實(shí)驗(yàn)二,將GPIO57作為輸入IOGPIO54時(shí)鐘和系統(tǒng)時(shí)鐘一樣且支持GPIO55時(shí)鐘和系統(tǒng)時(shí)鐘一樣且支持GPIO56時(shí)鐘和系統(tǒng)時(shí)鐘一樣且支持GPIO57時(shí)鐘和系統(tǒng)時(shí)鐘一樣且支持說明:GPxQSELx這個(gè)寄存器,我們通過這個(gè)寄存器可以把外部的觸發(fā)信號(hào)進(jìn)行分頻之后再送 GPIO=GPIO54被配置為中斷=GPIO55被配置為中斷=GPIO56被配置為中斷=GPIO57被配置為中斷 外部中斷3設(shè)置為下降沿觸 外部中斷4設(shè)置為下降沿觸 外部中斷5設(shè)置為下降沿觸外部中斷6設(shè)置為下降沿觸說明:當(dāng)此XIntruptRegs.XINT6CR.bit.POLARITY=1時(shí)為上升沿觸發(fā),等于2時(shí)就是雙邊XIntruptRegs.XINT3CR.bit.ENABLE XIntruptRegs.XINT4CR.bit.ENABLE XIntruptRegs.XINT5CR.bit.ENABLE XIntruptRegs.XINT6CR.bit.ENABLE=1; }操作,而在此實(shí)驗(yàn)中是對(duì)GPIO的置位寄存器和清零寄存器寫入1來控制LED。這樣控制的優(yōu)點(diǎn)是GPIO外設(shè)響應(yīng)的時(shí)間快,不用延時(shí)(用戶可以對(duì)照前面實(shí)驗(yàn)的LED控制程序,通過數(shù)據(jù)寄存器來控制LEDGPIO響應(yīng)不過來)。/*************GPIOx的置位寄存器為1表明為高,那么LED1就被點(diǎn)亮/*************GPIOx的清零寄存器為1表明為低,那么LED1就熄滅*****************/#defineLED1_ON #defineLED1_OFF#defineLED2_ON #defineLED2_OFFGpioDataRegs.GPACLEAR.bit.GPIO1=1#defineLED3_ON #defineLED3_OFFGpioDataRegs.GPACLEAR.bit.GPIO2=1#defineLED4_ON #defineLED4_OFFGpioDataRegs.GPACLEAR.bit.GPIO3=1#defineLED5_ON #defineLED5_OFFGpioDataRegs.GPACLEAR.bit.GPIO4=1#defineLED6_ON #defineLED6_OFFGpioDataRegs.GPACLEAR.bit.GPIO5=1實(shí)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)(2)XDS100v2仿真器一套;(3)YX-F28335開發(fā)板一套;3、實(shí)驗(yàn)步驟:板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置); 在CCS中點(diǎn)擊Run- 器上看見如下圖2-7-2所示的,通過示波器查看 的頻率應(yīng)該是10KHz;圖2-7-2波4、實(shí)驗(yàn)原理及程序說明:的控制方法:采樣控制理論中有一個(gè)重要結(jié)論:沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時(shí),其效果基本相同。控制技術(shù)就是以該結(jié)論為理論基礎(chǔ),對(duì)半導(dǎo)體開中又有6路可以配置為高分辨率的(HR)。在此主要分析12路增強(qiáng)型,其結(jié)構(gòu)框圖如下圖2-7-3所示:圖2-7-3結(jié)構(gòu)框一共有6組 模塊,每一組又有2路 A和B。下圖2-7-4為 圖2-7-4模塊框一個(gè)e模塊包括:Time-base(TB)module(定時(shí)器模塊), pare(CC),Action-,Dead-,Event-(事件觸發(fā)模塊),Trip-zone(TZ)module(行程區(qū)模塊)等七個(gè)模塊。正常的發(fā)出波模塊)、ET(事件觸發(fā)模塊)等五個(gè)模塊。如下圖2-7-5:圖2-7-5模塊框TBCTR(計(jì)數(shù)器CMPCTL(比較控制寄存器):設(shè)置CMPA、CMPB的重載模式; CMPA(比較值寄存器A):設(shè)置ExA的比較值,有寄存器;CMPB(比較值寄存器B):設(shè)置ExB的比較值,有寄存器。比較模塊CC原理如下圖2-7-7所示:CBU為TBCTR(計(jì)數(shù)器)與CMPB在up計(jì)數(shù)時(shí)相等使輸出為low或high作;CAD為TBCTR(計(jì)數(shù)器)與CMPA在down計(jì)數(shù)時(shí)相等使輸出為low或high或反向或不動(dòng)CAUTBCTR(計(jì)數(shù)器)CMPAuplowhigh作;PRDTBCTR(計(jì)數(shù)器)與TBPRD(周期寄存器)相等時(shí)使輸出為lowhigh或反向或圖2-7-9中斷優(yōu)先例如:當(dāng)CMPA=100,CMPB=100,up計(jì)數(shù),EA初始為低,CAU設(shè)置高,CBU設(shè)置低,CMPA=100CPB=1,其它不變,當(dāng)TBCTR計(jì)到100時(shí),EA輸出高,計(jì)到110時(shí)EA輸出低。 DB2-7-10第五個(gè)中斷觸發(fā)模 用于觸發(fā)中斷事件,其包括以下寄存器: 停止計(jì)數(shù),當(dāng)標(biāo)志為清除時(shí) 置零重新計(jì)數(shù);ET 1;ETCLR(中斷標(biāo)志清除寄存器):寫1清除相應(yīng)標(biāo)志位;ETFRC(強(qiáng)制中斷寄存器):寫1強(qiáng)制相應(yīng)中斷發(fā)生。圖2-7-11中斷事件觸發(fā)模塊ET原理至于的詳細(xì)工作原理需要用戶參考其和相關(guān)實(shí)驗(yàn)自己學(xué)習(xí)和體會(huì)。以下來分析產(chǎn)生的程序編程過程,產(chǎn)生占空比為0.5,頻率為10K的波的配置程序如下:先是輸出引腳GPIO需要進(jìn)行如下所示的配置:voidInitE GpioCtrlRegs.GPAPUD.bit.GPIO0=0; //使能GPIO0內(nèi)部上拉GpioCtrlRegs.GPAPUD.bit.GPIO1=0; //使能GPIO1內(nèi)部上拉GpioCtrlRegs.GPAMUX1.bit.GPIO0=1; GpioCtrlRegs.GPAMUX1.bit.GPIO1=1; //將GPIO1配置為E }voidE{ //相位寄存器設(shè)置為0 //CMPA和CMPB配置為立即模式E1Regs.CMPA.half.CMPA=SP/2;//設(shè)置占空比為0.5,SP是周期寄存器的EE1Regs.AQCTLA.all=0x60;//ExA=1whenCTR=CMPAandcounterinc,E=0whenCTR=CMPAandcounterinc//E //E1B與E1A相關(guān)聯(lián),即E1B隨//E1A的變化而變化,具體變化過程需要參照說明手冊(cè) //上升沿的死區(qū)時(shí)間設(shè)置為0 //下降沿的死區(qū)時(shí)間設(shè)置為0E1Regs.TZSEL.all=0;//行程區(qū)模塊我們沒有用到,把他的寄存器可以全部清零 E1Regs.ETSEL.all=0;//中斷觸發(fā)事件的產(chǎn)E1Regs.ET.all=0;EE1Regs.TBCTL.all=0x0010+TBCTLVAL;//增減模E1Regs.TBPRD=SP;//SP是時(shí)基周期寄存器的周期值,決定的頻}注意:TMS320F150MHzDSP,方便的應(yīng)用于電機(jī)控制,電力設(shè)備控制及工業(yè)解和應(yīng)用模塊還需要用戶仔細(xì)分析理解,理解模塊的工作原理。如需CAP實(shí)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)3、實(shí)驗(yàn)步板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置); 的地線接到開發(fā)板的地線端,另一端接到Y(jié)X-F28335J723腳CCSRun->Resume……,打CCSView->Expressions,Expressions窗口4、實(shí)驗(yàn)原理及程序說明:

功能,主要應(yīng)用在速度測量,脈沖序列周期測量等方面。其原理框圖如下圖2-9-3輸入信號(hào)分頻Modulo4Eachedge(4)32bit周期時(shí)非常有效,詳細(xì)關(guān)于CAP的資料請(qǐng)參。來作為中斷源送入PIE。停止eCAP計(jì)數(shù);使能eCAP中斷;中斷執(zhí)行控制部分。此實(shí)驗(yàn)利用CAP捕捉信號(hào)發(fā)生器產(chǎn)生,T1和T2、T3和T4所測值的公式為:T=TMS320F28335工作頻率/所測信號(hào)頻率;TMS320F28335工作頻率為150MHz,信號(hào)發(fā)生器產(chǎn)生的頻率為10KHz,所以T的值應(yīng)該是15000。為eCAP提供基準(zhǔn)。void{ //使能系統(tǒng)時(shí)鐘為CAP2提供基 //其他CAP模塊未用到,所以}void{//選擇設(shè)置GPIO24為CAP1,當(dāng)然用戶可以選擇其他GPIO,前提是所選的GPIO具有CAP功能即GpioCtrlRegs.GPAPUD.bit.GPIO24=0; //使能GPIO24(CAP1)上拉GpioCtrlRegs.GPAQSEL2.bit.GPIO24=0;//使GPIO24(CAP1)時(shí)鐘與系統(tǒng)時(shí)鐘輸出同步GpioCtrlRegs.GPAMUX2.bit.GPIO24=1; //配置GPIO24作為CAP1}#ifvoid{GpioCtrlRegs.GPAPUD.bit.GPIO25=0; //使能GPIO25(CAP2)上拉GpioCtrlRegs.GPAQSEL2.bit.GPIO25=0;//使GPIO25(CAP2)時(shí)鐘與系統(tǒng)時(shí)鐘輸出同步GpioCtrlRegs.GPAMUX2.bit.GPIO25=1; //配置GPIO25作為CAP2}#endif//endifvoid{//下面為寄存器賦值大部分采用了宏定義方式,具體參數(shù)值需要查看源程序的宏定義部//一級(jí)事件捕捉上升//二級(jí)事件捕捉上升//三級(jí)事件捕捉上升//四級(jí)事件捕捉上升//一級(jí)事件捕捉后不清零計(jì)數(shù)//二級(jí)事件捕捉后不清零計(jì)數(shù)//三級(jí)事件捕捉后不清零計(jì)數(shù)//四級(jí)事件捕捉后不清零計(jì)數(shù)ECap1Regs.ECCTL1.bit.CAPLDEN ECap1Regs.ECCTL1.bit.PRESCALE=EC_DIV1; ECap1Regs.ECCTL2.bit.CAP_A=EC_CAP_MODE; ECap1Regs.ECCTL2.bit.CONT_ONESHT=EC_CONTINUOUS; ECap1Regs.ECCTL2.bit.SYNCO_SEL=EC_SYNCO_DIS;ECap1Regs.ECCTL2.bit.SYNCI_EN=EC_DISABLE; //關(guān)閉所有CAP中 ECap1Regs.ECCTL2.bit.TSCTRSTOP=EC_RUN; //啟動(dòng)CAP計(jì)數(shù)器}void{ECap2Regs.ECCTL1.bit.CAP1POL=EC_FALLING; ECap2Regs.ECCTL1.bit.CAP2POL=EC_FALLING; ECap2Regs.ECCTL1.bit.CAP3POL=EC_FALLING; ECap2Regs.ECCTL1.bit.CAP4POL=EC_FALLING; ECap2Regs.ECCTL1.bit.CTRRST1=EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST2=EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST3=EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST4=EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CAPLDEN=EC_ENABLE;ECap2Regs.ECCTL1.bit.PRESCALE=EC_DIV1;ECap2Regs.ECCTL2.bit.CAP_A=EC_CAP_MODE;ECap2Regs.ECCTL2.bit.CONT_ONESHT=EC_CONTINUOUS;ECap2Regs.ECCTL2.bit.SYNCO_SEL=EC_SYNCO_DIS;ECap2Regs.ECCTL2.bit.SYNCI_EN=EC_DISABLE; //關(guān)閉所有中 ECap2Regs.ECCTL2.bit.TSCTRSTOP=EC_RUN; //啟動(dòng)開中斷 }-CAP實(shí)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)3、實(shí)驗(yàn)步板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置); 4、實(shí)驗(yàn)原理及程序說明:此實(shí)驗(yàn)是將TMS320F28335產(chǎn)生10K的波,通過短接線,直接將此信號(hào)送給CAP輸入引腳,由前面的實(shí)驗(yàn)九可知,T值應(yīng)該為15000。那么程序在實(shí)現(xiàn)的時(shí)候應(yīng)該是先對(duì)進(jìn)行設(shè)置,之后再啟動(dòng)CAP。具體程序請(qǐng)看以下分析過程。voidInitE{GpioCtrlRegs.GPAPUD.bit.GPIO0=0; //使能GPIO0內(nèi)部上拉GpioCtrlRegs.GPAPUD.bit.GPIO1=0; //使能GPIO1內(nèi)部上拉GpioCtrlRegs.GPAMUX1.bit.GPIO0=1; //將GPIO0配置為E1A功能GpioCtrlRegs.GPAMUX1.bit.GPIO1=1; //將GPIO1配置為E1B功能}void{ =======PieCtrlRegs.PIEIER8.all=PieCtrlRegs.PIEIER9.all=PieCtrlRegs.PIEIER10.all=PieCtrlRegs.PIEIER11.all=PieCtrlRegs.PIEIER12.all=PieCtrlRegs.PIEIFR1.all=PieCtrlRegs.PIEIFR2.all=PieCtrlRegs.PIEIFR3.all=PieCtrlRegs.PIEIFR4.all=PieCtrlRegs.PIEIFR5.all=PieCtrlRegs.PIEIFR6.all=PieCtrlRegs.PIEIFR7.all=PieCtrlRegs.PIEIFR8.all=PieCtrlRegs.PIEIFR9.all=PieCtrlRegs.PIEIFR10.all=PieCtrlRegs.PIEIFR11.all=PieCtrlRegs.PIEIFR12.all=} //此函數(shù)初始化中斷向量表,將中斷服務(wù)函數(shù)與向量表關(guān){int16Uint32*Source=(void*)&PieVectTableInit;//中斷服務(wù)函數(shù)地Uint32*Dest=(void*)&PieVectTable; for(i=0;i<128;PieCtrlRegs.PIECTRL.bit.ENPIE=1;//使能PIE模塊的總}void{ //使能系統(tǒng)時(shí)鐘為CAP2提供基 //其他CAP模塊未用到,所以}CAP的輸入引腳設(shè)置如下void{//選擇設(shè)置GPIO24為CAP1,當(dāng)然用戶可以選擇其他GPIO,前提是所選的GPIO具有CAP功能即GpioCtrlRegs.GPAPUD.bit.GPIO24=0; //使能GPIO24(CAP1)上拉GpioCtrlRegs.GPAQSEL2.bit.GPIO240;GPIO24(CAP1)時(shí)鐘與系統(tǒng)時(shí)鐘輸出同步GpioCtrlRegs.GPAMUX2.bit.GPIO24=1;//配置GPIO24CAP1}#ifvoid{GpioCtrlRegs.GPAPUD.bit.GPIO25=0; //使能GPIO25(CAP2)上拉GpioCtrlRegs.GPAQSEL2.bit.GPIO250;//使GPIO25(CAP2)時(shí)鐘與系統(tǒng)時(shí)鐘輸出同步GpioCtrlRegs.GPAMUX2.bit.GPIO25=1;//配置GPIO25CAP2}#endif//endifDSP28_ECAP2CAP工作模式的配置如下所示:voidSetCap1Mode(void){//下面為寄存器賦值大部分采用了宏定義方式,具體參數(shù)值需要查看源程序的宏定義部=一級(jí)事件捕捉=二級(jí)事件捕捉=三級(jí)事件捕捉=四級(jí)事件捕捉=一級(jí)事件捕捉后不清零計(jì)數(shù)=二級(jí)事件捕捉后不清零計(jì)數(shù)=三級(jí)事件捕捉后不清零計(jì)數(shù)=四級(jí)事件捕捉后不清零計(jì)數(shù)=使能事件捕捉時(shí)捕捉寄存器裝載計(jì)數(shù)ECap1Regs.ECCTL1.bit.PRESCALE=EC_DIV1; //對(duì)外部信號(hào)不分頻ECap1Regs.ECCTL2.bit.CAP_A=EC_CAP_MODE; //捕捉模式ECap1Regs.ECCTL2.bit.CONT_ONESHT=EC_CONTINUOUS; //連續(xù)模式ECap1Regs.ECCTL2.bit.SYNCO_SEL=EC_SYNCO_DIS;ECap1Regs.ECCTL2.bit.SYNCI_EN=EC_DISABLE; //清除所有中斷標(biāo)志位ECap1Regs.ECCTL2.bit.TSCTRSTOP=EC_RUN; //啟動(dòng)CAP計(jì)數(shù)器 捉時(shí)進(jìn)入中}void{ECap2Regs.ECCTL1.bit.CAP1POL=EC_FALLING; //一級(jí)事件捕捉下降沿ECap2Regs.ECCTL1.bit.CAP2POL=EC_FALLING; //二級(jí)事件捕捉下降沿ECap2Regs.ECCTL1.bit.CAP3POL=EC_FALLING; //三級(jí)事件捕捉下降沿ECap2Regs.ECCTL1.bit.CAP4POL=EC_FALLING; //四級(jí)事件捕捉下降沿ECap2Regs.ECCTL1.bit.CTRRST1=EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST2=EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST3=EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CTRRST4=EC_ABS_MODE;ECap2Regs.ECCTL1.bit.CAPLDEN=EC_ENABLE;ECap2Regs.ECCTL1.bit.PRESCALE=EC_DIV1;ECap2Regs.ECCTL2.bit.CAP_A=EC_CAP_MODE;ECap2Regs.ECCTL2.bit.CONT_ONESHT=EC_CONTINUOUS;ECap2Regs.ECCTL2.bit.SYNCO_SEL=EC_SYNCO_DIS;ECap2Regs.ECCTL2.bit.SYNCI_EN=EC_DISABLE; ECap2Regs.ECCTL2.bit.TSCTRSTOP=EC_RUN; //啟動(dòng)開中斷 }voidE{ E //將時(shí)基的狀態(tài)寄存器清E //相位寄存器設(shè)置為0E//時(shí)基計(jì)數(shù)器清零 //CMPA和CMPB配置為立即模式E1Regs.CMPA.half.CMPA=SP/2; //設(shè)置占空比為0.5,SP是周期寄存器的值E // xA=1whenCTR=CMPAandcounter//ExA=0whenCTR=CMPAandcounterE1Regs.DBCTL.all=0xb;//E1B與E1A相關(guān)聯(lián),即E1B隨 //上升沿的死區(qū)時(shí)間設(shè)置為0 //下降沿的死區(qū)時(shí)間設(shè)置為0E E1Regs.TZEE1Regs.ETSEL.all=0;//中斷觸發(fā)事件的產(chǎn)生E 增減模E //SP是時(shí)基周期寄存器的周期值,決 }CAN實(shí)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)(1)CCS6.0PC(2)XDS100v2仿真器一套;交叉型串口線將板子與PC機(jī)連接;板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置); 擊Run->Resume,你將會(huì)發(fā)現(xiàn)值在變化。4、實(shí)驗(yàn)原理及程序說明:CAN是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。通信速率可達(dá)1MBPS。CAN總線通口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)可配置的接收和發(fā)送可編程的接收(4)支(5)數(shù)據(jù)長度0到8個(gè)字節(jié)32 YXDSP-F28335CAN2.0:eCANB,32本測試程序采用eCAN模塊本身提供的SELF-TEST32個(gè)郵箱設(shè)置為16個(gè)發(fā)送模式,另外16個(gè)設(shè)置為接收模式,采用自發(fā)自收的方式,循環(huán)發(fā)送,可以通過將接收郵箱里的接收數(shù)據(jù)讀出,來判斷CAN是否正常。RTL8019網(wǎng)口測試1、實(shí)驗(yàn)?zāi)康模篟TL80192、實(shí)驗(yàn)設(shè)CCS6.0PCXDS100v2YX-F28335開發(fā)板一套;3、實(shí)驗(yàn)步驟:交叉型串口線將板子與PC機(jī)連接;板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置);IP:0:;2-11-2

UART串口實(shí)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)(2)XDS100v2仿真器一套;(3)YX-F28335開發(fā)板一套;交叉型串口線將板子與PC機(jī)連接;板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置);在CCS菜單欄中點(diǎn)擊Run->Resume……,這時(shí)候用戶可以查看上面建立好的超級(jí)終端界面,如下圖2-12-3:4、實(shí)驗(yàn)原理及程序說明:本程序針對(duì)SCIC。其原理框圖如下圖2-12-7:

SCITXD、SCISCIRXD。波特率可編程:有64K種設(shè)置BRR=0時(shí):波特率=LSPCLK÷16通過程序?qū)CI進(jìn)行詳細(xì)分析:void{GpioCtrlRegs.GPBPUD.bit.GPIO620;//使能GPIO62(SCIRXDC)內(nèi)部上拉功能GpioCtrlRegs.GPBPUD.bit.GPIO630;//使能GPIO63(SCITXDC)內(nèi)部上拉功能GpioCtrlRegs.GPBQSEL2.bit.GPIO62=3;GpioCtrlRegs.GPBQSEL2.bit.GPIO63=GpioCtrlRegs.GPBMUX2.bit.GPIO621;//配置GPIO62為SCIRXDCGpioCtrlRegs.GPBMUX2.bit.GPIO631;//配置GPIO63SCITXDC}void{ScicRegs.SCICCR.all=0x0007; //1位停止位,無奇偶校驗(yàn)位,8個(gè)數(shù)據(jù)位ScicRegs.SCICTL1.all=0x0003; //使能TX,RX,關(guān)閉睡眠模式,關(guān)閉接受糾錯(cuò)ScicRegs.SCICTL2.all=0x0003;ScicRegs.SCICTL2.bit.TXINTENA=ScicRegs.SCICTL2.bit.RXBKINTENA#if(CPU_FRQ_150MHZ) ScicRegs.SCIHBAUD=0x0001; //波特率設(shè)置為9600ScicRegs.SCILBAUD=0x00E7;#if(CPU_FRQ_100MHZ) //DSP工作在100MHz下ScicRegs.SCIHBAUD=0x0001; //9600baud@LSPCLK=20MHz.ScicRegs.SCILBAUD=0x0044;ScicRegs.SCICTL1.all //RelinquishSCIfrom}voidscic_xmit(int{while(ScicRegs.SCIFFTX.bit.TXFFST!= 查詢是否發(fā)送完畢,如果未發(fā)送完,就在此等 }voidscic_msg(char*{inti;i=while(msg[i] { }}此實(shí)驗(yàn)SCI實(shí)現(xiàn)msg="\r\n\n\noYanXu!\0"; //定義oYanXu!數(shù)組 //在PC上顯示oYanXu!msgr\nYouwillenteracharacter,andtheDSPwillechoitback! 數(shù) //PC上顯Youwillenteracharacter,andthewillechoitfor(;;{msg="\r\nEnteracharacter:\0";while(ScicRegs.SCIFFRX.bit.RXFFST!=1){} //等待接受完畢,否則在此等待ReceivedChar=ScicRegs.SCIRXBUF.all; //將PC機(jī)發(fā)送來的數(shù)據(jù)存ReceivedChar中msg="Yousent:\0"; }DA實(shí)1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)設(shè)(2)XDS100v2仿真器一套;(3)YX-F28335開發(fā)板一套;3、實(shí)驗(yàn)步驟:板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置); 在CCS菜單欄中點(diǎn)擊Run->Resume……,用戶可以將示波器的地線接到開發(fā)板的地線端,另一端分別接到Y(jié)X-F28335開發(fā)板上面J3的第1—4腳,用戶可以依次在示波器上看到如下圖2-15-3:4、實(shí)驗(yàn)原理及程序說明:

2-15-3DA可以知道,DA有兩條地址線,此兩條地址線是用來確定輸出口的。即:2-15-4通道選擇DAC7724的讀寫線直接與TMS320F28335的讀寫線相連,12根地址線也直接與2-15-5DAC77242-15-6時(shí)序圖#define *(Uint16*)0x4100//A#define*(Uint16#define*(Uint16#define*(Uint16D#define*(Uint16if {CHA_DATA if(CHA_DATA {flagA }} {CHA_DATA if(CHA_DATA {flagA }} CHB_DATA CHB_DATA if(CHC_DATA CHC_DATA

CHC_DATA CHD_DATA=2047*sin((float)(2*3.14*CHC_DATA/4000.0))+====DA_TRANS DA_TRANS //高電平,從而會(huì)出現(xiàn)一個(gè)上升DA與AD聯(lián)合實(shí)1、實(shí)驗(yàn)?zāi)康模篢MS320F28335AD2、實(shí)驗(yàn)設(shè)3、實(shí)驗(yàn)步J31(此步驟一定要正確,如果接入AD的電壓超3V或者低0V,將會(huì)導(dǎo)致0-3V,如果不是,請(qǐng)不要直接連接到AD);(接法如下圖2-16-1)2-16-2DA-AD板的JATG針處(注意仿真器插入方向,請(qǐng)仔細(xì)核對(duì)防差錯(cuò)針的位置); 2-16-5波形查看窗口參數(shù)設(shè)置2-16-6波形查看窗口 的波形如下圖2-16-7所示:按照相同的方法的波形如下圖2-16-8所示:將短接線將J5的26腳與J3的4腳連接起來,點(diǎn)擊RUN運(yùn)行程序,然后點(diǎn)擊暫 的波形如下圖2-16-9所示:4、實(shí)驗(yàn)原理及程序說明:

TMS320F28335片上有112A/D轉(zhuǎn)換器,其前端為281多路切換器和2路時(shí)采樣/保持器,構(gòu)成16個(gè)模擬輸入通道,模擬通道的切換由硬件自動(dòng)控制,并將各模擬通道的轉(zhuǎn)換結(jié)果順序存入16個(gè)結(jié)果寄存器中。如下圖2-16-10:ADC

多種A/D觸發(fā)方式:軟件啟動(dòng)、 模塊和外部中斷2引腳;此實(shí)驗(yàn)主要是通過YX-F28335板上的DAC7724產(chǎn)生各種信號(hào)源,然后將這些信號(hào)送入AD模塊進(jìn)行模數(shù)轉(zhuǎn)換。但此處一定要保證DAC產(chǎn)生的信號(hào)電壓范圍在0—3V之間,否則將會(huì)把AD模塊燒毀。下面我們通過程序進(jìn)行分析:SysCtrlRegs.HISPCP.allADC_MODCLK;//HSPCLK25MHz,ADCvoid{externvoidDSP28x_usDelay(Uint32Count);ADC_cal();//調(diào)用ADC_cal匯編程序,它是TI編寫的ADC例行,用戶直接使用即AdcRegs.ADCTRL3.all ADC //在ADC轉(zhuǎn)換前要延時(shí)一}ADC工作方式設(shè)AdcRegs.ADCTRL1.bit.ACQ_PS=ADC_SHCLK; //順序采樣方式AdcRegs.ADCTRL3.bit.ADCCLKPS=ADC_CKPS; //ADC工作25M下,不再分頻AdcRegs.ADCTRL1.bit.SEQ_CASC=1; //1通道模式AdcRegs.ADCTRL1.bit.CONT_RUN AdcRegs.ADCTRL1.bit.SEQ_OVRD AdcRegs.ADCCHSELSEQ1.all A0AdcRegs.ADCMAXCONV.bit.MAX_CONV1= //最 其值為0,如果我們最大通道數(shù)是3,那么其值為接下來就是DA產(chǎn)生信號(hào),AD采樣信號(hào),再此需要注意的是一定要控制DA輸出信號(hào)的電壓范圍(0—3V)(注意比較試驗(yàn)十一中DA各個(gè)信號(hào)和實(shí)驗(yàn)十二中DA各個(gè)信號(hào)的電壓范圍的While{array_index for(i=0;i<(BUF_SIZE);{下面紅色的代碼表示是DAC產(chǎn)生的波形信DA_TRANS={CHA_DATA-=if(CHA_DATA=={flagA=}}{CHA_DATA+=if(CHA_DATA=={flagA=}}CHB_DATA=CHB_DATA=i

溫馨提示

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

評(píng)論

0/150

提交評(píng)論