第六章 DSP EV事件管理器_第1頁
第六章 DSP EV事件管理器_第2頁
第六章 DSP EV事件管理器_第3頁
第六章 DSP EV事件管理器_第4頁
第六章 DSP EV事件管理器_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第六章事件管理器6.1事件管理器模塊概述6.2通用定時器6.3比較單元6.4PWM電路及PWM信號的產(chǎn)生6.5空間向量PWM6.6捕捉單元6.7正交編碼器脈沖電路6.8事件管理器中斷6.9事件管理器應用實例

281x芯片內(nèi)含有兩個事件管理器模塊EVA和EVB,事件管理器模塊提供了強大的控制功能,非常適用于運動控制和電機控制。

EVA與EVB結構完全相同,外設地址7400-743FH對EVA進行管理。7500-753FH對EVB進行管理。每個事件管理器有:1)定時器GPT(2個)輸出引腳為:T1PWM/T1CMP

T2PWM/T2CMP2)比較單元CMP(3個)每個單元兩個輸出:PWM1-PWM6

3)捕獲單元CAP(3個)輸入引腳為:CAP1.2.34)正交脈沖編碼QEP電路,2個輸入引腳QEP1.2與CAP1.2復用另外:有計數(shù)器計數(shù)方向選擇輸入TDIRA:1:加計數(shù)

0:減計數(shù)有定時器外部/內(nèi)部時鐘輸入:TCLKINA(CPU頻率的1/4)6.1事件管理器模塊概述

EVAEVB各13個引腳26326.1.1事件管理器結構、引腳事件管理模塊EVA模塊引腳信號EVB模塊引腳信號GP定時器(2個)定時器1定時器2T1PWM/CMP輸出T2PWM/CMP輸出定時器3定時器4T3PWM/CMP輸出T4PWM/CMP輸出比較單元(3個)比較器1比較器2比較器3PWM1/2輸出PWM3/4輸出PWM5/6輸出Compare4Compare5Compare6PWM7/8輸出PWM9/10輸出PWM11/12輸出捕獲單元(3個)捕獲器1捕獲器2捕獲器3CAP1/QEP1輸入CAP2/QEP2輸入CAP3輸入Capture4Capture5Capture6CAP4/QEP3輸入CAP5/QEP4輸入CAP6輸入正交編碼脈沖電路QEP(2個)QEP1QEP2QEP1輸入QEP2輸入QEP3QEP4QEP3輸入QEP4輸入外部輸入計數(shù)方向外部時鐘TDIRA輸入TCLKINA輸入計數(shù)方向外部時鐘TDIRB輸入TCLKINB輸入

EVA和EVB的功能相同,只是單元的名稱有所區(qū)別。6.1事件管理器模塊概述6.1.1事件管理器結構、引腳

定時器(GP):具有基本計數(shù)/定時功能,可以為各種應用提供時基,還可以與其他三個單元合作,進行電機控制,產(chǎn)生比較輸出/PWM信號。多個定時器可配置行使不同功能。

3個比較單元:可以輸出三組比較輸出/PWM信號,且具有死區(qū)控制等功能。

3個捕捉單元:可以記錄輸入引腳跳變的時刻。

正交編碼脈沖電路(QEP):可以直接連接光電編碼器,可獲得旋轉機械的速度和方向等信息。

事件管理器模塊中的大多數(shù)引腳與I/O口共用。當不用作事件管理器時,作為I/O引腳。

6.1.1事件管理器結構、引腳比較/PWM輸出引腳:每個事件管理器都有8個比較/PWM輸出引腳。其中,2個為通用定時器的比較/PWM輸出,6個全比較器的比較/PWM輸出。片外時鐘輸入引腳:定時器可以通過軟件編程決定使用片內(nèi)時鐘還是片外時鐘。當使用片外時鐘時,TCLKINA、TCLKINB作為片外時鐘輸入引腳。計數(shù)方向引腳:當通用定時器處于定向增/減計數(shù)方式時,通過引腳TDIRA、TDIRB設置計數(shù)方向。6.1.2功率驅(qū)動保護中斷事件管理器常用于運動控制和電機控制,一般其PWM輸出信號要經(jīng)過功率驅(qū)動才能控制電機等設備。為了保證系統(tǒng)操作的安全,設計了功率驅(qū)動保護中斷功能。功率驅(qū)動保護中斷引腳:

中斷引腳一般用于向電機監(jiān)視程序提供過電壓、過電流等異常信息。

中斷引腳低電平有效,當發(fā)生由高到低的電平跳變時,相應的中斷標志位置1,但是必須維持至少2個時鐘周以使中斷引腳的跳變能被識別并且與內(nèi)部時鐘同步。如果相應的中斷使能,硬件立即將所有事件管理器輸出引腳置為高阻,起到保護作用,同時向CPU發(fā)出中斷請求。信號的鑒別與同步需要2個CPU時鐘周期,因此中斷引腳的低電平至少要保持2個時鐘周期。6.1.4EV寄存器及地址EVA模塊中的寄存器(起始地址是7400h~7431h)地址寄存器名稱7400hGPTCONA定時器控制寄存器7401hT1CNT定時器1的計數(shù)寄存器定時器17402hT1CMPR定時器1的比較寄存器7403hT1PR定時器1的周期寄存器7404hT1CON定時器1的控制寄存器7405hT2CNT定時器2的計數(shù)寄存器定時器27406hT2CMPR定時器2的比較寄存器7407hT2PR定時器2的周期寄存器7408hT2CON定時器2的控制寄存器EVA定時寄存器(9個)

每個EV各有29個寄存器。6.1.4EV寄存器及地址EVA模塊中的寄存器(起始地址是7400h~7431h)EVA比較控制寄存器(6個)

地址寄存器名稱7411hCOMCONA比較控制寄存器7413hACTRA比較方式控制寄存器7415hDBTCONA死區(qū)時間控制寄存器7417hCMPR1比較寄存器17418hCMPR2比較寄存器27419hCMPR3比較寄存器36.1.4EV寄存器及地址EVA模塊中的寄存器(起始地址是7400h~7431h)EVA捕獲控制寄存器(8個)地址寄存器名稱7420hCAPCONA捕獲控制寄存器7422hCAPFIFOA捕獲FIFO狀態(tài)寄存器A7423hCAP1FIFO兩級深度的捕獲FIFO棧17424hCAP2FIFO兩級深度的捕獲FIFO棧27425hCAP3FIFO兩級深度的捕獲FIFO棧37427hCAP1FBOTFIFO棧的棧底寄存器,允許讀最近捕獲的值7428hCAP2FBOT7429hCAP3FBOT6.1.4EV寄存器及地址EVA模塊中的寄存器(起始地址是7400h~7431h)EVA中斷寄存器(6個)

地址寄存器名稱742ChEVAIMRA中斷屏蔽寄存器A742DhEVAIMRB中斷屏蔽寄存器B742EhEVAIMRC中斷屏蔽寄存器C742FhEVAIFRA中斷標志寄存器A7430hEVAIFRB中斷標志寄存器B7431hEVAIFRC中斷標志寄存器C6.1.4EV寄存器及地址EVB模塊中的寄存器(起始地址是7500h~7531h)EVB定時寄存器(9個)地址寄存器名稱7500hGPTCONB定時器控制寄存器7501hT3CNT定時器3的計數(shù)寄存器定時器37502hT3CMPR定時器3的比較寄存器7503hT3PR定時器3的周期寄存器7504hT3CON定時器3的控制寄存器7505hT4CNT定時器4的計數(shù)寄存器定時器47506hT4CMPR定時器4的比較寄存器7507hT4PR定時器4的周期寄存器7508hT4CON定時器4的控制寄存器6.1.4EV寄存器及地址EVB模塊中的寄存器(起始地址是7500h~7531h)EVB比較控制寄存器(6個)

