S脈寬調制模塊及其應用實例_第1頁
S脈寬調制模塊及其應用實例_第2頁
S脈寬調制模塊及其應用實例_第3頁
S脈寬調制模塊及其應用實例_第4頁
S脈寬調制模塊及其應用實例_第5頁
已閱讀5頁,還剩72頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于HCS12的嵌入式系統設計吳曄,張陽,滕勤1第7章S12脈寬調制模塊及其應用實例本章內容7.1PWM模塊概述7.2PWM模塊結構和特點7.3PWM模塊工作原理7.4PWM模塊寄存器及設置7.5PWM模塊基礎應用實例7.6智能車系統中PWM模塊的應用27.1PWM模塊概述

脈沖寬度調制(PulseWidthModulate,PWM)——通過軟件編程來調節波形的占空比和周期,以產生精確的輸出脈沖序列。7.1.1PWM信號的產生方法利用單片機實現PWM波主要有3種方法:利用軟件延時通過指令構成程序循環,在不同的循環結束時,改變I/O口的電平。這種方法極大地占用了CPU資源,而且不易產生精確的脈沖序列。利用輸出比較功能通過軟件編程,任意設定高、低電平的時間常數,輸出PWM脈沖信號,這種方法在一定程度上占用了CPU的時間。利用內置的PWM模塊單片機內部集成的PWM模塊專門用于輸出PWM信號,使用時基本上不占用CPU資源。37.1PWM模塊概述7.1.2PWM模塊的用途微控制器的PWM模塊被廣泛應用于工業控制和消費類機電產品。【D/A轉換】【開關量控制】【變頻調速】變頻器、變頻空調、節能冰箱等。【平均電流或電壓控制】直流電動機調速燈光亮度調節比例電磁閥控制——電噴汽油機的怠速控制閥、EGR閥、VVT機構機油壓力控制閥,高壓共軌柴油機的PCR閥、VNT增壓壓力調節閥等。

直流伺服電動機控制——航模或智能小車的舵機控制,發動機節氣門調節,無人機機翼調節,無人自動駕駛汽車的方向盤控制等。

【控制命令字編碼】

無線遙控車的控制,通信編碼,電視機、空調的遙控部分。

47.2PWM模塊結構和特點MC9S12DG128單片機的PWM模塊與端口P共享引腳。當PWM功能激活后,P口對應引腳的通用I/O功能自動關閉。當某個引腳的PWM功能未啟用時,可用作通用I/O口。【特點】工作頻率高,占空比的可調范圍寬、分辨率高。當振蕩器頻率為16MHz時,PWM模塊的最高時鐘頻率可達25MHz,占空比調節范圍0~100%,最高分辯能力達0.15%。57.2PWM模塊結構和特點7.2.1PWM模塊功能【組成】時鐘源、預分頻器、時鐘選擇開關、分頻器和時鐘控制電路、PWM通道、使能控制、極性選擇、對齊方式選擇以及對應的輸出引腳。

