基于ARMPWM波輸出_第1頁
基于ARMPWM波輸出_第2頁
基于ARMPWM波輸出_第3頁
基于ARMPWM波輸出_第4頁
基于ARMPWM波輸出_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、編號: _嵌入式系統(tǒng) 實訓(xùn) (論文)說明書題 目:基于嵌入式 ARM 的 PWM 信號發(fā)生器摘 要脈寬控制技術(shù)(PWM)簡稱脈寬調(diào)制,是非常重要的電力電子控制技術(shù),利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù),對提高電力電子裝置的性能,促進電力電子技術(shù)的發(fā)展有著巨大的推動作用。本系統(tǒng)主要介紹了基于 LPC2132 的 PWM 信號發(fā)生器制作系統(tǒng),主要功能是對 PWM輸出波形的頻率、占空比的連續(xù)調(diào)節(jié),并能對運行信號參數(shù)用示波器進行實時顯示。電路主要分為三個模塊,核心模塊采用 LPC2138 中央控制單元,通道選擇模塊,鍵盤控制模塊采用了五個按鍵控制,分別調(diào)節(jié) PWM 信號的占空

2、比加和減、頻率的加和減、輸出 PWM 通道選擇。經(jīng)測試驗證,該信號發(fā)生器便于觀察和調(diào)節(jié),控制精確誤差小。關(guān)鍵詞:關(guān)鍵詞: LPC2132;PWM;按鍵;占空比;頻率1AbstractPulse width control technology (PWM) referred to pulse width modulation, is very important power electronic control technology, the use of the microprocessor digital output to to the analog circuit to control

3、a very effective technology, to improve the performance of the power electronic devices, and promote the development of the power electronic technology has a great push forward.This system mainly introduces the LPC2132 PWM signal generator based on the production system, the main function is to the

4、output waveform, the frequency PWM occupies emptiescompared to continuous adjustment, and can run with an oscilloscope to signal parameter real-time display. Circuit can be divided into three modules, the core module LPC2138 central control unit, channel selection module, the keyboard control module

5、 adopted five key control, regulate PWM signal occupies emptiescompared to add and subtract, frequency of addition and subtraction, output PWM channel selection. The results of experiment, this signal generator for observation and regulation, control precise small error.Key words: LPC2132; PWM; Butt

6、on; Occupies emptiescompared; frequency目 錄引言.11 系統(tǒng)設(shè)計.11.1 設(shè)計要求.11.2 方案的選擇.11.3 系統(tǒng)設(shè)計.21.4 工作原理.22 硬件設(shè)計.32.1 LPC2132 芯片說明.32.1.1LPC2132 主要特性.32.1.2LPC2138 管腳.32.2 PWM 模塊.42.2.1PWM 特性.42.2.2PWM 基本原理.52.2.3PWM 相關(guān)寄存器.53 軟件設(shè)計.63.1 系統(tǒng)整體設(shè)計.63.2 鍵盤驅(qū)動程序設(shè)計.83.3 PWM 輸出通道的選擇.94 整機調(diào)試.104.1 靜態(tài)調(diào)試.104.2 動態(tài)調(diào)試.114.3 數(shù)

7、據(jù)的測量和計算.114.3.1 占空比計算.114.3.2 信號頻率誤差計算.115 結(jié)論.12附 錄.150引言脈沖寬度調(diào)制是現(xiàn)代控制技術(shù)常用的一種控制信息輸出,可以有效地利用數(shù)字技術(shù)控制模擬信號的技術(shù)。PWM(Pulse Width Modulation)又稱脈沖寬度調(diào)制,屬于脈沖調(diào)制的一種,是應(yīng)用于電子信息系統(tǒng)和通信領(lǐng)域的一種信號變換技術(shù)。隨著電力電子技術(shù)被引入到電力變換領(lǐng)域,PWM 技術(shù)廣泛運用于各種工業(yè)電力傳動領(lǐng)域乃至家電產(chǎn)品中。其突出特點是可以比較容易地選擇最佳的脈沖調(diào)制頻段,因此,被競相開發(fā),前景廣闊。PWM 控制技術(shù)以其控制簡單、靈活和動態(tài)響應(yīng)好的優(yōu)點而成為電力電子技術(shù)最廣泛應(yīng)

8、用的控制方式,也是人們研究的熱點。PWM 控制技術(shù)一直是變頻技術(shù)的核心技術(shù)之一,由于 PWM 可以同時實現(xiàn)變頻變壓反抑制諧波的特點,在交流傳動及至其它能量變換系統(tǒng)中得到廣泛應(yīng)用。目前實現(xiàn)方法為采用全數(shù)字化方案,完成優(yōu)化的實時在線的 PWM 信號輸出。由于當(dāng)今科學(xué)技術(shù)的發(fā)展已經(jīng)沒有了學(xué)科之間的界限,結(jié)合現(xiàn)代控制理論思想或?qū)崿F(xiàn)無諧振軟開關(guān)技術(shù)將會成為 PWM 控制技術(shù)發(fā)展的主要方向之一。脈沖寬度調(diào)制是一種模擬控制方式,其根據(jù)相應(yīng)載荷的變化來調(diào)制晶體管柵極或基極的偏置,來實現(xiàn)開關(guān)穩(wěn)壓電源輸出晶體管或晶體管導(dǎo)通時間的改變,這種方式能使電源的輸出電壓在工作條件變化時保持恒定,是利用微處理器的數(shù)字輸出來對