地址寄存器名稱7511hCOMCONB比較控制寄存器7513hACTRB比較方式控制寄存器7515hDBTCONB死區(qū)時間控制寄存器7517hCMPR4比較寄存器47518hCMPR5比較寄存器57519hCMPR6比較寄存器66.1.4EV寄存器及地址EVB模塊中的寄存器(起始地址是7500h~7531h)EVB捕獲控制寄存器(8個)

地址寄存器名稱7520hCAPCONB捕獲控制寄存器7522hCAPFIFOB捕獲FIFO狀態(tài)寄存器B7523hCAP4FIFO兩級深度的捕獲FIFO棧47524hCAP5FIFO兩級深度的捕獲FIFO棧57525hCAP6FIFO兩級深度的捕獲FIFO棧67527hCAP4FBOTFIFO棧的棧底寄存器,允許讀最近捕獲的值7528hCAP5FBOT7529hCAP6FBOT6.1.4EV寄存器及地址EVB模塊中的寄存器(起始地址是7500h~7531h)EVB中斷寄存器地址(6個)地址寄存器名稱752ChEVBIMRA中斷屏蔽寄存器A752DhEVBIMRB中斷屏蔽寄存器B752EhEVBIMRC中斷屏蔽寄存器C752FhEVBIFRA中斷標志寄存器A7530hEVBIFRB中斷標志寄存器B7531hEVBIFRC中斷標志寄存器C6.2通用定時器6.2.1通用定時器(GPT-GeneralPurposeTimer)概述定時器是EV的核心模塊。2812芯片內(nèi)含有4個16位通用定時器,計數(shù)范圍是0~65535(216-1)個脈沖。主要功能----為以下應用提供時基(1)控制系統(tǒng)中的采樣時鐘(2)正交編碼QEP電路和捕捉單元時鐘(3)比較單元和相應的PWM電路操作時鐘(4)其他定時功能計數(shù)時鐘脈沖:內(nèi)部時鐘經(jīng)分配產(chǎn)生,或由外部引腳來提供。計數(shù)方向:增計數(shù),減計數(shù)。4種工作方式:停止/保持,連續(xù)增計數(shù)模式,定向增/減計數(shù)模式,連續(xù)增減模式4種中斷模式:下溢,上溢,比較,周期中斷6.2.1通用定時器概述4種中斷模式:下溢,上溢,比較,周期中斷

1)下溢中斷:計數(shù)器TxCNT計數(shù)回零時,產(chǎn)生下溢中斷.2)上溢中斷:計數(shù)器TxCNT計數(shù)到FFFF時,產(chǎn)生上溢中斷.3)比較中斷:計數(shù)器TxCNT計數(shù)值等于比較值時,產(chǎn)生比較匹配中斷.4)周期中斷:計數(shù)器TxCNT計數(shù)值等于周期值時,產(chǎn)生周期匹配中斷

回零時的轉換時間需延遲1個時鐘.

中斷標志置位需延時2個時鐘.

6.2.1通用定時器概述1)通用定時器結構(以T1為例)加/減計數(shù)寄存器雙緩沖比較寄存器,用于存儲與計數(shù)器進行比較的值雙緩沖周期寄存器,當其值與計數(shù)器匹配時,根據(jù)計數(shù)模式定時器復位或開始遞減計數(shù)。定時控制寄存器,決定定時器的模式全局通用定時器控制寄存器,控制定時器工作模式T1PRT2PRMUXTnCON[0]T1CMPR比較邏輯波形發(fā)生器輸出邏輯GPTCONAT1CNT控制邏輯T1CON

ADC啟動

CPU時鐘預定標:1-1/128fcTDIRATCLKINA<1/4fc(外部時鐘)中斷標志T1PWMGP控制寄存器周期寄存器選擇,GP2/GP4有效,用于同步方式0:選擇自身的周期寄存器1:選擇T1PR/T3PR忽略T2PR/T4PRT1PRT2PRMUXTnCON[0]T1CMPR比較邏輯波形發(fā)生器輸出邏輯GPTCONAT1CNT控制邏輯T1CON

ADC啟動

CPU時鐘預定標:1-1/128fcTDIRATCLKINA<1/4fc(外部時鐘)中斷標志T1PWMGP控制寄存器6.2.1通用定時器概述通用定時器結構可選擇的內(nèi)部或外部輸入時鐘

預定標計數(shù)分頻器,可設置為對內(nèi)部時鐘或外部時鐘進行分頻計數(shù)

控制和中斷邏輯用于4個可屏蔽的中斷:上溢、下溢、定時器比較和周期可選擇方向的輸入引腳TDIRxTPWM/T1CMP輸出引腳6.2.1通用定時器概述通用定時器的輸入內(nèi)部CPU時鐘

外部時鐘TCLKINA/B,最大頻率是CPU時鐘頻率1/4

方向輸入TDIRA/B引腳復位信號RESET正交編碼脈沖電路可產(chǎn)生定時器的時鐘和計數(shù)方向通用定時器的輸出

通用定時器比較輸出TxCMP(x=1,2,3,4)

為ADC模塊提供模數(shù)轉換啟動信號

比較邏輯和比較單元的下上溢、匹配和周期匹配信號計數(shù)方向指示位

6.2.1通用定時器概述通用定時器的控制寄存器

1)單個通用定時器控制寄存器TxCON(x=1,2,3,4)TxCON決定著定時器的操作模式15141312111098FreeSoft保留位TMODE1TMODE0TPS2TPS1TPS076543210T2SWT1/T4SWT3+TENABLETCLKS1TCLKS0TCLD1TCLD0TECMPRSELT1PR/SELT3PR+位12-11:用于選擇計數(shù)模式。為00時,停止/保持模式;為01時,連續(xù)增/減計數(shù)模式;為10時,連續(xù)增計數(shù)模式;為11時,定向增/減模式。位10-8:確定輸入時鐘預定標系數(shù)。為000時,輸入時鐘為fCPU/1;為001,為fCPU/2;為010,為fCPU/4;為011,為fCPU/8;為100,為fCPU/16;為101,為fCPU/32;為110,為fCPU/64;為111,為fCPU/128。位7:為定時器2、4的使能選擇位(僅在定時器2、4中有效)。為0時,定時器2、4使用自身的使能位;為1時,使用T1CON、T3CON中的使能位來使能或禁止定時器2、4的相應操作,從而忽略了自身的定時器使能位位6:為定時器使能位。為0時,禁止定時器操作,即定時器被置于保持狀態(tài)且預定標器被復位;為1時,使能定時器的操作。位5-4用于時鐘的選擇。為00時,選擇內(nèi)部CPU時鐘;為01時,選擇外部時鐘;為10時保留;為11時選擇正交編碼脈沖(僅適用于定時器2和4,在SELT1PR=0時有效)。