67.2PWM模塊結構和特點7.2.1PWM模塊功能PWM模塊具有8路8位獨立PWM通道,通過相應設置也可以變為4個16位PWM通道。每個PWM通道由獨立運行的8位雙向脈沖計數器PWMCNT、周期比較寄存器PWMPER和占空比比較寄存器PWMDTY等組成。77.2PWM模塊結構和特點7.2.1PWM模塊功能【設置】由周期寄存器和占空比寄存器確定PWM波形的輸出周期和占空比。由極性寄存器PWMPOL選擇PWM輸出波形的極性。由對齊方式選擇寄存器PWMCAE選擇PWM輸出波形的對齊方式。【復位】復位后8位加/減脈沖計數器被設置為遞增計數,所有通道禁止,即所有計數器不計數。【緊急關閉】PWM通道7除了可以用于波形輸出外,還作為緊急關閉功能的輸入。【中斷】PWM模塊只有一個中斷源,在緊急關閉時產生。當PWM關閉寄存器PWMSDN中的中斷允許位PWMIE置位,且緊急關閉允許(PWMSDN中的控制位PWM7ENA=1)時,只要PWM7通道出現規定的緊急關閉有效電平(由PWM7IL位決定低電平或高電平),中斷標志PWMIF便置位,向CPU提出中斷請求。87.2PWM模塊結構和特點7.2.2PWM模塊基本特征具有可編程周期和占空比的8個獨立PWM通道;每個PWM通道具有獨立的計數器;每個通道可編程允許/禁止PWM功能;每個通道可軟件選擇PWM脈沖極性;具有雙緩沖的周期和占空比寄存器,當到達有效周期終點(PWM到達0)或通道禁止時,修改值生效;每個通道可編程中心對齊或左對齊輸出;8個8位通道或4個16位通道PWM分辨率;4個時鐘源(A、B、SA和SB)提供寬頻帶頻率;可編程的時鐘選擇邏輯;緊急關閉。97.2PWM模塊結構和特點7.2.3操作模式【正常工作模式】如果PWM模塊使能,PWM連續不斷地工作。如果8個通道都被禁止(PWME7~PWME0=0),為了節電,預分頻器計數器被關閉。【等待模式】等待模式下,如果PWM控制寄存器PWMCTL中的PSWAI位=0,PWM可以連續不斷地工作。如果PWMCTL寄存器中的PSWAI位=1,通過禁止預分頻器的輸入時鐘,可以實現低功耗,此時PWM不工作,PWM輸出保持靜態(高或低)。107.2PWM模塊結構和特點7.2.3操作模式【凍結模式】在凍結模式下,PWM可以繼續工作。通過設置PWMCTL寄存器中的PFRZ位,可以選擇禁止預分頻器的時鐘輸入。即,如果PFRZ=1,只要MCU處于凍結模式,預分頻器的輸入時鐘被禁止。為了重新激活預分頻器時鐘,設置PFRZ=0或退出凍結模式。【停止模式】在停止模式下,由于從IP總線到模塊的所有時鐘停止,因此,PWM模塊停止工作,PWM輸出保持靜態(高或低)。117.3PWM模塊的工作原理【PWM模塊工作原理】PWM模塊工作時,對應有效電平寬度的計數值存放在占空比寄存器中,對應脈沖周期的計數值存放在周期寄存器中。每個通道波形開始的電平由極性選擇寄存器PWMPOL中的PPOLx位決定(例如高電平)。PWM啟動后,開始一個輸出周期,計數器從0開始對時鐘脈沖進行計數。當計數值與占空比寄存器中的預置值相等時,占空比比較器輸出有效,輸出控制電路使引腳電平變為規定的極性(例如低電平),而計數器繼續計數。當計數值與周期寄存器中的預置值相等時,周期比較器輸出有效,輸出控制電路使引腳電平反向(例如高電平),同時復位計數器,開始下一個輸出周期。127.3PWM模塊的工作原理7.3.1PWM時鐘的產生【組成】時鐘輸入控制、預分頻器、分頻器和時鐘選擇電路。PWM預分頻器的輸入時鐘是總線時鐘ECLK,時鐘輸入由PWM控制寄存器PWMCTL中的PFRZ位、PWM允許寄存器中的8位PWME7~PWME0以及凍結模式信號控制。137.3PWM模塊的工作原理7.3.1PWM時鐘的產生當MCU處于凍結模式(凍結模式信號激活),即FreezeModeSignal=1時,如果凍結模式下PWM停止位PFRZ=1,則禁止總線時鐘輸入。當所有8個PWM通道被禁止(PWME7~PWME0=0)時,也禁止總線時鐘輸入。147.3PWM模塊的工作原理7.3.1PWM時鐘的產生【預分頻】【PWM模塊時鐘源】ClockA、ClockB、ClockSA和ClockSB。ClockA和ClockB由預分頻器對總線時鐘分頻得到。ClockA的分頻因子和ClockB的分頻因子分別由PWM預分頻時鐘選擇寄存器PWMPRCLK中的PCKA2、PCKA1、PCKA0和PCKB2、PCKB1、PCKB0位確定,分頻系數為1,1/2,1/4,1/8,1/16,1/32,1/64,1/128。時鐘A和時鐘B的頻率分別為:157.3PWM模塊的工作原理7.3.1PWM時鐘的產生【時鐘分頻】一個8位重裝載遞減計數器對ClockA再次分頻,該遞減計數器從分頻寄存器(PWMSCLA)裝入用戶編程的分頻值。當遞減計數器等于1時,發生兩件事:脈沖輸出和8位計數器重裝載。這個電路的輸出信號進一步2分頻,得到ClockSA,分頻比為2,4,6,8,…,512。因此,ClockSA=ClockA/(2

PWMSCLA)167.3PWM模塊的工作原理7.3.1PWM時鐘的產生【時鐘分頻】同樣,ClockB由另一個重裝載計數器再次分頻,然后再除以2,得到ClockSB,重裝載計數器的分頻比由PWM比例因子寄存器B(PWMSCLB)的內容決定,可得到同樣的分頻比。因此,ClockSB=ClockB/(2

PWMSCLB)177.3PWM模塊的工作原理7.3.1PWM時鐘的產生【時鐘選擇】每個PWM通道可以選擇兩個時鐘之一,預分頻時鐘(ClockA或ClockB)或分頻后的時鐘(ClockSA或ClockSB)。對于通道0、1、4和5,只能選擇時鐘ClockA或ClockSA。對于通道2、3、6和7,只能選擇時鐘ClockB或ClockSB。用PWMCLK寄存器中的PCLKx控制位選擇時鐘。187.3PWM模塊的工作原理7.3.2PWM通道定時器PWM模塊的核心部分是通道定時器。【定時器通道組成】1個計數器PWMCNTx1個周期寄存器PWMPERx1個占空比寄存器PWMDTYx(每個寄存器為8位)。波形輸出周期由周期寄存器和通道計數器的數值協調控制。占空比由占空比寄存器和通道計數器值協調控制。用戶可以選擇波形輸出的對齊方式和每個通道開始輸出的極性。197.3PWM模塊的工作原理7.3.2PWM通道定時器【PWM的使能】每個PWM通道有1個啟動波形輸出的使能位PWMEx。當PWMEx=0時,通道禁止,控制門關閉,通道計數器不計數;當PWMEx=1時,控制門打開,允許時鐘送到PWM電路,同時,輸出多路轉換器切換,立即使能相應的PWM輸出。PWM定時器通道框圖