9、模擬電路進行控制的一種非常有效的技術(shù)。本文主要介紹了 PWM 信號發(fā)生器的概念、作用及定義,分析了系統(tǒng)的工作原理和軟硬件的設(shè)計。主要是以 LPC2132 為核心控制單元,通過對外圍電路芯片的設(shè)計實現(xiàn) PWM 輸出波形的頻率、占空比的連續(xù)調(diào)節(jié),達到產(chǎn)生PWM 信號目的。1 系統(tǒng)設(shè)計本系統(tǒng)主要是基于 LPC2132 的 PWM 信號發(fā)生器制作系統(tǒng),該電路主要分為 LPC2132中央控制模塊、鍵盤控制模塊、PWM 通道選擇三部分。IPC2132 是整個電路的核心部分,按鍵主要是控制界面達到友好的人機交流,最后提供三個 PWM 輸出通道的選擇。1.1 設(shè)計要求(1)輸出三路及以上 PWM 信號(2)P

10、WM 信號頻率(周期)可調(diào)。(3)PWM 信號相位差可調(diào)。(4)PWM 信號頻率誤差100HZ。1.2 方案的選擇1示波器顯示波形PWM通道選擇按鍵控制方案一:可采用傳統(tǒng)的 PWM 控制電路專用集成芯片或中小規(guī)模的數(shù)字集成電路來做 PWM 信號發(fā)生器。但是傳統(tǒng)的集成電路頻率低,可控性差,調(diào)試難度大。方案二、隨著微電子技術(shù)和大規(guī)??删幊唐骷陌l(fā)展,PWM 在電機調(diào)速中的應(yīng)用越來越廣泛。ARM 與傳統(tǒng) PWM 控制電路中使用的用集成芯片或中小規(guī)模的數(shù)字集成電路相比而言,具有體積更小、通用性更強、響應(yīng)更快、可通過編程改良其功能等優(yōu)點,能達到的頻率范圍指標(biāo)更廣。所以,綜合考慮后,本次設(shè)計選擇 LPC2

11、132 作為電路的核心部件,這樣既達到題目的設(shè)計要求,也更方便檢測調(diào)試。1.3 系統(tǒng)設(shè)計本次設(shè)計基于嵌入式 ARM 的 PWM 信號發(fā)生器。電路用 USB 接口為電源,程序從下載口直接接入 LPC2132 嵌入式核心芯片,PWM 輸出可選用三路輸出通道中的一個來顯示波形,并用到 PWM 專用的標(biāo)準(zhǔn)定時器還有匹配器來鎖存數(shù)據(jù)等,可以達到友好的人機交流界面??偟南到y(tǒng)設(shè)計原理方框圖如圖 1.1 所示。圖 1.1 總系統(tǒng)設(shè)計原理框圖1.4 工作原理脈寬調(diào)制(PWM)控制方式就是對逆變電路開關(guān)器件的通斷進行控制,使輸出端得到一系列幅值相等的脈沖,用這些脈沖來代替正弦波或所需要的波形。PWM信號發(fā)生器通過

12、LPC2132對各模塊和定時/計數(shù)器、鎖存器的控制,其脈寬調(diào)制器建立在標(biāo)準(zhǔn)定時器之上,可在 PWM 和匹配功能當(dāng)中進行選擇。本次采用軟件編程控制的方法,通過改變給其內(nèi)部計數(shù)器的寫入值產(chǎn)生一系列幅值相等而寬度不等的脈沖,再通過一整形電路,產(chǎn)生規(guī)則的PWM脈沖波形,改變的計數(shù)器初值是通過程序的改變實現(xiàn)的,而PWM的輸出通道選擇,波形頻率的改變以及其占空比的改變是通過按鍵程序?qū)崿F(xiàn),最后通過LPC2132核心控制芯片產(chǎn)生PWM信號電源程序下載2示波器顯示相應(yīng)的波形參數(shù)。2 硬件設(shè)計本系統(tǒng)主要由嵌入式 ARM 芯片 LPC2132 構(gòu)成,PWM 信號由示波器顯示。2.1 LPC2132 芯片說明LPC2

13、132 是 PHILIPS 公司生產(chǎn)的單片 32 位 ARM 微控制器,是基于一個支持實時仿真和跟蹤的 16/32 位 ARM7TDMI-S CPU,并帶有 256KB 的嵌入的高速 FLASH 存儲器。128位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使 32 位代碼能夠在最大時鐘速率下運行。對代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用 16 位 Thumb 模式將代碼規(guī)模降低超過 30%,而性能的損失卻很小。2.1.1LPC2132主要特性(1)16/32 位 ARM7TDMI-S 核,超小 LQFP64 封裝。8/16/32kB 的片內(nèi)靜態(tài) RAM 和 32/64/128/256/512kB 的片內(nèi) Flas