位3-2:決定比較寄存器的重裝載條件。為00時,當計數(shù)值是0時重裝載;為01時,當計數(shù)值是0或等于周期寄存器值時重裝載;為10時,立即重裝載;為11時保留。位1:為定時器的比較使能位。為0時禁止定時器的比較操作;為1時使能定時器的比較操作。位0:為周期寄存器的選擇位(僅在定時器2和4中有效)。為0時,使用自身周期寄存器;為1時,使用T1PR或T3PR作為周期寄存器。可禁止、使能定時器,可選擇4種計數(shù)模式之一,可選擇時鐘源,可使用定時器同步,可使能比較操作,可選擇比較寄存器的重新加載條件。6.2.1通用定時器概述2)全局通用定時器控制寄存器GPTCONA/B

GPTCONA/B規(guī)定了通用定時器針對不同定時器事件所采取的操作,并指明了它們的計數(shù)方向。

GPTCONA15141312~1110~98~7-T2STATT1STAT-T2TOADCT1TOADC65~43~21~0TCOMPOE-T2PINT1PIN位14:是通用定時器2的只讀狀態(tài)位,用于仿真觀察。當為0時作減計數(shù);為1時作加計數(shù)。位13:是通用定時器1的只讀狀態(tài)位,用于仿真觀察。當為0時作減計數(shù);為1時作加計數(shù)。

位10-9:用于定時器2啟動ADC事件。為00時,無事件啟動ADC;為01時,設置由下溢中斷啟動ADC;為10時,設置由周期中斷啟動ADC;為11時,設置由比較中斷啟動ADC。位8-7:用于定時器1啟動ADC事件。為00時,無事件啟動ADC;為01時,設置由下溢中斷啟動ADC;為10時,設置由周期中斷啟動ADC;為11時,設置由比較中斷啟動ADC。位6:是比較輸出使能位。為0時,禁止所有通用定時器的比較輸出(高阻狀態(tài));為1時,使能(允許)所有通用定時器的比較輸出。

位3-2:是通用定時器2的比較輸出極性選擇位。為00時,輸出強制低電平;為01時,輸出低電平有效;為10時,輸出高電平有效;為11時,輸出強制高電平。位1-0:是通用定時器1的比較輸出極性選擇位。為00時,輸出強制低電平;為01時,輸出低電平有效;為10時,輸出高電平有效;為11時,輸出強制高電平。GPTCONB15141312~1110~98~7-T4STATT3STAT-T4TOADCT3TOADC65~43~21~0TCOMPOE-T4PINT3PIN6.2.1通用定時器概述GPT的周期寄存器具有雙緩沖結構(帶有一個映像寄存器),用于存放定時周期值,在一個周期中的任何時刻新的周期值可以寫進映像寄存器中,僅當計數(shù)寄存器中的值為0時,映像寄存器中的值才重新加載到工作的周期寄存器中,可以改變下一個周期的定時周期。GPT的比較寄存器具有雙緩沖結構(帶有一個映像寄存器),用于存放比較值,在一個周期中的任何時刻新的比較值可以寫進映像寄存器中,用于改變下一個周期的PWM脈沖寬度。當TxCON中所指定的定時器事件發(fā)生時,映像寄存器中的值可以加載到工作的比較寄存器中??赡芗虞d的情況有:1)數(shù)據(jù)寫入到映像寄存器后立即加載;2)下溢時,即計數(shù)寄存器為0時;3)周期匹配時,即計數(shù)寄存器的值等于周期寄存器的值時。6.2.1通用定時器概述基于正交編碼器脈沖(QEP)的時鐘輸入QEP電路可被選定為定向增/減計數(shù)模式下的通用T2和T4提供輸入時鐘和計數(shù)方向信號。

QEP電路被選作時鐘源時,則選中的T2和T4的預定標因子總是1,不再取決于預定標分頻比;而且QEP產(chǎn)生的時鐘頻率是每個正交編碼脈沖輸入頻率的4倍。QEP輸入頻率必須低于或等于內(nèi)部CPU當前工作時鐘頻率的1/4。通用定時器事件(中斷)啟動模數(shù)轉換GPTCONA/B寄存器的位定義了ADC模塊的啟動信號。GPT的4個中斷可以作為內(nèi)部ADC模塊的啟動信號,使得沒有CPU干涉也能在GPT和ADC的啟動之間實現(xiàn)同步。6.2.1通用定時器概述通用定時器的同步通過正確配置T2CON和T4CON,T2可與與T1實現(xiàn)同步,T4可與T3實現(xiàn)同步。過程為:(1)置TnCON(n為2或4)的TnSWTm[.7](m為1或3)位為1,同時置TmCON中的TENABL[.6]位為1。這樣2個定時器的計數(shù)器將同時啟動。(2)在啟動同步操作前,將Tn與Tm定時/計數(shù)器設置為不同初始值。(3)置Tn中的SELTmPR[.0]位為1,使Tn將Tm的周期寄存器作為自己的周期寄存器使用(忽略自己的周期寄存器)通過定時器同步,可使一個定時器在另一個定時器啟動之后延時一段時間再啟動。6.2.2通用定時器計數(shù)操作(1)停止/保持模式(TxCON[.12.11]=00)

在該種模式下,通用定時器停止操作并保持當前狀態(tài),計數(shù)寄存器、比較輸出和分頻系數(shù)都保持不變。(2)連續(xù)增計數(shù)模式(TxCON[.12.11]=10)

----可用于定時,邊沿觸發(fā)、異步PWM波形。全局控制寄存器中的計數(shù)方向指示位為1,TDIRA/B引腳不起作用。

定時計數(shù)器TxCNT按照預定標時鐘進行計數(shù),并與周期寄存器(TxPR)進行比較,直到計數(shù)值與周期寄存器中數(shù)值匹配(相等)為止,在匹配之后的下一個輸入時鐘的上升沿復位計數(shù)器的數(shù)值為0,并重新開始下一個計數(shù)周期的計數(shù)操作。4種計數(shù)模式:6.2.2通用定時器計數(shù)操作通用定時器連續(xù)增計數(shù)模式的工作過程:

在該計數(shù)模式下,若外設中斷沒有被屏蔽,則一旦發(fā)生匹配就對相應的周期中斷標志進行置位,并產(chǎn)生外設中斷請求。如果該中斷已經(jīng)設置為用來啟動ADC,則在中斷標志被置位的同時,將啟動一次ADC。

定時器的初始值可在0000h-FFFFh范圍內(nèi)選。當初始值大于周期寄存器數(shù)值時,定時器將計數(shù)到FFFFh,上溢中斷標志位置位,計數(shù)值復位為0后再進入正常的操作;當初始值等于周期寄存器數(shù)值時,定時器將置位周期中斷標志,計數(shù)器復位為0,并產(chǎn)生下溢中斷標志進入正常操作。如果定時計數(shù)器的初始數(shù)值為0,定時時間為TxPR+1個定標的時鐘輸入周期。6.2.2通用定時器計數(shù)操作(3)定向增/減計數(shù)模式(TxCON[.12.11]=11)

適用于正交脈沖電路及外部事件控制

