第十三章 基于Picoblaze的PWM控制器設(shè)計_第1頁
第十三章 基于Picoblaze的PWM控制器設(shè)計_第2頁
第十三章 基于Picoblaze的PWM控制器設(shè)計_第3頁
第十三章 基于Picoblaze的PWM控制器設(shè)計_第4頁
第十三章 基于Picoblaze的PWM控制器設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十三章 基于Picoblaze的PWM控制器設(shè)計背景介紹該實驗使用Xilinx的嵌入式軟核Picoblaze實現(xiàn)了一個12路通道的256階PWM控制器。實驗目標通過完成這個實驗,你將能得到如下技能:· 熟悉PWM控制器,并對其關(guān)鍵參數(shù)(周期和占空比)有較深認識· 運用Picoblaze指令集完成PWM控制器的匯編代碼· 運用KCPSM3編譯器完成匯編代碼的編譯工作· 運用Xilinx ISE對嵌入式軟核Picoblaze完成例化· 在上位機上熟練配置超級終端并與BASYS開發(fā)板完成串口通信· 通過超級終端對PWM控制器進行控制目標平

2、臺硬件平臺:BASYS開發(fā)板軟件平臺:Xilinx ISE11.1 KCPSM3實驗步驟該實驗的開發(fā)包括以下五個步驟: 1. 系統(tǒng)分析2. 系統(tǒng)軟件開發(fā)3. 建立系統(tǒng)工程并完成例化4. 系統(tǒng)工程綜合、翻譯、映射、布局布線并生成可執(zhí)行文件 5. 硬件測試 通過以上步驟,你將可以一步一步的將該實驗在Basys板上實現(xiàn)并運行。如果你認為自己某些地方有足夠的了解,那么可以跳過那些步驟直接進行下一步的開發(fā)。系統(tǒng)分析步驟 1該實驗設(shè)計了一個基于嵌入式軟核Picoblaze的12路通道PWM控制器,每路通道的占空比均可在0255之間任意設(shè)定。系統(tǒng)可通過上位機的超級終端與BASYS開發(fā)板完成串口通信,通過該串

3、口通信完成各路PWM通道的占空比參數(shù)設(shè)置。12路通道中的8路通過BASYS開發(fā)板上的八個LED燈的亮度來顯示其占空比設(shè)置變化,另外4路則通過擴展口輸出。實驗的硬件系統(tǒng)框圖如圖1所示。圖1圖1中的PmodRS232是串口模塊。實驗中的兩個關(guān)鍵參數(shù)是脈沖重復頻率(PRF)和分辨率(resolution)分別為1KHz和8bit(1/256)。如圖2所示。圖2 由上所述,實驗需要將嵌入式系統(tǒng)picoblaze例化到FPGA中,其框圖如圖3所示。圖3軟件開發(fā)步驟 2當你完成系統(tǒng)分析后,你必須進行軟件開發(fā)。軟件開發(fā)包括匯編代碼的開發(fā)和Verilog代碼的開發(fā)。系統(tǒng)的關(guān)鍵代碼設(shè)計如下所示。1. 計數(shù)器中斷

4、的Verilog源代碼設(shè)計實驗中系統(tǒng)時鐘為50MHz,采用模196的計數(shù)器中斷來對完成PWM控制器的PRF和resolution設(shè)置。以下是對應的Verilog的源代碼(請補充)。 always (posedge clk) beginif(interrupt_count=195) begin interrupt_count <= 0; interrupt_event <='1; end else begininterrupt_count <= interrupt_count + 1; interrupt_event <= 0;end if (interrupt_

5、ack=1) interrupt <= 0; elsif (interrupt_event=1) interrupt <=1; else interrupt <= interrupt; end 2.串口通信的Verilog源代碼設(shè)計設(shè)置UART通信的波特率為9600,以下是對應的Verilog的源代碼(請補充)。always (posedge clk) begin if( baud_count=325)begin baud_count <= 0; en_16_x_baud <= 1; end else begin baud_count <= baud_cou