14、h 程序存儲器。128 位寬度接口/加速器可實現(xiàn)高達60MHz 工作頻率。(2)通過片內(nèi) boot 裝載程序?qū)崿F(xiàn)在系統(tǒng)編程/在應(yīng)用編程(ISP/IAP)。單個Flash 扇區(qū)或整片擦除時間為 400ms。256 字節(jié)行編程時間為 1ms。(3)1 個(LPC2131/32)或 2 個(LPC2134/36/38)8 路 10 位的 A/D 轉(zhuǎn)換器,共提供 16 路模擬輸入,每個通道的轉(zhuǎn)換時間低至 2.44us。(4)1 個 10 位的 D/A 轉(zhuǎn)換器,可產(chǎn)生不同的模擬輸出。(LPC2132/34/36/38)。(5)2 個 32 位定時器/外部事件計數(shù)器(帶 4 路捕獲和 4 路比較通道)、P

15、WM 單元(6 路輸出)和看門狗。(6)低功耗實時時鐘具有獨立的電源和特定的 32kHz 時鐘輸入。(7)多個串行接口,包括 2 個 16C550 工業(yè)標(biāo)準(zhǔn) UART、2 個高速 I2C 總線(400 kbit/s)、SPI 和具有 緩沖作用和數(shù)據(jù)長度可變功能的 SSP。(8)向量中斷控制器??膳渲脙?yōu)先級和向量地址。(9)低功耗模式:空閑和掉電。(10)可通過個別使能/禁止外部功能和外圍時鐘分頻來優(yōu)化功耗。(11)通過外部中斷或 BOD 將處理器從掉電模式中喚醒。(12)單電源,具有上電復(fù)位(POR)和掉電檢測(BOD)電路:CPU 操作電壓范圍:3.0V3.6 V (3.3 V 10),I/

16、O 口可承受 5V 的電壓。2.1.2LPC2138管腳3本次 PWM 設(shè)計只用到了 LPC2132 中的一些管腳,用于輸出 PWM 信號,以及按鍵控制。其中 PWM 管腳匯總?cè)缦卤?2.1 所示:表 2.1 PWM 管腳匯總管腳名稱管腳方向管腳描述PWM 1輸出PWM 通道 1 輸出PWM 2輸出PWM 通道 2 輸出PWM 3輸出PWM 通道 3 輸出PWM 4輸出PWM 通道 4 輸出PWM 5輸出PWM 通道 5 輸出PWM 6輸出PWM 通道 6 輸出基本上 PWM1 不能用作雙邊沿輸出。而用 PWM 通道 3 和通道 5 作為雙邊沿 PWM 輸出,這樣會減少可用的雙邊沿 PWM 的

17、個數(shù),故通常不建議使用。所以本次設(shè)計的 PWM的輸出用到 LPC2132 的 P0.7,P0.8,P0.9 管腳,分別作為 PWM2,PWM4,PWM6 輸出通道,可得到最多個數(shù)的雙邊沿 PWM 輸出。P0.7 脈寬調(diào)制器輸出 2。P0.8 PWM4 脈寬調(diào)制器輸出 4。P0.9 PWM6 脈寬調(diào)制器輸出 6。2.2 PWM 模塊LPC2132 的脈寬調(diào)制器建立在標(biāo)準(zhǔn)定時器 0/1 之上,應(yīng)用可在 PWM 和匹配功能當(dāng)中進行選擇。PWM 基于標(biāo)準(zhǔn)的定時器模塊并具有其所有特性。不過 LPC2131/2132/2138 只將其 PWM 功能輸出到管腳。定時器對外設(shè)時鐘(pclk)進行計數(shù),可選擇產(chǎn)

18、生中斷或基于 7 個匹配寄存器,在到達指定的定時值時執(zhí)行其它動作。PWM 功能是一個附加特性,建立在匹配寄存器事件基礎(chǔ)之上。2.2.1PWM 特性PWM 脈寬調(diào)制,是靠改變脈沖寬度來控制輸出電壓,通過改變周期來控制其輸出頻率。PWM 基于標(biāo)準(zhǔn)的定時器模塊并具有其所有特性。不過 LPC2131/2132/2138 只將其4PWM 功能輸出到管腳。定時器對外設(shè)時鐘(pclk)進行計數(shù),可選擇產(chǎn)生中斷或基于 7 個匹配寄存器,在到達指定的定時值時執(zhí)行其它動作。它還包括 4 個捕獲輸入,用于在輸入信號發(fā)生跳變時捕獲定時器值,并可選擇在事件發(fā)生時產(chǎn)生中斷。獨立控制上升和下降沿位置的能力使 PWM 可以應(yīng)