根據(jù)TDIRA/B引腳的輸入進行連續(xù)加或減計數(shù)操作。當引腳TDIRA/B為高電平時,定時器將加計數(shù)一直到等于周期寄存器的數(shù)值,然后計數(shù)器復位為0,并繼續(xù)進行加計數(shù);當引腳TDIRA/B為低電平時,定時器將進行減計數(shù)操作,一直到0,然后定時器重新裝載周期寄存器的數(shù)值,并繼續(xù)進行減計數(shù)操作。6.2.2通用定時器計數(shù)操作初始值可以為0000h-FFFFh之間的任何值。當計數(shù)初始值大于周期寄存器的值時,如果引腳TDIRA/B為高電平,定時器復位到0,并繼續(xù)加計數(shù)到周期寄存器的值;如果引腳TDIRA/B為低電平,則計數(shù)器減計數(shù)到周期寄存器的值后,再減計數(shù)到0,然后重新裝入周期寄存器的值,并開始新的減計數(shù)操作。從引腳TDIRA/B的變化到計數(shù)方向變化之間的延遲是當前計數(shù)結束后的兩個CPU時鐘周期,即當前預定標的計數(shù)周期結束后的兩個CPU周期。在該種計數(shù)模式下,無論是通過TCLKINA/B輸入的外部時鐘信號,還是來自內(nèi)部的CPU時鐘,都可作為該模式下的計數(shù)輸入。

周期、下溢、上溢中斷的標志位及中斷和相關的事件都由各自的匹配產(chǎn)生,其產(chǎn)生方式與連續(xù)增計數(shù)模式相同。通用定時器定向增/減計數(shù)模式可用于正交編碼脈沖電路,在這種情況下,正交編碼脈沖電路為定時器2和4提供計數(shù)時鐘和計數(shù)方向。

6.2.2通用定時器計數(shù)操作(4)連續(xù)增減計數(shù)模式(TxCON[.12.11]=01---適用于PWM輸出

方向引腳TDIRA/B不起作用。計數(shù)方向的改變?nèi)Q于計數(shù)寄存器的值:當計數(shù)值等于周期值后開始減計數(shù),當計數(shù)值為0后開始增計數(shù)。初始計數(shù)方向與初始值有關。

該種模式的定時時間為2×(TxPR)個輸入時鐘周期。6.2.2通用定時器計數(shù)操作(4)連續(xù)增/減計數(shù)模式

該計數(shù)模式的計數(shù)初始值不同,第一個周期的計數(shù)方向和周期也不同。

當計數(shù)初始值在0和周期寄存器的值之間時,計數(shù)器將加計數(shù)到周期寄存器的值,然后進入正常計數(shù)操作;

當計數(shù)初始值等于周期寄存器的值時,計數(shù)器將減計數(shù)到0,然后開始正常的計數(shù)操作;

當計數(shù)初始值大于周期寄存器的值時,定時器將加計數(shù)到FFFFh,然后復位為0,開始正常的連續(xù)增/減計數(shù)操作。周期、下溢、上溢中斷的標志位、以及中斷和相關的事件都由各自的匹配產(chǎn)生,其產(chǎn)生方式與連續(xù)增計數(shù)模式下相同。

6.2.3通用定時器比較操作

每個通用定時器都有一個相關的比較寄存器TxCMPR和一個PWM輸出引腳TxPWM。

當計數(shù)值與比較寄存器的值相等時,就會發(fā)生比較匹配。如果比較操作被使能(TxCON.1位被置1),當產(chǎn)生比較匹配時將發(fā)生下列事件:1)在匹配發(fā)生一個CPU時鐘周期后,比較中斷寄存器標志位被置位。如果比較中斷標志位已通過設置GPTCONA/B寄存器中的相應位去啟動ADC,則當比較中斷標志位被置位的同時也將產(chǎn)生ADC的啟動信號;2)在匹配發(fā)生一個CPU時鐘周期后,根據(jù)GPTCONA/B寄存器相應位的配置情況,相關的PWM輸出發(fā)生跳變;

3)如果比較中斷未被屏蔽,則將產(chǎn)生一個外設中斷請求。6.2.3通用定時器比較操作通用定時器的比較操作1)PWM輸出跳變由一個非對稱和對稱的波形發(fā)生器和相應的輸出邏輯控制,并且依賴于以下條件。(1)GPTCONA/B寄存器中相應位的定義;

(2)定時器所處的計數(shù)模式;

(3)在連續(xù)增/減計數(shù)模式下的計數(shù)方向。

2)非對稱和對稱波形發(fā)生器

根據(jù)通用定時器所處的計數(shù)模式,產(chǎn)生一個非對稱和對稱的PWM波形輸出。

6.2.3通用定時器比較操作3)非對稱波形的發(fā)生如果計數(shù)操作開始前輸出為0,則保持不變直到比較匹配的發(fā)生,匹配時產(chǎn)生觸發(fā),輸出發(fā)生跳變。如果在下一周期的新比較值不是0,則發(fā)生周期匹配的那個周期結束后輸出復位為0。如果在一個周期開始時比較值為0,則在整個周期輸出將是1;如果下一個周期的新比較值也是0,則輸出將不復位為0,這意味著可以產(chǎn)生0~100%的脈沖寬度調(diào)節(jié)。

如果比較值大于周期寄存器的值,則整個周期輸出為0。如果比較值等于周期寄存器的值,則輸出為1將保持一個定標的時鐘輸入周期。比較寄存器值的改變只影響PWM脈沖的單邊,這是非對稱PWM波形的特點。

工作于連續(xù)遞增計數(shù)模式時,產(chǎn)生非對稱波形。保持跳變復位新比較值非0周期開始比較值為0不復位跳變整個周期輸出0跳變比周期更長的比較值6.2.3通用定時器比較操作4)對稱波形發(fā)生

當通用定時器處于連續(xù)增/減計數(shù)模式時產(chǎn)生對稱波形。

若計數(shù)開始前輸出為0,則輸出保持不變直到第一次比較匹配,輸出發(fā)生跳變,然后輸出保持不變直到第二次比較匹配,輸出再次發(fā)生跳變直到周期結束。如果沒有第二次匹配且下一個周期的新比較值不為0,則在周期結束后復位為0。

若比較值在周期開始時為0,則輸出為1直到第二次比較匹配發(fā)生。如果比較值在周期的后半部為0,則輸出將保持為1直到周期結束。在這種情況下,如果新比較值仍為0,輸出將不會復位為0。

如果前半周期中的比較值大于或等于周期寄存器的值,則第一次跳變將不會發(fā)生,但是當后半周期發(fā)生匹配時,輸出仍會跳變。這種輸出錯誤的跳變經(jīng)常是由于應用程序計算不正確引起的,它將在周期結束時被糾正。跳變跳變比較值為0保持保持跳變跳變保持保持跳變6.2.3通用定時器比較操作5)輸出邏輯

輸出邏輯可通過配置GPTCONA/B寄存器中的相應位來規(guī)定高有效、低有效、強制低或強制高。

當PWM的輸出定義為高有效時,它的極性與相關的波形發(fā)生器的極性相同;當PWM的輸出定義為低有效時,它的極性與相關波形發(fā)生器的極性相反;當通過GPTCONA/B寄存器中的控制位將PWM的輸出定義為強制低或高時,PWM的輸出立即變?yōu)?或1。

當出現(xiàn)下列任何一種情況時,所有的通用定時器PWM輸出都置為高阻態(tài):

(1)軟件將GPTCONA/B[6]置為0;

(3)任何一個復位事件發(fā)生;

(4)軟件將TxCON[1]置為0。