207.3PWM模塊的工作原理7.3.2PWM通道定時器【PWM的極性選擇】每個PWM通道有一個極性控制位PPOLx,用來選擇PWM輸出觸發電路Q端輸出或/Q端輸出,決定波形周期開始時的電平。當極性選擇寄存器PWMPOL中的極性選擇位PPOLx=1時,PWM波形開始為高電平,占空比寄存器中的數值代表高電平的持續時間。如果極性選擇位PPOLx=0,開始時輸出為低電平,占空比寄存器中的數值代表低電平的持續時間。PWM定時器通道框圖

217.3PWM模塊的工作原理7.3.2PWM通道定時器【PWM周期和占空比】每個PWM通道的周期寄存器PWMPERx和占空比寄存器PWMDTYx都是雙緩沖的,當改變寄存器中的數值后,出現下列情況之一時才生效:當前有效周期結束;寫計數寄存器(計數器復位到$00);通道被禁止。如果PWM通道被禁止,寫周期寄存器和占空比寄存器時,數值將保存到對應的鎖存器和緩沖器中。當通道被禁止時,向周期寄存器寫0,將導致下一個時鐘到來時刻計數器復位。通過向占空比寄存器或周期寄存器寫入新的數值,然后寫計數器,可以“立即”強制占空比或周期變化。因為這將迫使計數器復位,并且鎖存新的占空比或周期值。227.3PWM模塊的工作原理7.3.2PWM通道定時器【PWM定時器的計數器】每個PWM通道有一個專用的8位加/減計數器PWMCNTx。PWM通道使能后,計數器PWMCNTx按選定的時鐘源速率工作。當PWM通道計數器工作時,如果相應的PWM通道被禁止(PWMEx=0),則計數器PWMCNTx停止計數;當相應的PWM通道重新變為允許時(PWMEx=1),計數器從PWMCNTx寄存器中的計數值開始,繼續計數,在上一次停止處繼續輸出波形。讀通道計數器在任何時刻可以讀取每個通道計數器中的數值,不會影響計數器和PWM通道的工作。237.3PWM模塊的工作原理7.3.2PWM通道定時器【PWM定時器的計數器】寫通道計數器向計數器寫任何值都將使計數器復位到$00,并將計數器設置為遞增計數,同時,立即將緩沖器中的數值裝入占空比寄存器和周期寄存器,然后根據極性選擇位改變輸出電平。計數器清零($00)計數器計數計數器停止(1)當向PWMCNTX寄存器寫入任何值時。(2)有效周期結束。PWM通道允許(PWMEX=1),從PWMCNTX寄存器中的上一次數值開始計數。PWM通道禁止(PWMEX=0)。PWM計數器狀態

247.3PWM模塊的工作原理7.3.3PWM輸出方式PWM定時器提供了兩類輸出選擇:左對齊輸出和居中對齊輸出,由PWM居中對齊允許寄存器PWMCAE中的CAEx位決定。根據選擇的輸出模式(左對齊或居中對齊),PWM計數器與周期寄存器的匹配情況不同:在左對齊輸出模式下,計數器從0開始遞增計數,直到等于PWM周期寄存器的值,在有效周期結束時,計數器被清0。在居中對齊輸出模式下,計數器從0開始先遞增計數,當等于PWM周期寄存器的值后,再遞減計數,直至回到0。257.3PWM模塊的工作原理7.3.3PWM輸出方式【左對齊輸出方式】當PWM居中對齊允許寄存器PWMCAE中的控制位CAEx=0時,PWM通道被設置成左對齊輸出方式。在這種模式下,8位計數器PWMCNTx只能被設置成循環遞增計數。當CAEX=0時,產生三個動作:(1)復位計數器前的T觸發器,使其輸出Q=0,計數器PWMCNTx設置成遞增計數;(2)通過一個與門使計數器前的觸發器的T端置0,使Q端電平保持不變;(3)打開上面的與門,這樣,當到達一個周期的計數終點時,允許周期比較器復位計數器PWMCNTx和輸出T觸發器。267.3PWM模塊的工作原理7.3.3PWM輸出方式【左對齊輸出方式】PWMEx=1時,產生兩個動作:一是將控制門打開,允許時鐘輸入;二是切換輸出多路轉換器,關閉P口的通用I/O功能,允許PWM脈沖輸出。輸出波形的初始電平由PWM極性寄存器PWMPOL中的極性選擇位PPOLx定義,決定波形由輸出T觸發器的Q端輸出或/Q端輸出。PWM啟動后,計數器PWMCNTx從0開始遞增計數,開始一個輸出周期。277.3PWM模塊的工作原理7.3.3PWM輸出方式【左對齊輸出方式】當計數值等于占空比寄存器PWMDTYx中的設定值時,占空比比較器輸出高電平,使輸出T觸發器翻轉,PWM波形改變狀態。此時,PWMCNTx繼續計數。