19、用于更多的領(lǐng)域。兩個匹配寄存器可用于提供單邊沿控制的 PWM 輸出。一個匹配寄存器(PWMMR0)通過匹配時重新設(shè)置計數(shù)值來控制 PWM 周期率。另一個匹配寄存器控制 PWM 邊沿的位置。每個額外的單邊沿控制 PWM 輸出只需要一個匹配寄存器,因為所有 PWM 輸出的重復(fù)率速率是相同的。多個單邊沿控制 PWM 輸出在每個 PWM 周期的開始,當(dāng) PWMMR0 發(fā)生匹配時,都有一個上升沿。使用雙邊沿控制 PWM 輸出時,指定的匹配寄存器控制輸出的上升和下降沿。這樣就產(chǎn)生了正脈沖和負(fù)脈沖。2.2.2PWM 基本原理脈寬調(diào)制(PWM)控制方式就是對逆變電路開關(guān)器件的通斷進行控制,使輸出端得到一系列幅

20、值相等的脈沖,用這些脈沖來代替正弦波或所需要的波形。也就是在輸出波形的半個周期中產(chǎn)生多個脈沖,使各脈沖的等值電壓為正弦波形,所獲得的輸出平滑且低次斜波諧波少。按一定的規(guī)則對各脈沖的寬度進行調(diào)制,即可改變逆變電路輸出電壓的大小,也可改變輸出頻率。在采樣控制理論中有一個重要的結(jié)論,即沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上,其效果基本相同。沖量既指窄脈沖的面積。這里所說的效果基本相同。是指該環(huán)節(jié)的輸出響應(yīng)波形基本相同。如把各輸出波形用傅里葉變換分析,則它們的低頻段特性非常接近,僅在高頻段略有差異。根據(jù)上面理論我們就可以用不同寬度的矩形波來代替正弦波,通過對矩形波的控制來模擬輸出不同頻率的正弦

21、波。例如,把正弦半波波形分成 N 等份,就可把正弦半波看成由 N 個彼此相連的脈沖所組成的波形。這些脈沖寬度相等,都等于 n ,但幅值不等,且脈沖頂部不是水平直線,而是曲線,各脈沖的幅值按正弦規(guī)律變化。如果把上述脈沖序列用同樣數(shù)量的等幅而不等寬的矩形脈沖序列代替,使矩形脈沖的中點和相應(yīng)正弦等分的中點重合,且使矩形脈沖和相應(yīng)正弦部分面積(即沖量)相等,就得到一組脈沖序列,這就是 PWM波形。可以看出,各脈沖寬度是按正弦規(guī)律變化的。根據(jù)沖量相等效果相同的原理,PWM 波形和正弦半波是等效的。對于正弦的負(fù)半周,也可以用同樣的方法得到 PWM 波形。在 PWM 波形中,各脈沖的幅值是相等的,要改變等效

22、輸出正弦波的幅值時,只要按同一比例系數(shù)改變各脈沖的寬度即可,因此在交直交變頻器中,整流電路采用不可控的二極管電路即可,PWM 逆變電路輸出的脈沖電壓就是直流側(cè)電壓的幅值。2.2.3PWM 相關(guān)寄存器5寄存器的功能理解:1. IODIR當(dāng)對應(yīng)的位設(shè)置為 1,為輸出,否則為輸入2. IOSET當(dāng)引腳作為輸出時,相應(yīng)的位為 1,則輸出高電平;寫 0 無效3. IOCLR當(dāng)引腳作為輸出時,相應(yīng)的位為 1,則輸出低電平;寫 0 無效4. IOPIN用于檢測 GPIO 的引腳的電平狀態(tài)軟件設(shè)計 PWM 使用方法總結(jié):配置相應(yīng)的引腳工作于 PWM 模式下,相關(guān)寄存器為 PINSEL0 和 PINSEL1;初

23、始化 PWM 的定時器相關(guān)寄存器,用于產(chǎn)生 PWM 周期以及 PWM 的占空比;相關(guān)寄存器為:1. PWMPR、PWMPC 用于 PWM 定時器的預(yù)分頻配置2. PWMTC 用于 PWM 定時器的計數(shù)3. PWMMR0 用于配置 PWM 的周期4. PWMMR1PWMMR6 用于配置 PWM 的占空比5. PWMMCR 用于控制 PWMMR0PWMMR6 的操作6. PWMTCR 用于 PWM 定時器的使能和 PWM 的使能配置 PWM 的輸出方式和引腳使能輸出,相關(guān)寄存器為 PWMPCR;通過 PWMLER 使能 PWMMR0PWMMR6 的值設(shè)置有效;系統(tǒng)的主程序主要完成輸出 3 路 PW