(2)PDPINTx引腳上的電平被拉低并且未被屏蔽;6.2.5通用定時器的PWM輸出每個GPT有一路PWM輸出。若GPT工作于連續(xù)增計數(shù),輸出非對稱PWM波;若工作于連續(xù)增減計數(shù)方式,輸出對稱PWM波形。GPT輸出PWM波形的初始化過程:(1)根據(jù)PWM波形的周期設置TxPR;(2)設置TxCON確定計數(shù)方式、時鐘、使能比較操作;(3)根據(jù)PWM脈寬占空比設置TxCMPR.新的占空比需要新的比較值,比較寄存器的值根據(jù)脈寬的要求不斷更新。

6.2.6通用定時器復位當任何復位事件發(fā)生時,產(chǎn)生以下復位操作。1)GPTCONA/B中,計數(shù)方向指示位置1,其余位都復位為0,禁止所有通用定時器的操作2)所有定時器中斷標志位復位為0;3)所有定時器中斷屏蔽位復位為0,屏蔽所有中斷。4)所有通用定時器的比較器輸出都置為高阻。通用定時器應用利用EVA的通用定時器1定時,初始化程序:編程步驟:初始化T1CON使能定時器操作設置EVAIMAR清EVAIFRA初值T1PR0T1CNTvoidtimer1_ini()//定時器1初始化子程序{

*IMR=0x0002;/*使能int2中斷,*/

*EVAIMRA=0x0080;/*使能T1PINT中斷,或EVAIMRA=EVAIMRA|0x0080;*/

*EVAIFRA=0xFFFF;/*清EVA中斷標志*/

*T1PER=0x01CD;/*GPT1的周期寄存器,fCPU=4x10MHz,

約1ms產(chǎn)生一次中斷*/

*T1CNT=0x0000;/*計數(shù)器清零*/

*T1CON=0x164C;/*連續(xù)增計數(shù)模式,預分頻為64,定時器計時使能,內(nèi)部時鐘,定時器1比較使能*/

asm("clrcINTM");/*開總中斷*/}6.3比較單元

EVA模塊:比較單元1、2和3,定時器1提供時基。

EVB模塊:比較單元4、5和6,定時器3提供時基。

每個比較單元都有兩個相關的PWM輸出引腳,每個EV共有6個。

(1)比較單元輸入和輸出

輸入:1)控制寄存器的控制信號;2)通用定時器1和3(T1CNT和T3CNT)及它們的下溢和周期匹配信號;3)復位信號。輸出:比較匹配信號。如果比較操作使能,該匹配信號將置中斷標志位,并使和比較單元相關的兩個輸出引腳發(fā)生跳變。6.3比較單元(2)比較操作模式--由比較控制寄存器(COMCONx)相關位決定

EV的GPT1(或GPT3)的計數(shù)值不斷與比較寄存器的值進行比較,當發(fā)生匹配時,比較單元的兩個引腳的輸出電平按照方式控制寄存器ACTRA(或ACTRB)控制的位進行跳變。

匹配時,若比較被使能,則比較匹配中斷標志位被置位,這時若中斷沒有被屏蔽,則會產(chǎn)生外設中斷請求,且輸出跳變的時序。中斷請求的產(chǎn)生與通用定時器的比較操作相同。輸出邏輯、死區(qū)單元及空間矢量PWM邏輯可改變比較單元的輸出。(3)比較操作(4)比較單元操作的寄存器配置

EVAEVB設置T1PR設置T3PR設置ACTRA設置ACTRB初始化CMPRx初始化CMPRx設置COMCONA設置COMCONB設置T1CON設置T3CON步驟見右表。

6.3.1比較單元寄存器

若比較使能,則當比較匹配事件發(fā)生時,6個比較輸出引腳就按比較方式控制寄存器設定的方式跳變。任何復位事件使所有比較單元寄存器復位為0,并且比較輸出引腳置為高阻。1)比較控制寄存器A(COMCONA)(7411h)或B(COMCONB)(7511h)

位15:是比較使能位。為0禁止比較操作;為1使能比較操作。

位14-13:確定比較寄存器CMPRx的重載條件。為00時為T1CNT=0(即下溢);為01時為T1CNT=0或T1CNT=T1PR(即下溢或周期匹配);為10時為立即重載;為11時為保留位。位12:為空間矢量PWM模式使能位。為0時禁止空間矢量PWM模式;為1時使能空間矢量PWM模式。

位11-10:確定方式控制寄存器ACTRA的重載條件。為00時條件為T1CNT=0(即下溢);為01時條件為T1CNT=0或T1CNT=T1PR(即下溢或周期匹配);為10時條件為立即重載;為11時為保留位。

位9:是比較輸出使能位。為0時禁止PWM引腳輸出,輸出為高阻態(tài);為1時PWM輸出引腳處于使能狀態(tài)。

位8:反映了當前引腳PDPINTA的狀態(tài)。

-STATUSFCOMPOEACTRLD0ACTRLD1SVENABLECLD0CLD1CENABLE7~089101112131415PDPINTA-STATUSFCOMPOEACTRLD0ACTRLD1SVENABLECLD0CLD1CENABLE7~089101112131415PDPINTB3)比較動作(方式)控制寄存器A(ACTRA)(7413h)或B(ACTRA)(7413h)15141312111098SVRDIRD2D1D0CMP6ACT1CMP6ACT0CMP5ACT1CMP5ACT076543210CMP4ACT1CMP4ACT0CMP3ACT1CMP3ACT0CMP2ACT1CMP2ACT0CMP1ACT1CMP1ACT0位15:確定空間矢量PWM的旋轉方向。為0時正向;為1時反向位14-12:為基本的空間矢量,僅用于空間矢量PWM輸出的產(chǎn)生位11-10:用于選擇引腳PWM6/IOPB3的比較輸出方式。為00輸出強制低;為01輸出低電平有效;為10輸出高電平有效;為11輸出強制高。位9-8:用于選擇引腳PWM5/IOPB2的比較輸出方式。為00輸出強制低;為01輸出低電平有效;為10輸出高電平有效;為11輸出強制高。

位7-6:用于選擇引腳PWM4/IOPB1的比較輸出方式。為00輸出強制低;為01輸出低電平有效;為10輸出高電平有效;為11輸出強制高。位5-4:用于選擇引腳PWM3/IOPB0的比較輸出方式。為00輸出強制低;為01輸出低電平有效;為10輸出高電平有效;為11輸出強制高。

位3-2:用于選擇引腳PWM2/IOPA7的比較輸出方式。為00輸出強制低;為01輸出低電平有效;為10輸出高電平有效;為11輸出強制高。位1-0:用于選擇引腳PWM1/IOPA6的比較輸出方式。為00輸出強制低;為01輸出低電平有效;為10輸出高電平有效;為11輸出強制高。15141312111098SVRDIRD2D1D0CMP12ACT1CMP12ACT0CMP11ACT1CMP11ACT076543210CMP10ACT1CMP10ACT0CMP9ACT1CMP9ACT0CMP8ACT1CMP8ACT0CMP7ACT1CMP7ACT06.3.1比較單元寄存器6.3.2比較單元中斷

若比較操作使能,在比較匹配發(fā)生后的1個CPU時鐘EVxIFRA寄存器中的相應比較中斷標志位置1;如果比較中斷允許,則會產(chǎn)生一個比級中斷請求。比較單元的復位復位時所有與比較單元相關的寄存器都復位為0;并且所有比較輸出引腳都為高阻態(tài)。6.4PWM電路及PWM信號的產(chǎn)生

在電動機控制中,采用基于DSP硬件的PWM發(fā)生電路可大大減小用戶編程的工作量和CPU時間的開銷。