6、nt + 1; en_16_x_baud <='0; end end 3. PWM控制器占空比設(shè)置的匯編源代碼設(shè)計實驗對PWM控制器的占空比初始化設(shè)置,以下是對應的psm的源代碼(請補充)。LOAD s0, 05 ;5/256 = 2% STORE s0, PWM_channel0 LOAD s0, 0D ;13/256 = 5% STORE s0, PWM_channel1 LOAD s0, 14 ;26/256 = 8% STORE s0, PWM_channel2 LOAD s0, 26 ;38/256 = 15% STORE s0, PWM_channel3 LOAD s

7、0, 40 ;64/256 = 25% STORE s0, PWM_channel4 LOAD s0, 58 ;88/256 = 34% STORE s0, PWM_channel5 LOAD s0, 80 ;128/256 = 50% STORE s0, PWM_channel6 LOAD s0, FF ;255/256 = 99.6% Maximum possible STORE s0, PWM_channel7 ; ; Initial values for simple outputs match documentation example ; LOAD s0, 11 ;17/256 =

8、 7% STORE s0, PWM_channel8 LOAD s0, BC ;188/256 = 73% STORE s0, PWM_channel9 LOAD s0, EF ;239/256 = 93% STORE s0, PWM_channel10 LOAD s0, 22 ;34/256 = 13% STORE s0, PWM_channel114. 中斷服務程序匯編源代碼設(shè)計中斷的psm的源代碼(請補充)。ISR: STORE s0, ISR_preserve_s0 ;preserve registers to be used STORE s1, ISR_preserve_s1 STO

9、RE s2, ISR_preserve_s2 ;Determine the number of steps currently through the 1ms PWM cycle FETCH s1, PWM_duty_counter ;read 8-bit counter of steps ADD s1, 01 ;increment counter (will roll over to zero) STORE s1, PWM_duty_counter ;update count value in memory for next interrupt. ;Read duty factor for

10、each channel and compare it with the duty counter and set or ;reset a bit in register s2 accordingly. FETCH s0, PWM_channel11 ;read desired setting of pulse width COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM_channel10 ;read desire

11、d setting of pulse width COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM_channel9 ;read desired setting of pulse width COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM

12、_channel8 ;read desired setting of pulse width COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 OUTPUT s2, simple_port ;drive pins on connector J4 FETCH s0, PWM_channel7 ;read desired setting of pulse width COMPARE s1, s0 ;set carry flag if duty fa

13、ctor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM_channel6 ;read desired setting of pulse width COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM_channel5 ;read desired setting of pulse width COMPARE s1, s0 ;set

14、 carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM_channel4 ;read desired setting of pulse width COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM_channel3 ;read desired setting of pulse wid

15、th COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM_channel2 ;read desired setting of pulse width COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM_channel1 ;read desire

16、d setting of pulse width COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 FETCH s0, PWM_channel0 ;read desired setting of pulse width COMPARE s1, s0 ;set carry flag if duty factor > duty counter SLA s2 ;shift carry into register s2 OUTPUT s2, LE

17、D_port ;drive LEDs FETCH s0, ISR_preserve_s0 ;restore register values FETCH s1, ISR_preserve_s1 FETCH s2, ISR_preserve_s2 RETURNI ENABLE編譯匯編代碼步驟 3具體步驟如下1.選擇“開始”“運行”,如圖4所示。在對話框輸入cmd命令后點擊確定。圖42.使用DOS命令CD將目錄指向匯編程序所在文件夾下,鍵入 kcpsm3 pwm_ctrl.psm命令后回車,如圖5和圖6所示。圖5圖6建立系統(tǒng)工程步驟 41.建立新工程,如圖7和圖8圖7 圖82.加入源文件到工程,如圖

18、9,圖10和圖11圖9圖10圖11綜合、翻譯、映射、布局、布線并生成可執(zhí)行文件步驟 5圖12圖13下載可執(zhí)行文件 步驟 61所示。 圖14圖15圖16圖17圖18圖19圖20圖21硬件資源耗用如表1所示表1 硬件資源耗用表Logic UtilizationUsedAvailableUtilizationNote(s)Number of Slice Flip Flops1611,9208% Number of 4 input LUTs2661,92013% Number of occupied Slices16396016% Total Number of 4 input LUTs2831,92014% N

溫馨提示

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

最新文檔

評論

0/150

提交評論