24、M 信號,并由按鍵來控制調(diào)節(jié)。當(dāng) PWM 匹配寄存器用于產(chǎn)生 PWM 時,PWM 鎖存使能寄存器用于控制 PWM 匹配寄存器的更新。當(dāng)定時器處于 PWM 模式時如果軟件對 PWM 匹配寄存器位置執(zhí)行寫操作,寫入的值將保存在一個映像寄存器中。當(dāng) PWM 匹配 0 事件發(fā)生時(在 PWM 模式下,通常也會復(fù)位定時器),如果對應(yīng)的鎖存使能寄存器位已經(jīng)置位,那么映像寄存器的內(nèi)容將傳送到實際的匹配寄存器中。此時,新的值將生效并決定下一個 PWM 周期。當(dāng)發(fā)生新值傳送時,LER 中的所有位都自動清零。在 PWMLER 中相應(yīng)位置位和 PWM 匹配 0 事件發(fā)生之前,任何寫入 PWM 匹配寄存器的值都不會影

25、響 PWM 操作。3 軟件設(shè)計3.1 系統(tǒng)整體設(shè)計電路輸出三路 PWM 信號,分別從 LPC2138 的 P0.7、P0.8、P0.9 管腳輸出。按鍵S1-S5 分別控制 PWM 信號的周期,占空比以及是哪一路 PWM 信號輸出。由設(shè)計要求,可分析得出程序設(shè)計一共有以下幾個模塊:(1)初始化程序設(shè)計,即初始化 LPC2132 芯片,設(shè)置 P0.7、P0.8、P0.9 為輸出管腳。6(2)PWM 信號發(fā)生設(shè)計,初始化 LPC2132 后,要開啟 PWM 的專用定時器,通過它的匹配功能來產(chǎn)生 PWM 信號。(3)變量控制,產(chǎn)生 PWM 信號后,要通過按鍵來調(diào)節(jié) PWM 信號的周期和占空比。(4)屏

26、幕顯示,產(chǎn)生 PWM 信號,送至示波器顯示??傮w軟件設(shè)計流程圖如圖 3.1 所示。 N Y N N N N Y Y Y Y圖3.1總體軟件設(shè)計流程圖掃描按鍵選擇 PWM2信號輸出通道選擇 PWM4信號輸出通選擇 PWM6信號輸出通開始程序初始化設(shè)置 PWM 寄存器產(chǎn)生 PWM 信號掃描按鍵S1?按下 1 次 S1?按下 2 次 S1?按下 3 次 S1?S2?S3?S4?S5?信號周期增大信號周期減小信號占空減小信號占空增大示波器顯示7總結(jié):1 修改匹配寄存器之后,必須設(shè)置鎖存使能寄存器中的相應(yīng)位,否則匹配寄存器的值不能生效。2 第一次使能之后還要等到匹配才能裝入 MR0 和 MR1 所以要出

27、現(xiàn)連續(xù)的波形,必須使用兩次 3.2 初始化程序流程圖3.2 鍵盤驅(qū)動程序設(shè)計圖3.2 PWM信號發(fā)生器按鍵功能各按鍵功能如下:1. 開啟電源,各模塊初始化。將示波器的探頭接到芯片 P0.7、P0.8、P0.9 其中一路輸出上,可以分別看到 P0.7、P0.8 和 P0.9 管腳的三路信號,表示電路工作正常。2. 按下 S1 鍵 1 次,則按鍵修改功能作用于 P0.7 管腳輸出的 PWM 信號,即第 1 路PWM 信號,再按 S1 鍵 1 次,則按鍵修改功能作用于 P0.8 管腳輸出的 PWM 信號,即第 2路 PWM 信號。按下第 3 次按鍵,則按鍵修改功能作用于 P0.9 管腳輸出的 PWM

28、 信號,即第 3 路 PWM 信號。3. 按下 S2 鍵,可以看到示波器上顯示的 PWM 信號占周期增大。4. 按下 S3 鍵,可以看到示波器上顯示的 PWM 信號占周期減小。5. 按下 S4 鍵,可以看到示波器上顯示的 PWM 信號的占空減小。6. 按下 S5 鍵,可以看到示波器上顯示的 PWM 信號的占空增加。按鍵的程序如下所示:1. 周期加減if(IO0PIN & (1 SW_2) = 0) /周期+ delayns(100);8if(IO0PIN & (1 SW_2) = 0) cycletime+;while(IO0PIN & (1 SW_2)=0); if(

29、IO0PIN & (1 SW_3) = 0) / 周期- delayns(100); if(IO0PIN & (1 SW_3) = 0)cycletime-; while(IO0PIN & (1 SW_3)=0);2. 占空加減if(IO0PIN & (1 SW_5) = 0)&(mr1pleve=cycletime) /占空+ delayns(100);if(IO0PIN & (1 SW_5) = 0)&(mr1pleve=cycletime)mr1pleve+; while(IO0PIN & (1 SW_5)=0); else