每個EV都有3對0-16μs的可編程死區(qū)控制PWM波形輸出的功能。

脈寬調(diào)制(PWM)的核心就是產(chǎn)生周期不變但脈寬可變的信號,這個定長的周期被稱為PWM載波周期,其倒數(shù)被稱為PWM載波頻率。

不變的PWM載波周期由通用定時器的周期匹配實現(xiàn),根據(jù)調(diào)制頻率來設置通用定時器周期寄存器的值;

可變的PWM脈寬由通用定時器的比較匹配實現(xiàn),根據(jù)已知的脈寬變化規(guī)律在每個周期內(nèi)修改通用定時器比較寄存器的值,用于得到不同的脈寬。

6.4.1PWM信號6.4.2用EV產(chǎn)生PWM信號6.4PWM電路及PWM信號的產(chǎn)生

PWM波形發(fā)生器的特性1)具有16位的死區(qū)控制寄存器;

2)有從0到16μs的可編程死區(qū)發(fā)生器控制PWM輸出對;3)最小的死區(qū)寬度為1個CPU時鐘周期;

4)可根據(jù)需要改變PWM的載波頻率;5)在每個PWM周期內(nèi)可根據(jù)需要改變PWM脈沖的寬度;

6)具有外部可屏蔽的功率驅(qū)動保護中斷;7)脈沖形成發(fā)生器電路用于可編程的對稱、非對稱以及4個空間矢量PWM波形產(chǎn)生;8)具有自動重裝載的比較和周期寄存器使CPU的負擔最小。通過設置死區(qū)控制寄存器可選擇死區(qū)時間。6.4PWM電路及PWM信號的產(chǎn)生6.4.3與比較單元相關的PWM電路

對于每個事件管理器,都具有6路帶有可編程的死區(qū)和輸出極性控制的PWM輸出。

6.4.4可編程的死區(qū)單元和輸出邏輯死區(qū)單元的組成輸入:比較單元的非對稱/對稱波形發(fā)生器產(chǎn)生的PHx信號。輸出:DTPHx、DTPHx_。輸入時鐘預分頻器(x/1、x/2、x/4、x/8、x/16、x/32)3個4位減計數(shù)定時器1)死區(qū)單元的輸入輸出

當死區(qū)被禁止時,2個輸出信號完全相同,且等于輸入PHx;

EVA和EVB具有各自獨立的可編程死區(qū)單元。6.4.4可編程的死區(qū)單元和輸出邏輯帶有死區(qū)的PWM波形圖如DBTCONA[11-8]是m,則當預定標因子DBTCONA[4-2]對應為x/p時,死區(qū)數(shù)值為(m×p)個TCPU。2)死區(qū)的產(chǎn)生

當死區(qū)使能時,這兩個信號的轉換邊沿就會被死區(qū)間隔分開。死區(qū)間隔的大小由DBTCONA/B決定。6.4.4可編程的死區(qū)單元和輸出邏輯4)死區(qū)定時器控制寄存器(1)死區(qū)控制寄存器A(DBTCONA):地址7415h15~12111098保留位DBT3DBT2DBT1DBT07654~21~0EDBT3EDBT2EDBT1DBTPS2DBTPS1DBTPS0保留位位11-8:用于定義死區(qū)定時器周期。這些位規(guī)定了3個4位死區(qū)定時器的周期值位7:為死區(qū)定時器3的使能位(對應比較單元3的引腳PWM5、PWM6)。該位為0表示禁止;為1表示使能。

位6:為死區(qū)定時器2的使能位(對應比較單元2的引腳PWM3、PWM4)。該位為0表示禁止;為1表示使能。位5:為死區(qū)定時器1的使能位(對應比較單元1的引腳PWM1、PWM2)。該位為0表示禁止;為1表示使能。位4-2:確定死區(qū)定時器的預分頻因子。為000時x/1;為001時x/2;為010時x/4;為011時x/8;為100時x/16;為101-111時x/32。(2)死區(qū)控制寄存器B(DBTCONB):地址為7515h

15~12111098保留位DBT3DBT2DBT1DBT07654~21~0EDBT3EDBT2EDBT1DBTPS2DBTPS1DBTPS0保留位6.4.4可編程的死區(qū)單元和輸出邏輯5)輸出邏輯

在比較發(fā)生匹配時,輸出引腳PWM1-PWM12上的輸出極性和方式是由輸出邏輯電路決定的。

與每個比較單元相關的輸出方式可分為低有效、高有效、強制低和強制高。

PWM輸出極性和方式可通過ACTRA/B寄存器中相應的位來配置。當發(fā)生以下任一情況時,所有的PWM輸出引腳都置成高阻態(tài):(1)軟件將COMCONA/B[9]清0;(2)當PDPINTA/B未被屏蔽時,由硬件將PDPINTA/B引腳上的電平拉低;(3)發(fā)生任何復位事件;6.4.5非對稱和對稱PWM的產(chǎn)生EV中的每個比較單元都能夠產(chǎn)生非對稱和對稱的PWM波形,并且三個比較單元一起可以產(chǎn)生三相對稱空間向量PWM輸出。與通用定時器產(chǎn)生PWM波形相比,比較單元多了死區(qū)控制和空間向量PWM輸出功能。

(1)PWM產(chǎn)生的寄存器設置1)設置和裝載比較動作寄存器ACTRA/B,決定PWM輸出的極性;2)若死區(qū)使能,則設置和裝載死區(qū)控制寄存器DBTCONA/B,以決定死區(qū)的大??;3)設置和裝載T1PR或T3PR寄存器,以決定PWM波形的周期;4)初始化比較周期寄存器CMPRx,設置和裝載比較控制寄存器COMCONA/B;

5)設置和裝載TlCON或T3CON寄存器,來啟動比較操作;

6)更新CMPRx寄存器的值,使輸出的PWM波形的占空比發(fā)生變化。6.4.5非對稱和對稱PWM的產(chǎn)生(2)非對稱PWM波形的產(chǎn)生

產(chǎn)生條件:1)將T1或T3設置為連續(xù)增計數(shù)模式;2)裝載周期寄存器=PWM載波周期的數(shù);3)COMCONA/B配置成使能比較操作,使能PWM輸出引腳。4)如果死區(qū)使能,設置死區(qū)時間值(DBTCONA/B的11-8位);5)適當?shù)嘏渲帽容^方式寄存器ACRTA/B。

6.4.5非對稱和對稱PWM的產(chǎn)生(3)對稱PWM波形的產(chǎn)生

產(chǎn)生條件:1)將T1或T3的設置為連續(xù)增/減計數(shù)模式;2)裝載周期寄存器=PWM載波周期的數(shù);3)COMCONA/B配置成使能比較操作,使能PWM輸出引腳。4)如果死區(qū)使能,設置死區(qū)時間值(DBTCONA/B的11-8位);5)適當?shù)嘏渲眉拇嫫鰽CRTA/B。