當計數值等于周期寄存器PWMPERx中的設定值時,周期比較器輸出高電平,上面的與門輸出為高電平,計數器PWMCNTx和輸出T觸發器復零,PWM波形再次變化。同時,占空比寄存器PWMDTYx和周期計數器PWMPERx均復零,結束一個輸出周期。

287.3PWM模塊的工作原理【左對齊輸出方式】然后,從相應的緩沖器重新裝載周期寄存器和占空比寄存器的設定值,PWMCNTx重新開始計數,開始一個新的輸出周期。【通道輸出頻率】PWMX頻率=時鐘(A、B、SA或SB)/PWMPERX【PWMX占空比】高電平時間占周期的百分比極性=0(PPOLx=0)時,極性=1(PPOLx=1)時,

297.3PWM模塊的工作原理7.3.3PWM輸出方式【居中對齊輸出】當PWM居中對齊允許寄存器PWMCAE中的控制位CAEx=1時,PWM通道被設置為居中對齊輸出方式。在這種模式下,8位計數器PWMCNTx是雙向計數器,既做加法計數,也做減法計數。只要計數器的值等于$00,便設置PWMCNTx為遞增計數。307.3PWM模塊的工作原理7.3.3PWM輸出方式【居中對齊輸出】當CAEx=1時,產生兩個動作:打開計數器前T觸發器T端相連的與門,當計數值等于周期寄存器PWMPERx中的設定值時,允許周期比較器輸出的高電平使觸發器翻轉,改變計數器的計數方向;關閉上面的與門,當計數值等于周期寄存器PWMPERx中的設定值時,禁止周期比較器復位計數器PWMCNTx和輸出T觸發器,以便計數器變為遞增計數時,仍保持原來的輸出電平。317.3PWM模塊的工作原理7.3.3PWM輸出方式【居中對齊輸出】當控制位PWMEx=1時,控制門被打開,允許時鐘輸入。同時,輸出多路轉換器允許PWM脈沖輸出,關閉P口的通用I/O功能。極性選擇位PPOLx控制多路轉換器切換,使波形由輸出T觸發器的Q端或/Q端輸出,定義輸出波形的初始電平。PWM啟動后,計數器PWMCNTx從0開始遞增計數,開始一個輸出周期。327.3PWM模塊的工作原理7.3.3PWM輸出方式【居中對齊輸出】當計數值等于占空比寄存器PWMDTYx中的設定值時,占空比比較器輸出高電平,使輸出T觸發器翻轉,PWM波形改變狀態。此時,PWMCNTx繼續計數。當計數值等于周期寄存器PWMPERx中的設定值時,周期比較器輸出高電平,計數器前T觸發器T端輸入為1,則觸發器翻轉,計數器PWMCNTx改變方向,從遞增計數變為遞減計數。由于此時CAEx=1,上面的與門輸出仍為低電平,禁止周期比較器復位計數器PWMCNTx和輸出T觸發器,輸出T觸發器仍保持原來的輸出電平。

337.3PWM模塊的工作原理7.3.3PWM輸出方式【居中對齊輸出】當計數值遞減到等于占空比寄存器PWMDTYx中的設定值時,占空比比較器又一次輸出高電平,輸出觸發器再次翻轉,PWM輸出也改變狀態。此時,PWMCNTx仍然繼續計數。當計數值遞減到0時,結束一個輸出周期。同時,計數器PWMCNTx、占空比寄存器PWMDTYx和周期寄存器PWMPERx均復位,計數器方向從遞減計數變回到遞增計數。隨后,從相應的緩沖器裝載周期寄存器和占空比寄存器,PWMCNTx重新開始計數,開始一個新的輸出周期。347.3PWM模塊的工作原理7.3.3PWM輸出方式【居中對齊輸出】居中對齊輸出模式下,由于計數器從0遞增計數到周期寄存器中的值,然后遞減計數到0。因此,【有效周期】2