30、 if(IO0PIN & (1 =1) /占空- delayns(100);if(IO0PIN & (1 =1)mr1pleve-;while(IO0PIN & (1 SW_4)=0);break;3.3 PWM輸出通道的選擇9圖3.3 PWM輸出通道的選擇本次設(shè)計可以輸出三路 PWM 信號,分別從 LPC2138 的 P0.7、P0.8、P0.9 管腳選擇輸出。當(dāng)選擇相應(yīng)的輸出時,對應(yīng)的 LED 燈就會發(fā)亮,證明電路已接通,可以用示波器測試相應(yīng)輸出通道的波形。程序如下所示:void key_scan(void) if(IO0PIN & (1 SW_1) = 0

31、)delayns(100); if(IO0PIN & (1 =4)channelcount=1; while(IO0PIN & (1 SW_1)=0); 4 整機調(diào)試整機調(diào)試分為靜態(tài)調(diào)試和動態(tài)調(diào)試,動態(tài)調(diào)試中還包括對軟件的調(diào)試,即對程序的修改。調(diào)試完成后,進行數(shù)據(jù)的記錄。4.1 靜態(tài)調(diào)試靜態(tài)調(diào)試即不裝上單片機芯片的調(diào)試,一塊電路板做好后首先要進行靜態(tài)調(diào)試。靜態(tài)調(diào)試即不裝上芯片的調(diào)試,將制作好的 PCB 板,按照裝配圖或原理圖進行器件裝配,裝配好之后進行電路的調(diào)試。一塊電路板做好后首先要進行靜態(tài)調(diào)試。(1)電路板的檢查首先用萬用表檢查電路板有無虛焊點、斷路或短路。在裝配焊接過程中

32、,在焊點接近的地方,很容易出現(xiàn)連焊或者殘留焊錫而造成的短路情況。如發(fā)現(xiàn)上述情況,應(yīng)馬上解決,以免影響調(diào)試。本次對電路板的檢查沒有發(fā)現(xiàn)大問題,焊點無虛焊,無短路。(2)元件裝配的檢查在組裝電路板時,很可能出現(xiàn)元件錯裝的情況,特別是芯片,很容易裝反,調(diào)試前要對照原理圖反復(fù)核對。未通電前要對芯片以及一些元器件進行檢測。這次設(shè)計中用到的 LED 燈因為用前未檢測,導(dǎo)致后面調(diào)試過程中 lED 燈一直不亮,最后發(fā)現(xiàn) LED燈是壞的,浪費了調(diào)試時間。10(3)通電檢查以上兩項準(zhǔn)備工作完成后,可以進行通電檢查。方法是先將萬用表電流檔串聯(lián)在電源和所測電路板之間,觀察電路總靜態(tài)電流的大小。若發(fā)現(xiàn)電流過大,說明電路

33、可能有短路;電流過小或無電流,表示電路存在斷路。遇到上述情況,必須要先排除故障,才能進行調(diào)試。通電后注意在各點上是否都加上了所需要的電壓,特別是芯片的電壓,因為如果加在芯片上的電壓低了,就會達不到理想的效果,如果高了就很容易燒掉芯片。若接線正確,則電路板上的芯片不會發(fā)熱,且能在示波器上顯示基本波形。上電以后一旦發(fā)現(xiàn)芯片發(fā)熱,馬上斷開電源,停止供電。4.2 動態(tài)調(diào)試軟件的調(diào)試主要是圍繞著其所要求的功能來做的,要對程序的流程和算法做調(diào)整。變量的定義,子函數(shù)的聲明和主程序的執(zhí)行等都要認(rèn)真的進行檢查修改。軟件的調(diào)試相當(dāng)重要且繁瑣,這花費了很多的時間。調(diào)試程序,主要是管腳的定義有問題。本次設(shè)計在裝上芯片

34、并從電腦燒錄程序到 2132 中就開始進行功能檢測,并將程序下載到2132 中。調(diào)試過程中遇到的基本問題的波形能夠出來但不是穩(wěn)定。通過對程序的重新認(rèn)識,發(fā)現(xiàn)程序中的某個地方發(fā)生死循環(huán)了,使得波形頻率的加減不能改變。最后經(jīng)過對方案的考慮后,對程序做了一定的修改,最終將題目要求中的基本功能實現(xiàn)了。當(dāng)大體上完成了功能的編程以后,最后就是對算法的細(xì)節(jié)處理上進行調(diào)整和優(yōu)化。軟件調(diào)好后,動態(tài)調(diào)試就結(jié)束了。按照這個方法,調(diào)試其他路的 PWM 信號。至此,PWM信號發(fā)生器的調(diào)試完畢。4.3 數(shù)據(jù)的測量和計算4.3.1占空比計算例如,選擇第 1 路 PWM 信號進行測量??梢酝ㄟ^軟件編譯設(shè)置初始值,如周期MR0

35、=100,低電平 MR1=20,高電平 MR2=60,則其占空比為:觀看示波器上的方波,測量數(shù)值,可得周期 T=8,12us,高電平=4.9us,則由此可以看出,輸出的波形是正確的,且誤差不大。4.3.2信號頻率誤差計算11LPC2138PWM的晶振頻率,軟件設(shè)定,則理論PWM的輸出頻率為: 觀察示波器,屏幕顯示實際頻率 f1=1.0009KHZ,則誤差 = f - f1 = 90HZ誤差在 100HZ 以內(nèi),符合題目要求。5 結(jié)論通過兩個星期的學(xué)習(xí)和努力,我終于完成了本次實訓(xùn)課題基于嵌入式 PWM 信號發(fā)生器的制作。總結(jié)本次嵌入式系統(tǒng)設(shè)計實訓(xùn),我受益匪淺。首先是選題,當(dāng)拿到題目的時候確實不知

36、道選什么。嵌入式是本學(xué)期才開設(shè)的一門課程,之前我都沒有接觸過,雖然如此,嵌入式編程也是運用 C 語言,跟單片機類似,只是芯片不同,對管腳的定義運用不一樣。本次實訓(xùn)題目有三種類型,對于嵌入式不是很懂的我,本想選擇 C 類,但為了給自己一些挑戰(zhàn)增加學(xué)習(xí)的機會,我最終選擇了 B 類題目。對于 PWM 的設(shè)計,印象中 ARM 嵌入式課本中有學(xué)習(xí)到,所以選定了這個題目。選好題目后我開始查閱資料,了解 2132 的應(yīng)用,通過查閱資料并向那些參賽同學(xué)咨詢相關(guān)問題了解到了這方面的知識,最終我也弄明白了 PWM 信號產(chǎn)生的原理。在調(diào)試電路的時候,遇到的問題很多。剛開始的時候,我首先把 ARM 中的指令看懂。至于

37、按鍵這一部分比較容易的,主要是邏輯思維要清晰,不要現(xiàn)在死循環(huán)中就可以了。由于我是第一次嵌入式芯片,剛開始調(diào)試都是從電路的最前面一點一點測試工作點的電壓值,以及當(dāng)輸入電壓變化的時候每塊芯片的輸入輸出端應(yīng)有的變化,每一部分電路都應(yīng)實現(xiàn)自己的功能,才能得出最終的結(jié)果,達到目標(biāo)。電路板做好后就把程序下載進去。仿真畢竟和實物是有區(qū)別的,所以程序下載進去后有波形輸出,但是按鍵控制不了。接下來就是檢查電路,確定硬件沒問題后就開始調(diào)試程序。這期間花費了不少時間。一個模塊一個模塊的檢查程序,最后在其他同學(xué)的幫助下發(fā)現(xiàn)時程序按鍵部分陷入死循環(huán)了,經(jīng)過修改后,最終獲得了成功。這次嵌入式實訓(xùn)我還是學(xué)到了很多東西的,更

38、重要的是學(xué)會了程序出問題時調(diào)試的方法,并養(yǎng)成了遇到困難主動獨立尋找解決方案的信心和技巧。關(guān)于 ARM 的指令系12統(tǒng)我更是了解頗多,知道了如何設(shè)置相應(yīng)的 IO 口為 GPIO 口,如何設(shè)置相應(yīng)管腳為輸出、輸入口,IO 的位定義如何實現(xiàn)等等。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,要提高自己的實際動手能力和獨立思考的能力。無論我選擇什么題目,無論題目是難事易,只要我能從中得到知識,就應(yīng)該大膽的去做,遇到不懂的地方就要大膽的去問問題,只有勤學(xué)好問,才能學(xué)到東西。盡管翻閱數(shù)據(jù)的過程是痛苦的,盡管求學(xué)的歷程是艱辛的,只要我努力了,就一定會有回報!總體來說,本次實訓(xùn)是通過自己的努力做出的電

39、路板,經(jīng)過一次次調(diào)試,最后能夠達到設(shè)計的要求,我覺得只要肯用心,有付出就會有收獲的。13謝 辭時間過得真快,兩個星期的實訓(xùn)即將過去,本次實訓(xùn)為基于 ARM 嵌入式實訓(xùn),這次實訓(xùn)得以順利完成首先要感謝實訓(xùn)中給予我悉心指導(dǎo)和幫助的各位老師。在調(diào)試過程中遇到問題時,老師提出了寶貴的解決方法,感謝老師們孜孜不倦的教導(dǎo)。老師們嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)、淵博的知識和務(wù)實的工作態(tài)度,都使我們受益匪淺。在這里我們無法用準(zhǔn)確生動的語言來淋漓盡致地描述自己的真實感受,只想說一聲:老師,你們辛苦了!與此同時,我還得到了身邊同學(xué)們的真心幫助,他們在我遇到問題的時候總是耐心給我講解,在我們調(diào)試的時候解決了很多問題,在此,我對他們

40、表示由衷的感謝!同時也要感謝學(xué)院給我們提供了那么好的一次動手機會,使我受益匪淺,從中使我在很短的時間里學(xué)到了很多書本上沒有的知識,而且讓我對以前學(xué)過的知識有了更深刻的印象,同時也發(fā)現(xiàn)自己所學(xué)知識中存在的一些缺陷,并在我們實訓(xùn)過程中為我們提供了動手的場地與器材,是它們讓我有了更多的空間去學(xué)習(xí),讓我們有了更多鍛煉的機會,學(xué)到了更多的知識。因而我還要感謝學(xué)校,感謝學(xué)校安排實訓(xùn)這個課程,感謝學(xué)校為了讓每個同學(xué)在實訓(xùn)中能夠?qū)W有所成動有所得而做的努力。最后再次感謝所有在整個實訓(xùn)期間對我提供過幫助和鼓勵的老師,同學(xué)們,在這里請接受我誠摯的謝意!14參考文獻1 崔更申 孫安青.ARM 嵌入式系統(tǒng)開發(fā)與實踐M.

41、北京:中國電力出版社,20082 歐陽禹.ARM7 嵌入式系統(tǒng)實訓(xùn)教程.北京:清華大學(xué)出版社,2008. 3 何加銘.嵌入式 32 位微處理器系統(tǒng)設(shè)計與應(yīng)用M.北京:電子工業(yè)出版社,20064 楊宗德.嵌入式 ARM 系統(tǒng)原理與實例開發(fā)M.北京:北京大學(xué)出版社,2007 5 劉天時.ARM7 嵌入式開發(fā)基礎(chǔ)實驗M.北京:北京航空航天大學(xué)出版社,20076 張綺文.ARM 嵌入式常用模塊與綜合系統(tǒng)設(shè)計實例精講.北京:電子工業(yè)出版社,2007.15附 錄附錄一 電路原理圖16附錄二 部分源程序代碼#include #define SW_1 (17)#define SW_2 (16)#define

42、SW_3 (14)#define SW_4 (30)#define SW_5 (15)#define led1 (2)#define led2 (4)#define led3 (6)#define led1_on IO0SET |= (1 led1)#define led2_on IO0SET |= (1 led2)#define led3_on IO0SET |= (1 led3)#define led1_off IO0CLR |= (1 led1)#define led2_off IO0CLR |= (1 led2)#define led3_off IO0CLR |= (1 led3 )u

43、nsigned int cycletime=150,mr1pleve=25,mr2nleve=75,mr3pleve=20,mr4nleve=80,mr5pleve=15,mr6nleve=85;unsigned int channelcount=1 ;void delayns (long t) while(t-); void key() char temp; temp=cycletime; if(IO0PIN & (1 SW_2) = 0)temp+; while(IO0PIN & (1 SW_2)=0);if(IO0PIN & (1 SW_5) = 0) temp-

44、; while(IO0PIN & (1 SW_5)=0); cycletime=temp;17 void key_scan(void) if(IO0PIN & (1 SW_1) = 0)delayns(100); if(IO0PIN & (1 =4)channelcount=1; while(IO0PIN & (1 SW_1)=0); if(IO0PIN & (1 SW_2) = 0) /周期+ delayns(100);if(IO0PIN & (1 SW_2) = 0) cycletime+;while(IO0PIN & (1 SW_2

45、)=0); if(IO0PIN & (1 SW_3) = 0) / 周期- delayns(100); if(IO0PIN & (1 SW_3) = 0)cycletime-; while(IO0PIN & (1 SW_3)=0);switch(channelcount) case 1: if(IO0PIN & (1 SW_5) = 0)&(mr1pleve=cycletime) delayns(100);if(IO0PIN & (1 SW_5) = 0)&(mr1pleve=cycletime)mr1pleve+; while(IO0P

46、IN & (1 SW_5)=0); else if(IO0PIN & (1 =1) delayns(100);if(IO0PIN & (1 =1)18mr1pleve-;while(IO0PIN & (1 SW_4)=0);break; case 2: if(IO0PIN & (1 SW_5) = 0)&(mr3pleve=cycletime) delayns(100); if(IO0PIN & (1 SW_5) = 0)&(mr3pleve=cycletime)mr3pleve+;while(IO0PIN & (1 SW

47、_5)=0);else if(IO0PIN & (1 =1) delayns(100); if(IO0PIN & (1 =1)mr3pleve-;while(IO0PIN & (1 SW_4)=0);break; case 3: if(IO0PIN & (1 SW_5) = 0)&(mr5pleve=cycletime)delayns(100); if(IO0PIN & (1 SW_5) = 0)&(mr5pleve=cycletime) mr5pleve+;while(IO0PIN & (1 SW_5)=0);19 else i

48、f(IO0PIN & (1 =1) delayns(100); if(IO0PIN & (1 =1)mr5pleve-;while(IO0PIN & (1 SW_4)=0);break; int main(void)channelcount=1;IO0DIR &= (0 SW_1);IO0DIR &= (0 SW_2);IO0DIR &= (0 SW_3);IO0DIR &= (0 SW_4);IO0DIR &= (0 SW_5);IO0DIR |=(1led1);IO0DIR |=(1led2);IO0DIR |=(1led3);IO0SET |= (1 SW_1);IO0SET |= (1 SW_2);IO0SET |= (1 SW_3);IO0SET |= (1 SW_4);IO0SET |= (1 SW_5);IO0CLR |= (1 led1);IO0CLR |= (1 led2);IO0CLR |= (1 led3);PINSEL0 |= 0 x000A8000;/設(shè)置 P0.7、P0.8、P0.9 為三路 PWM 信號輸出管腳 PWMPR

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論