對稱PWM波形比非對稱PWM波形的優(yōu)越之處在于它存在有兩個相同長度的非激活區(qū)(無效區(qū)),這兩個區(qū)分別位于PWM波形的起始和結束處。6.4.5非對稱和對稱PWM的產(chǎn)生*PWM輸出假設PWM的引腳輸出為高電平有效,比較寄存器的值為TxCMPR,周期寄存器的值為TxPR,正常時有0<TxCMPR<TxPR,通用定時器的工作模式為連續(xù)增/減方式。波形的發(fā)生過程如下:1)計數(shù)器從0開始增計數(shù),在未達到比較寄存器的值之前,引腳輸出為無效的低電平。2)當計數(shù)值與比較寄存器的值相等時,產(chǎn)生第一次比較匹配事件,PWM引腳輸出有效高電平。3)計數(shù)器繼續(xù)增計數(shù)到周期值,發(fā)生周期匹配事件。計數(shù)器減計數(shù)操作,當再次與比較值相等時,發(fā)生第二次比較匹配事件,對應的PWM引腳輸出低電平。之后,定時計數(shù)器繼續(xù)減計數(shù)到0為止,產(chǎn)生一次下溢事件,完成一個周期。4)如果下一個周期比較寄存器的值仍然大于0且小于周期寄存器的值,則又重復以上步驟。6.4.5非對稱和對稱PWM的產(chǎn)生由于在一個周期內(nèi)會發(fā)生兩次比較匹配事件,如果兩次比較值相同,則會產(chǎn)生對稱的PWM波形。如果兩次比較匹配值不同,則會產(chǎn)生非對稱的PWM波形。

voidpwm_ini()//pwm初始化子程序{*MCRA|=0x0FC0;/*設置復用控制寄存器使能pwm1~6引腳*/*ACTRA=0x0666;

/*pwm6,4,2高有效,pwm5,3,1低有效*/*DBTCONA=0x0000;

/*禁用死區(qū)控制*/*CMPR1=0x0100;/*設定比較器周期寄存器CMPR1~3*/

*CMPR2=0x0300;

/*確定不同的占空比*/

*CMPR3=0x0500;

/*設置定時器1的周期寄存器,確定載波頻率*/*T1PER=0x0600;*COMCONA=0x8200;/*使能比較器操作*/

*T1CON=0x1000;/*定時器1為連續(xù)增計數(shù)模式*/

}EVA/B的PWM波形應用軟件設計頭文件,鏈接命令文件,中斷向量表文件,芯片初始化子程序,PWM初始化子程序,主程序。6.5空間向量PWM為三相功率變換器中六個功率晶體等設計的特殊開關電路三相功率反相換流器原理:aa_T1T2bb_VaVbVcT3T4T5T6c_cV0UT0101100111000011016.5空間向量PWMabcVa0Vb0Vc0VabVbcVacT2T4T6000000000111001-1/3-1/32/30-11110010-1/32/3-1/3-110101011-2/31/31/3-1011001002/3-1/3-1/310-10111011/3-2/31/31-100101101/31/3-2/301-1001111000000000開關模式:以T1,T3,T5的開關狀態(tài):6.6捕捉單元

捕獲單元是一種輸入設備,它不占用CPU的資源,可以與CPU并行地捕獲引腳上的電平變化并記錄發(fā)生的時刻。由于捕獲單元具有兩級FIFO堆棧緩沖器,對于微秒級電平波動的捕獲能力是一般CPU所不具備的。

每個EV有三個捕獲單元。

EVA對應捕獲單元CAP1、2和3,EVB對應4、5和6。

EVA捕獲單元可利用T1或T2作為時基,但CAP1和CAP2不能選擇不同的時基。EVB捕獲單元可利用T3或T4作為時基,但CAP4和CAP5不能選擇不同的時基。當檢測引腳CAPx(EVA:x=1、2、4;EVB:x=4、5、6)上的電平發(fā)生跳變時,所選的定時器的計數(shù)值就被捕獲并存入到一個2級深的FIFO堆棧中。6.6捕捉單元捕獲引腳捕獲控制寄存器捕獲FIFO狀態(tài)寄存器可定義為上升沿、下降沿,或上升下降沿檢測2級深的FIFO堆棧1)一個16位可讀寫的捕獲控制寄存器(EVA:CAPCONA;EVB:CAPCONB);2)一個16位的捕獲FIFO狀態(tài)寄存器(EVA:CAPFIFOA;EVB:CAPFIFOB);3)可選擇通用定時器1或2(EVA)和選擇通用定時器3或4(EVB)作為時間基準;4)每個捕獲單元都有一個16位、2級深的FIFO堆棧;

5)6個施密特捕獲輸入引腳CAP1-CAP6,每個引腳對應一個捕獲單元;6)可定義的跳變檢測方式(上升沿、下降沿,或上升下降沿);

7)每個捕獲單元都對應一個可屏蔽的中斷標志位。6.6.1捕捉單元的特點1)捕獲功能使能時,當在相應的輸入引腳上產(chǎn)生一個指定的電平跳變時,將引發(fā)計數(shù)器的計數(shù)值裝載到2級深的FIFO堆棧中;2)假如已經(jīng)有一個或多個有效的捕獲值存儲在堆棧中(CAPFIFOA/B相應位不為0),則相應的中斷標志位被置位。如果這個中斷沒有被屏蔽,將會產(chǎn)生一個外設中斷請求。3)每當一個新的計數(shù)值被捕獲并裝載到FIFO堆棧時,CAPFIFOA/B中相應的狀態(tài)位被調(diào)整到適應新的堆棧狀態(tài)。6.6.1捕捉單元的操作捕獲單元的操作不影響任何通用定時器或與通用定時器相關的比較/PWM操作。從捕獲引腳的電平跳變到計數(shù)值被存儲所用的時間為2個時鐘周期。6.6捕捉單元所有捕獲單元的寄存器都可由RESET信號復位為0。1)捕捉單元時間基準選擇對于EVA模塊,捕獲單元CAP3有自己獨立的時基選擇位,而CAP1和CAP2沒有,這就使得可以同時使用2個通用定時器。

CAP1和CAP2共用一個,而CAP3獨立使用一個。對于EVB模塊,CAP6有自己獨立的時基選擇位。為進行正常捕獲操作,必須進行如下寄存器的設置:(1)初始化FIFO狀態(tài)寄存器(CAPFIFOA/B),并將相應的狀態(tài)位清0;

(2)設置所選用定時器的操作模式;

(3)如果需要,設置相關通用定時器的比較寄存器和周期寄存器;(4)設置相應的捕獲控制寄存器CAPCONA/B。2)捕捉單元的設置6.6.3捕捉單元寄存器捕獲單元的操作是由4個16位的寄存器CAPCONA/B和CAPFIFOA/B控制的。由于使用了定時器1-4為捕獲單元提供時基,因此也用到了寄存器TxCON。此外,寄存器CAPCONA/B也用來控制正交編碼電路(QEP)的操作。(1)捕獲控制寄存器A(CAPCONA):地址為7420h

1514-1312111098CAPRESCAPQEPNCAP3EN-CAP3TSELCAP12TSELCAP3TOADC7-65-43-21-0CAP1EDGECAP2EDGECAP3EDGE-位15:為捕獲復位位。為0時將所有捕獲單元及正交編碼脈沖電路的寄存器清0;為1時不進行任何操作。

位14-13:是捕獲單元1和2的控制位。為00時禁止捕獲單元1和2操作,F(xiàn)IFO堆棧保持原內(nèi)容不變;為01時使能捕獲單元1和2操作。位12:是捕獲單元3控制位。為0時禁止捕獲單元3操作,F(xiàn)IFO內(nèi)容不變;為1時使能捕獲單元3操作。位10:是捕獲單元3的通用定時器選擇位。為0時選擇定時器2;為1時選擇定時器1。

位9:是捕獲單元1和2的通用定時器選擇位。為0時選擇定時器2;為1時選擇定時器1。