PWMPERx【通道輸出頻率】PWMx頻率=時鐘(A、B、SA或SB)/(2

PWMPERx)【PWMx占空比】高電平時間占周期的百分比極性=0(PPOLx=0)時,極性=1(PPOLx=1)時,【注意】當通道正在運行時,將PWM的輸出模式從左對齊輸出模式改為居中對齊輸出模式,可能使PWM輸出不規則,反之亦然。【建議】在PWM通道使能前,編程輸出模式。357.3PWM模塊的工作原理7.3.4通道級聯S12單片機允許將2個8位PWM通道級聯構成1個16位PWM通道,以獲得更高的PWM輸出精度。PWM模塊的8個通道分為4組,分別為:PWM0和PWM1、PWM2和PWM3、PWM4和PWM5、PWM6和PWM7。【通道級聯控制】每組通道是否級聯由PWM控制寄存器PWMCTL中的4個控制位CONxy選擇,其中x=0、2、4、6,y=1、3、5、7。【注意】如果需要級聯的兩個通道中任意一個正在工作,必須先禁止其工作,然后再級聯。只有當兩個相應的通道都禁止時,才能改變這些控制位。367.3PWM模塊的工作原理7.3.4通道級聯【級聯后的寄存器和計數器】2個通道的占空比寄存器、周期寄存器和計數器均連接成16位的寄存器,通道1、3、5、7的寄存器作為低位字節,通道0、2、4、6的寄存器作為高位字節。在級聯模式下,通過用16位方式寫16位計數器或者單獨寫計數器的低位或高位字節都將使16位計數器復位。為了保持數據的一致性,讀16位計數器必須按16位方式訪問。377.3PWM模塊的工作原理7.3.4通道級聯【級聯后的輸出引腳】級聯后的16位通道輸出分別使用低8位通道(通道1、3、5、7)的引腳,高8位通道(通道0、2、4、6)的引腳變成通用I/O引腳。【級聯后的時鐘源】4個16位通道的時鐘源分別由低8位通道(通道1、3、5、7)的時鐘選擇控制位決定,高8位通道(通道0、2、4、6)的時鐘選擇沒有意義。387.3PWM模塊的工作原理7.3.4通道級聯【級聯后的使能控制】一旦PWM控制寄存器PWMCTL中的控制位CONxy=1,允許級聯模式,則相應的16位PWM通道允許或禁止由低8位通道(通道1、3、5、7)的PWMEx位控制。在這種情況下,高位字節通道(通道0、2、4、6)的PWMEx位無效,且相應的PWM輸出被禁止。【級聯后的極性選擇】級聯后PWM輸出的極性也由相應的低8位通道(通道1、3、5、7)的PPOLx位控制。【級聯后的輸出對齊模式】無論是左對齊輸出還是居中對齊輸出模式都可以采用級聯模式,且由低位字節通道(通道1、3、5、7)的CAEx位控制,高位字節通道(通道0、2、4、6)的CAEx位無效。397.3PWM模塊的工作原理7.3.4通道級聯級聯模式的控制寄存器設置

CONXXPWMEXPPOLXPCLKXCAEXPWMX輸出CON67PWME7PPOL7PCLK7CAE7PWM7CON45PWME5PPOL5PCLK5CAE5PWM5CON23PWME3PPOL3PCLK3CAE3PWM3CON01PWME1PPOL1PCLK1CAE1PWM17.3.5PWM模塊參數的臨界條件PWMDTYXPWMPERXPPOLXPWMX輸出$00(表示無占空比)>$001始終低電平$00(表示無占空比)>$000始終高電平XX$00(1)(表示無周期)1始終高電平XX$00(1)(表示無周期)0始終高電平>=

PWMPERXXX1始終高電平>=

PWMPERXXX0始終低電平407.4PWM模塊寄存器及設置MC9S12DG128的PWM模塊共有37個寄存器,其中PWM測試寄存器PWMTST、PWM預分頻計數寄存器PWMPRSC、PWM比例因子A計數寄存器PWMSCNTA和PWM比例因子B計數寄存器PWMSCNTB僅用于出廠測試。417.4PWM模塊寄存器及設置