位8:是捕獲單元3啟動ADC轉換控制位。為0時無意義;為1時,在CAP3INT標志置位時啟動ADC。

位7-6:是捕獲單元1的邊沿檢測控制位。為00時無檢測;為01時檢測上升沿;為10時檢測下降沿;為11時檢測上升和下降沿。位5-4:是捕獲單元2的邊沿檢測控制位。為00時無檢測;為01時檢測上升沿;為10時檢測下降沿;為11時檢測上升和下降沿。位3-2:是捕獲單元3的邊沿檢測控制位。為00時無檢測;為01時檢測上升沿;為10時檢測下降沿;為11時檢測上升和下降沿。

1514-1312111098CAPRESCAPQEPNCAP6EN-CAP6TSELCAP45TSELCAP6TOADC7-65-43-21-0CAP4EDGECAP5EDGECAP6EDGE-(2)捕獲控制寄存器B(CAPCONB):地址為7520h

6.6.4捕捉單元FIFO堆棧每個捕獲單元都有一個2級深的FIFO(先進先出)堆棧。EVA:頂部包括CAP1FIFO、CAP2FIFO、CAP3FIFO,底部包括CAP1FBOT、CAP2FBOT、CAP3FBOT;EVB:頂部包括CAP4FIFO、CAP5FIFO、CAP6FIFO,底部包括CAP4FBOT、CAP5FBOT、CAP6FBOT。頂部寄存器(存舊值)底部寄存器(存新值)出進只讀如果底部寄存器的值壓入頂部,某捕捉單元的FIFO狀態(tài)寄存器的相應2位狀態(tài)位將發(fā)生變化:若讀取前為10,或11,則讀取后變?yōu)?1,表明堆棧中只有一個值;若讀取前為01,則讀取后變?yōu)?0,即堆棧為空。讀取后,底部的新值(如果有的話)就會壓入到頂部。(2)第二次捕捉

如果在前次捕捉計數(shù)值被讀出之前產(chǎn)生了另一次的捕獲,則新捕獲到的計數(shù)值被送到底部寄存器,同時相應的狀態(tài)位設置成10。如果在下次捕獲前讀取了頂部計數(shù)值,底部中的新計數(shù)值將壓入到頂部寄存器中,F(xiàn)IFO狀態(tài)位被置成01。(3)第三次捕捉若在捕捉發(fā)生時棧中已有兩個捕獲到的計數(shù)值,此時又發(fā)生一個新的捕獲事件,則位于頂部的舊值將彈出棧并丟失,而底部中的計數(shù)值將壓入到頂部寄存器中,新捕獲到的計數(shù)值被壓入到底部寄存器,并將FIFO的狀態(tài)位置成11。6.6.4捕捉單元FIFO堆棧(1)第一次捕捉當相應捕捉單元對應的引腳電平發(fā)生跳變并被捕捉到時,如果此時堆棧是空的,則相應定時器的計數(shù)值輸入到頂部寄存器中,同時相應的狀態(tài)位被設置為01。如果在下次捕獲之前對FIFO棧進行了訪問,狀態(tài)位將被復位到00。堆棧的操作狀態(tài)如果FIFO堆棧中已經(jīng)存在至少一個有效的計數(shù)值,此時又發(fā)生了一次捕獲事件,則相應的中斷標志被置位。如果該中斷沒有被屏蔽,則會產(chǎn)生一個外設中斷請求信號。

如果使用了捕獲中斷,則可從中斷服務程序中讀取捕獲到的計數(shù)值。

如果沒有使用中斷,則也可以通過查詢中斷標志位和FIFO棧的狀態(tài)位來確定是否發(fā)生了捕獲事件,若已發(fā)生捕獲事件,則可從相應捕獲單元的FIFO棧中讀取捕獲到的計數(shù)值。6.6.5捕捉中斷捕獲單元的應用

脈沖計數(shù):用捕獲單元對輸入脈沖邊沿進行捕獲、用EV的GPT對脈沖進行計數(shù)。

注意:在不知道捕獲對象寬度時,應盡量使定時器能定最長時間,如不倍頻,128預分頻;如果超過了DSP的最大捕獲時間,則用定時器溢出的方法再加軟件計數(shù);捕捉引腳輸入電平<3.3V(2812/2407為3.3V供電)6.8EV事件管理器中斷捕獲單元3中斷0035h3CAP3INT捕獲單元2中斷0034h2CAP2INT4捕獲單元1中斷0033h1CAP1INTC通用定時器2上溢中斷002Eh4T2OFINT通用定時器2下溢中斷002Dh3T2UFINT通用定時器2比較中斷002Ch2T2CINT3通用定時器2周期中斷002Bh1T2PINTB通用定時器1上溢中斷002Ah8T1OFINT通用定時器1下溢中斷0029h7T1UFINT通用定時器1比較中斷0028h6T1CINT通用定時器1周期中斷0027h5T1PINT比較單元3比較中斷0023h4CMP3INT比較單元2比較中斷0022h3CMP2INT2比較單元1比較中斷0021h2CMP1INTA1功率驅(qū)動保護中斷A0020h1INT中斷源中斷向量優(yōu)先級中斷名稱中斷組EVAEVA、EVB各有15個中斷源,其中14個分成A、B、C3個組,產(chǎn)生INT2、INT3、INT4內(nèi)核級中斷,另一個產(chǎn)生INT1內(nèi)核級中斷。6.8EV事件管理器中斷EVB捕獲單元6中斷0038h3CAP6INT捕獲單元5中斷0037h2CAP5INT4捕獲單元4中斷0036h1CAP4INTC通用定時器4上溢中斷003Ch4T4OFINT通用定時器4下溢中斷003Bh3T4UFINT通用定時器4比較中斷003Ah2T4CINT3通用定時器4周期中斷0039h1T4PINTB通用定時器3上溢中斷0032h8T3OFINT通用定時器3下溢中斷0031h7T3UFINT通用定時器3比較中斷0030h6T3CINT通用定時器3周期中斷002Fh5T3PINT比較單元6比較中斷0026h4CMP6INT比較單元5比較中斷0025h3CMP5INT2比較單元4比較中斷0024h2CMP4INTA1功率驅(qū)動保護中斷B0019h1INT中斷源中斷向量優(yōu)先級中斷名稱中斷組中斷產(chǎn)生條件:下溢:計數(shù)值為0000h時,上溢:計數(shù)值為FFFFh比較:計數(shù)值與比較寄存器的值匹配時;周期:計數(shù)值與周期寄存器的值。6.8.1EV中斷請求和服務1)產(chǎn)生外設中斷請求

當事件管理器模塊產(chǎn)生一個中斷時,則其相應的中斷標志位置1。如果此時相應的中斷未被屏蔽(使能),則外設中斷擴展控制器(PIE)就產(chǎn)生了一個外設中斷請求。2)加載優(yōu)先級別較高的中斷向量到PIVR

當中斷請求被CPU接受時,和最高優(yōu)先級相對應的那個中斷向量被裝載到PIVR中,在主中斷服務程序(ISR)中可讀取該中斷向量。

注意:一旦發(fā)生中斷,在中斷服務程序中應通過向中斷標志寄存器的相應位寫1的方法來清除中斷標志,否則,該中斷以后將不再產(chǎn)生中斷請求。6.8.1EV中斷請求和服務3)中斷響應過程(EV中斷響應過程)(1)中斷源

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論