427.4PWM模塊寄存器及設置7.4.1PWM允許寄存器PWM允許寄存器PWME(PWMEnableRegister)用于啟動或者停止PWM信號輸出,每個控制位對應一個PWM通道。當任意一個PWMEx位被置位(PWMEx=1)時,產生相應的PWM信號輸出。但是,由于PWMEx需要與時鐘源同步,直到PWM模塊時鐘的下一個周期到來,才能輸出正確的PWM波形。當處于級聯模式時,8個8位PWM通道通過兩兩級聯構成4個16位的PWM通道,此時PWME1、PWME3、PWME5和PWME7對應控制4個16位PWM通道,而其他控制位無效。讀:任何時刻;寫:任何時刻。【注意】通道使能后的第一個PWM周期可能是不正確的。437.4PWM模塊寄存器及設置7.4.1PWM允許寄存器PWME7:PWM通道7允許。 1表示允許PWM通道7輸出; 0表示禁止PWM通道7輸出。PWME6:PWM通道6允許。 1表示允許PWM通道6輸出,如果CON67=1,該位無效; 0表示禁止PWM通道6輸出。PWME5:PWM通道5允許。 1表示允許PWM通道5輸出; 0表示禁止PWM通道5輸出。PWME4:PWM通道4允許。 1表示允許PWM通道4輸出,如果CON45=1,該位無效; 0表示禁止PWM通道4輸出。447.4PWM模塊寄存器及設置7.4.1PWM允許寄存器PWME3:PWM通道3允許。 1表示允許PWM通道3輸出; 0表示禁止PWM通道3輸出。PWME2:PWM通道2允許。 1表示允許PWM通道2輸出,如果CON23=1,該位無效; 0表示禁止PWM通道2輸出。PWME1:PWM通道1允許。 1表示允許PWM通道1輸出; 0表示禁止PWM通道1輸出。PWME0:PWM通道0允許。 1表示允許PWM通道0輸出;如果CON01=1,該位無效; 0表示禁止PWM通道0輸出。457.4PWM模塊寄存器及設置7.4.2PWM極性寄存器PWM極性寄存器PWMPOL(PWMPolarityRegister)中的相應PPOLx位決定每個PWM通道波形開始的極性。讀:任何時刻;寫:任何時刻。【注意】可以在任何時刻寫PPOLx寄存器。如果正在產生PWM信號時改變極性,在轉換過程中可能截短或延長輸出脈沖。PPOLx:PWM通道x輸出波形極性。

1=PWM通道x在周期開始時輸出高電平,當到達占空比計數值時翻轉為低電平; 0=PWM通道x在周期開始時輸出低電平,當到達占空比計數值時翻轉為高電平。467.4PWM模塊寄存器及設置7.4.3PWM時鐘選擇寄存器PWM模塊共有4個時鐘源,分別為ClockA、ClockB、ClockSA和ClockSB,其中ClockA和ClockB由總線時鐘直接分頻得到,分頻因子由PWM預分頻時鐘選擇寄存器PWMPRCLK中的Bit2~Bit0或Bit6~Bit4確定,ClockSA由ClockA通過PWM比例因子寄存器A(PWMSCLA)再次分頻得到,ClockSB由ClockB通過PWM比例因子寄存器B(PWMSCLB)再次分頻得到。每一個PWM通道可以選擇兩個時鐘作為該通道的時鐘源,即ClockA或ClockSA和ClockB或ClockSB

。PWM時鐘選擇寄存器PWMCLK(PWMClockSelectRegister)用來選擇每個PWM通道的時鐘源。477.4PWM模塊寄存器及設置7.4.3PWM時鐘選擇寄存器讀:任何時刻;寫:任何時刻。【注意】可以在任何時刻寫PCLKx寄存器。如果正在產生PWM信號時改變極性,在轉換過程中可能截短或延長輸出脈沖。PCLK7、PCLK6、PCLK3、PCLK2:PWM通道7、6、3、2時鐘選擇位。 1表示ClockSB作為相應通道時鐘源; 0表示ClockB作為相應通道時鐘源。PCLK5、PCLK4、PCLK1、PCLK0:PWM通道5、4、1、0時鐘選擇位。 1表示ClockSA作為相應通道時鐘源; 0表示ClockA作為相應通道時鐘源。487.4PWM模塊寄存器及設置7.4.4PWM預分頻時鐘選擇寄存器PWM預分頻時鐘選擇寄存器PWMPRCLK(PWMPrescaleClockSelectRegister)用來選擇ClockA和ClockB的預分頻因子。 讀:任何時刻;寫:任何時刻。PCKB2~PCKB0:ClockB預分頻因子選擇。ClockB可以作為通道2、3、6或7的時鐘源,這3位決定了ClockB的頻率。497.4PWM模塊寄存器及設置7.4.4PWM預分頻時鐘選擇寄存器PCKA2~PCKA0:ClockA預分頻因子選擇。ClockA可以用做通道0、1、4或5的時鐘源,這3位決定了ClockA的頻率。【注意】可以在任何時刻寫PWMPRCLK寄存器。如果正在產生PWM信號時改變極性,在轉換過程中可能截短或延長輸出脈沖。507.4PWM模塊寄存器及設置7.4.5PWM居中對齊允許寄存器PWM居中對齊允許寄存器PWMCAE(PWMCenterAlignEnableRegister)用于設置相應PWM通道輸出波形為居中對齊輸出或左對齊輸出。讀:任何時刻;寫:任何時刻。【注意】僅當相應的通道被禁止輸出時,才可以設置該寄存器。CAEx:通道x居中對齊輸出方式選擇位。1表示通道x輸出波形為居中對齊方式。0表示通道x輸出波形為左對齊方式。

517.4PWM模塊寄存器及設置7.4.6PWM控制寄存器PWM控制寄存器PWMCTL(PWMControlRegister)用于PWM模塊的級聯控制和凍結與等待模式下的PWM允許。

讀:任何時刻;寫:任何時刻。【注意】僅當需要級聯的兩個通道都被禁止輸出時,才可以設置該寄存器中相應的控制位。CON67:通道6、通道7級聯。1表示8位PWM通道6、7級聯形成一個16位PWM通道。通道6作為高8位字節,通道7作為低8位字節。通道7輸出引腳作為16位PWM的輸出(端口PWMP的位7),通道7的時鐘選擇控制位、極性控制位、輸出使能控制位、居中對齊允許位有效;通道6的相應寄存器控制位均無效。0表示通道6、7作為兩個獨立的8位PWM通道。527.4PWM模塊寄存器及設置7.4.6PWM控制寄存器CON45:通道4、通道5級聯。1表示8位PWM通道4、5級聯形成一個16位PWM通道。通道4作為高8位字節,通道5作為低8位字節,這時通道5輸出引腳用做16位PWM的輸出(端口PWMP的位5),通道5的時鐘選擇控制位、極性控制位、輸出使能控制位、居中對齊允許位有效;通道4的相應寄存器控制位均無效。0表示通道4、5作為兩個獨立的8位PWM通道。537.4PWM模塊寄存器及設置7.4.6PWM控制寄存器CON23:通道2、通道3級聯。1表示8位PWM通道2、3級聯形成一個16位PWM通道。通道2作為高8位字節,通道3作為低8位字節,這時通道3輸出引腳用做16位PWM的輸出(端口PWMP的位3),通道3的時鐘選擇控制位、極性控制位、輸出使能控制位、居中對齊允許位有效;通道2的相應寄存器控制位均無效。0表示通道2、3作為兩個獨立的8位PWM通道。CON01:通道0、通道1級聯。1表示8位PWM通道0、1級聯形成一個16位PWM通道。通道0作為高8位字節,通道1作為低8位字節,這時通道1輸出引腳用做16位PWM的輸出(端口PWMP的位1),通道1的時鐘選擇控制位、極性控制位、輸出使能控制位、居中對齊允許位有效;通道0的相應寄存器控制位均無效。0表示通道0、1作為兩個獨立的8位PWM通道。547.4PWM模塊寄存器及設置7.4.6PWM控制寄存器PSWAI:等待模式下PWM停止位。該位使能,通過禁止時鐘輸入到預分頻器,可降低等待模式下的功耗。 1表示等待模式時,預分頻器的時鐘輸入停止; 0表示等待模式時,允許預分頻器的時鐘輸入。PFRZ:凍結模式下PWM停止位。 1表示凍結模式時,預分頻器的時鐘輸入停止; 0表示凍結模式時,允許PWM繼續工作。557.4PWM模塊寄存器及設置7.4.7PWM比例因子寄存器APWM比例因子寄存器A(PWMScaleARegister,PWMSCLA)是可編程分頻寄存器,用于將ClockA進行分頻,產生ClockSA。通過將ClockA除以PWMSCLA寄存器中的值,再除以2,形成ClockSA,公式為讀:任何時刻;寫:任何時刻。【注意】向PWMSCLA寄存器寫任何值將導致相應的8位遞減分頻計數器裝載新的比例因子值(PWMSCLA)。當PWMSCLA=$00時,PWMSCLA的值被看作是滿度值256,此時ClockSA等于ClockA的頻率除以512,即ClockA被512分頻。567.4PWM模塊寄存器及設置7.4.8PWM比例因子寄存器BPWM比例因子寄存器B(PWMScaleBRegister,PWMSCLB)是可編程分頻寄存器,用于將ClockB進行分頻,產生ClockSB。通過將ClockB除以PWMSCLB寄存器中的值,再除以2,形成ClockSB讀:任何時刻;寫:任何時刻(導致分頻計數器裝載新的比例因子值PWMSCLB)。【注意】向PWMSCLB寄存器寫任何值將導致相應的8位遞減分頻計數器裝載新的比例因子值(PWMSCLB)。當PWMSCLB=$00時,PWMSCLB的值被看作是滿度值256,此時ClockSB等于ClockB的頻率除以512,因此,ClockB被512分頻。577.4PWM模塊寄存器及設置7.4.9PWM通道計數寄存器每個通道有一個專用的8位加/減計數器,稱為PWM通道計數寄存器PWMCNTx(PWMChannelCounterRegisters),可以按所選擇的時鐘源頻率工作。在左對齊輸出模式下,計數器從0計數到周期寄存器中的數值-1。在中心對齊輸出模式下,計數器從0開始遞增計數到周期寄存器中的數值,然后遞減計數回到0。讀:任何時刻;寫:任何時刻。該計數器在任何時候可讀,而不影響PWM通道的計數和工作。向計數器寫入任何值將導致計數器復位到$00,計數器方向設置為遞增計數,立即將緩沖器的值裝入占空比和周期寄存器,然后根據極性選擇位改變輸出電平。有效周期結束時,計數器也被清0。

587.4PWM模塊寄存器及設置7.4.9PWM通道計數寄存器當通道禁止(PWMEx=0)時,PWMCNTX寄存器不計數;當通道重新允許時(PWMEx=1),相關的PWM計數器以PWMCNTx中的值開始計數。在級聯模式下,寫16位計數器或者分別寫計數器的高8位和低8位,都會使計數器復位。讀16位計數器必須按16位方式訪問,以保持數據的一致性,高8位和低8位分開讀取會得到不正確的結果。【注意】如果用戶想要開始一個“純凈的”PWM新波形,而沒有任何以前波形的“歷史痕跡”,用戶必須在允許PWM通道(PWMEx=1)之前,寫通道計數器(PWMCNTx)。當通道允許時,寫計數器可能會產生一個不正確的PWM周期。597.4PWM模塊寄存器及設置7.4.10PWM通道周期寄存器PWM通道周期寄存器PWMPERx(PWMChannelPeriodRegisters)的值決定相應PWM通道的周期。通道周期寄存器是雙緩沖的,當寄存器中的數值改變后,并不立即生效,直到發生下列事件之一:當前有效周期結束;寫計數寄存器(計數器復位到$00);通道被禁止。607.4PWM模塊寄存器及設置7.4.10PWM通道周期寄存器讀:任何時刻;寫:任何時刻。【注意】讀該寄存器將返回最新寫入的數值,由于雙緩沖配置,并非返回當前有效的周期值。當使一個新的周期立即生效時,可能產生一個不規則的PWM周期。【PWM波形周期計算方法】用選擇的時鐘周期(ClockA、ClockB、ClockSA或ClockSB)乘以周期寄存器中的數值。左對齊方式輸出(CAEx=0):PWMx周期=通道時鐘周期×PWMPERx居中對齊方式輸出(CAEx=1):PWMx周期=通道時鐘周期×2×PWMPERx617.4PWM模塊寄存器及設置7.4.11PWM通道占空比寄存器PWM通道占空比寄存器PWMDTYx(PWMChannelDutyRegisters)的值決定相應PWM通道的占空比。每個PWM通道的占空比寄存器PWMDTYx是雙緩沖的,當改變寄存器中的數值后,并不立即生效,而是出現下列情況之一時才生效:當前有效周期結束;寫計數寄存器(計數器復位到$00);通道被禁止。627.4PWM模塊寄存器及設置7.4.11PWM通道占空比寄存器讀:任何時刻;寫:任何時刻。【注意】讀該寄存器將返回最新寫入的數值,由于雙緩沖配置,并非返回當前有效的占空比值。當使一個新的占空比立即生效時,可能產生一個不正確的PWM周期。根據極性位,占空比寄存器的內容將等于高電平時間或低電平時間的計數值。PWM波形占空比計算公式如下: 極性為0時(PPOLx=0) 極性為1時(PPOLx=1)637.4PWM模塊寄存器及設置7.4.12PWM關斷寄存器PWM關斷寄存器PWMSDN(PWMShutdownRegister)具有緊急情況下立即關斷PWM通道輸出的功能。讀:任何時刻;寫:任何時刻。PWM7ENA:PWM緊急關斷允許。如果該位為1,通道7的引腳被強制配置為輸入端口,并啟用緊急關斷功能。只有當PWM7ENA=1時,關斷寄存器PWMSDN中的其他位才有意義。 1表示允許緊急關斷; 0表示禁止緊急關斷。647.4PWM模塊寄存器及設置7.4.12PWM關斷寄存器PWM7IL:緊急關斷有效輸入電平選擇位。該位用來設置PWM通道7緊急關斷的輸入有效極性,即如果啟用緊急關斷功能(PWM7ENA=1),該位確定PWM通道7處于何種電平時,PWM模塊才會被緊急關斷。 1表示高電平緊急關斷; 0表示低電平緊急關斷。PWM7IN:PWM通道7輸入狀態位。該位是只讀位,反映了PWM通道7引腳當前的電平狀態。1表示緊急關斷允許;0表示緊急關斷禁止。657.4PWM模塊寄存器及設置7.4.12PWM關斷寄存器PWMLVL:PWM緊急關斷后輸出電平選擇位。1表示強制PWM輸出高電平;0表示強制PWM輸出低電平。PWMRSTRT:PWM重新啟動控制位。該位只能寫入,讀該位始終返回0。1表示允許重新啟動PWM0表示禁止重新啟動PWM只有當PWM通道7處于無效狀態(非緊急關閉)時,才可以重新啟動PWM模塊。向PWMRSTRT位寫1(觸發事件)后,當計數器返回0時,PWM通道才開始運行。如果PWM7ENA位被復位到0,只有當計數器回到0后,PWM才開始工作。667.4PWM模塊寄存器及設置7.4.12PWM關斷寄存器PWMIE:PWM中斷允許位。 1表示PWM中斷允許; 0表示PWM中斷禁止。PWMIF:PWM中斷標志。當PWM7ENA=1時,PWM

溫馨提示

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

最新文檔

評論

0/150

提交評論