FTM多功能定時器模塊簡介_第1頁
FTM多功能定時器模塊簡介_第2頁
FTM多功能定時器模塊簡介_第3頁
FTM多功能定時器模塊簡介_第4頁
FTM多功能定時器模塊簡介_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

...wd......wd......wd...1.5.1FTM模塊簡介FTM模塊是一個多功能定時器模塊,主要功能有,PWM輸出、輸入捕捉、輸出比擬、定時中斷、脈沖加減計數(shù)、脈沖周期脈寬測量。在K10中,共有FTM0,F(xiàn)TM1,F(xiàn)TM2三個獨立的FTM模塊。其中FTM0有8個通道,可用于電機或舵機的PWM輸出,但不具備正交解碼功能,也就是對旋轉(zhuǎn)編碼器輸入的正反向計數(shù)功能。而FTM1和FTM2則具備正交解碼功能,但是FTM1和FTM2各只有兩個通道。FTM模塊的時間基準來自一個16位的計數(shù)器,該計數(shù)器的值可讀取,即可作為無符號數(shù)對待,也可作為有符號數(shù)的補碼對待。FTM模塊特性時鐘源可選擇,F(xiàn)TM的時鐘源可以來自系統(tǒng)時鐘或外部時鐘??蓪r鐘分頻,分頻比為1,2,4,8,16,32,64,128。FTM的一個16位計數(shù)器,該計數(shù)器可設置為自由運行或由用戶設置起始和完畢值,可遞增計數(shù)也可遞減計數(shù)。FTM的每個通道都可以設置為輸入捕捉、輸出比擬或邊沿對其的PWM輸出。在輸入捕捉模式下,可捕捉上升沿、下降沿或兩個邊沿都捕捉,有些通道可選擇輸入濾波器。在輸出比擬模式下,在比擬成功時可選擇輸出信號置位、清零或翻轉(zhuǎn)。所有的通道都可以設置為中心對齊的PWM輸出模式。每對通道都可以級聯(lián)以產(chǎn)生PWM信號。FTM的通道可成對工作在一樣輸出或互補輸出,也可各通道獨立輸出。當通道成對互補輸出時可使用死區(qū)插入??僧a(chǎn)生觸發(fā)信號。軟件控制PWM輸出。最多4個全局錯誤控制使用的錯誤輸入。每個通道的極性可設置。每個通道都可產(chǎn)生中斷。錯誤條件發(fā)生時也可產(chǎn)生中斷。同步載入或?qū)懭霂Ь彌_的FTM存放器。關鍵存放器有寫保護功能。和HS08系里的TPM兼容。對于維持在低電平或高電平的信號也可進展輸入捕捉的測試。雙邊沿捕捉可用于脈沖或周期信號寬度測量。FTM模塊框圖由圖可見,F(xiàn)TM模塊的核心是一個16位計數(shù)器,該計數(shù)器的時鐘源可以選擇,如果我們選擇由FTM來實現(xiàn)PWM,輸入捕捉,或者輸出比擬,定時中斷,脈寬測量等功能,則一般選擇systemclock。這個時鐘實際上就是我們前面提到的MCG模塊輸出的MCGOUTCLK,再由SIM模塊分配后得到的BusClock。如果我們選擇由FTM實現(xiàn)對外部脈沖的計數(shù),也可選擇外部時鐘,如果是外部編碼器輸入的AB相脈沖,用于電機正反轉(zhuǎn)測速,則可以使用PHA和PHB輸入,由計數(shù)器自動加減計數(shù)。16位計數(shù)器FTMCounter每個FTM模塊一個,該FTM模塊的所有通道共用這一個計數(shù)器。計數(shù)器的初始值〔CNTIN〕和完畢值〔MOD〕可以設置。計數(shù)器的計數(shù)方式有三種,一種是遞增計數(shù),計數(shù)器從初始值開場累加,直到完畢值,在下一個時鐘周期,又回到初始值,循環(huán)往復。第二種是先加后減計數(shù),計數(shù)器從初始值開場累加,到完畢值后,從下一個時鐘開場遞減,一直減到初始值,然后再次開場累加,循環(huán)往復運行。第三種是正交解碼模式,即對外部輸入的AB相脈沖計數(shù),由FTM根據(jù)A相和B相的相位自動遞增或遞減計數(shù)。在這里需要注意,F(xiàn)TM0不具備第三種計數(shù)模式,只有FTM1和FTM2可以使用正交解碼。1.5.2FTM的存放器對FTM模塊的設置和訪問時都是通過FTM的存放器來完成,下面我們就開場介紹FTM相關的存放器。注意,F(xiàn)TM模塊有很多存放器的寫入操作并不能立刻更新該存放器的值,而是先寫到一個緩沖器〔Buffer〕里,由系統(tǒng)在設置好的載入點〔loadpoint〕,再配合軟件或硬件觸發(fā)的方式來從緩沖器更新存放器中的值的,后面我們介紹到這些存放器的時候會指出。另外,F(xiàn)TM的很多存放器具有寫保護功能,需要先把寫保護翻開才可以寫入,這點也在后面的介紹中提到。狀態(tài)和控制存放器〔FTMx_SC〕該存放器每個FTM模塊一個,里面包含計數(shù)器溢出標志,溢出中斷允許設置,計數(shù)模式設置,時鐘源選擇和分頻設置,具體如下。TOF:定時器溢出標志,當FTM模塊計數(shù)器到達MOD存放器中設置的完畢值時,無論是遞增計數(shù)還是先加后減計數(shù),在計數(shù)值從完畢值變化到下一個值時,該位置1。當讀取該存放器,且該位置1時,寫0可去除該標志,寫1則沒有效果。TOIE:定時器溢出中斷使能。當TOF置1時是否觸發(fā)中斷。對外界固定時鐘計數(shù)配合TOF和TOIE則可以實現(xiàn)定時中斷的功能。TOIE=0:定時器溢出中斷制止;TOIE=1:定時器溢出中斷使能。CPWMS:中心對齊PWM選擇。這一位實際是設置計數(shù)器加減計數(shù),所謂PWM中心對齊模式就是指的計數(shù)器先加后減。該位平時出于寫保護狀態(tài),只有在MODE[WPDIS]=1時才可被寫入。CPWMS=0:計數(shù)器加法計數(shù);CPWMS=1:計數(shù)器先加后減計數(shù)。CLKS:時鐘源選擇。選擇FTM計數(shù)器的時鐘來源。該位平時寫保護,只有在MODE[WPDIS]=1時才可寫入。CLKS=00:未選擇時鐘;CLKS=01:系統(tǒng)時鐘〔推薦,即BusClock〕;CLKS=10:定頻時鐘;CLKS=11:外部時鐘。PS:預分頻設置。設置對CLK選中的時鐘預分頻。該位平時寫保護,只有在MODE[WPDIS]=1時才可寫入。預分頻比=2^PS,最大128分頻。計數(shù)器FTMx_CNT該存放器包含F(xiàn)TM計數(shù)器的值。復位時該存放器清0,向該存放器寫入任何值將會使該存放器回到初始設定值。CNTIN中保存的是初始設定值。BDM模式下,F(xiàn)TM計數(shù)器被凍結(jié)。模數(shù)存放器FTMx_MOD該存放器保存FTM計數(shù)器的模數(shù),即計數(shù)器計數(shù)終止值,當計數(shù)器到達對應的模數(shù)值時,TOF將在下一個時鐘到來時置1。此時計數(shù)器的值取決于選擇的計數(shù)器計數(shù)方案,默認回到初始值。寫該存放器的值會先鎖存到一個緩沖器里,不會立刻更新,而是和存放器更新設置有關。通道n狀態(tài)及控制存放器〔FTMx_CnSC〕這是一個非常重要的存放器,每個通道都有一個CnSC存放器。該存放器中包含通道中斷標志位、中斷使能控制位、通道設置以及引腳功能設置。CHF:通道標志,當對應通道設定事件發(fā)生時該位由硬件置1。所謂通道設定事件有兩種,一種是輸入捕捉模式下,捕捉到設定的邊沿時;另一種是輸出比擬模式下,F(xiàn)TM計數(shù)值變化到和通道n的設定值相等時。當通道的CHF置1時,讀取CnSC存放器并對CHF位寫0可去除該位,寫1無效。如果該位置1,在對CSC存放器進展讀寫操作時,新的事件發(fā)生,則CHF位仍保持未去除的狀態(tài)。在這種情況下,新發(fā)生的事件的中斷請求不會喪失。CHF=0:通道事件未發(fā)生;CHF=1:發(fā)生通道事件。CHIE:通道中斷使能。該位用于設置CHF置位時是否發(fā)出中斷請求。CHIE=0:通道中斷制止;CHIE=1:通道中斷使能。MSB、MSA:通道模式選擇,只有在MODE[WPDIS]=1的情況下才可寫入。當DECAPEN=0,也就是不用雙邊沿捕捉,雙邊沿捕捉一般用于捕捉外部脈沖用于測量脈沖的周期和脈寬時用。MSB:MSA=00:輸入捕捉;MSB:MSA=01:輸出比擬;MSB:MSA=1x:邊沿對齊PWM。當DECAPEN=1,即使用雙邊沿捕捉時。MSB:MSA=X0:單次捕捉模式;MSB:MSA=X1:連續(xù)捕捉模式。ELSB、ELSA:邊沿或電平選擇。參看下表:模式、邊沿和電平選擇,在下表中,有些設置位還沒有提到,這里提前介紹一下。DECAPEN用于設置雙邊沿捕捉,主要用于測外部脈沖的周期和脈寬時用到;COMBINE用于設置聯(lián)合模式,用于兩路聯(lián)合輸出PWM,可用于非對稱PWM波形輸出,或者兩通道互補輸出,使用聯(lián)合方式輸出PWM的方式在有些橋式電機驅(qū)動的電路中,可以很方便的實現(xiàn)電機正反轉(zhuǎn)切換,也可以用軟件實現(xiàn)死區(qū)插入,如果不用聯(lián)合模式,該位置0即可;CPWMS在FTMx_SC存放器中已經(jīng)介紹,具體參看前面的介紹。有關MSnB:MSnA和ELSnB:ELSnA在不同用途的設置,參考下表。DECAPENCOMBINECPWMSMSnB:MSnAELSnB:ELSnAMODE設置XXXXX0無沒有引腳被FTM使用00001輸入捕捉只捕捉上升沿10只捕捉下降沿11捕捉上升沿或下降沿11輸出比擬比擬成功輸出翻轉(zhuǎn)10比擬成功輸出低電平11比擬成功輸出高電平1X10邊沿對齊PWM先高后低X1先低后高1XX10中心對齊PWM上下高X1低上下10XX10聯(lián)合PWMn通道比擬成功高,n+1通道比擬成功低X1n通道比擬成功低,n+1通道比擬成功高100X0查看下表雙邊沿捕捉模式單次捕捉X1連續(xù)捕捉ELSnBELSnA通道端口使能檢測邊沿00制止不檢測01使能上升沿10使能下降沿11使能上升沿和下降沿DMA:DMA使能,使能該通道的DMA傳輸DMA=0:DMA制止;DMA=1:DMA使能。通道n計數(shù)值存放器〔(FTMx_CnV〕每個通道都有一個CnV存放器,在輸入捕捉模式下,當捕捉到設置的邊沿時,此時FTM計數(shù)器的值自動保存到CnV存放器中,該值可用于反映捕捉事件發(fā)生的時刻。在輸出模式下CnV存放器保存輸出匹配值,該值用于和FTM計數(shù)器的值進展比擬,當相等時,則比擬成功。在輸入捕捉、捕捉測試和雙邊沿捕捉模式下,任何對該存放器的寫入操作都無效。在輸出模式下,寫入該存放器的值會先鎖存到緩沖器內(nèi),何時更新和存放器更新設置有關。計數(shù)器初始值存放器〔FTMx_CNTIN〕該存放器保存FTM計數(shù)器的初始值。寫入該存放器的值會預先鎖存在緩沖器內(nèi)。在選擇時鐘前,先設置該存放器以初始化FTM計數(shù)器,否則,計數(shù)器會默認從0開場計數(shù)。捕捉和比擬狀態(tài)存放器〔FTMx_STATUS〕該存放器中包含了每個通道的FTMx_CSC存放器中的CHnF位的拷貝以方便編程。這樣一次就可以讀出一個FTM模塊的所有通道的標志位,讀取后,寫0去除。特性模式選擇存放器〔FTMx_MODE〕該存放器主要設置錯誤中斷、錯誤控制、捕捉測試模式、PWM同步、寫保護、通道輸出初始化、FTM增強特性使能。這些控制和所有通道都有關。FAULTIE:錯誤中斷使能,當錯誤控制使能時,在檢測到錯誤時是否觸發(fā)中斷。FAULTIE=0:錯誤控制中斷制止;FAULTIE=1:錯誤控制中斷使能。FAULTM:定義錯誤控制模式,該存放器寫保護,只有當MODE[WPDIS]=1時可寫入。FAULTM=00:所有通道錯誤控制功能制止;FAULTM=01:偶數(shù)通道錯誤控制使能,且手動去除錯誤;FAULTM=10:所有通道錯誤控制使能,且手動去除錯誤;FAULTM=11:所有通道錯誤控制使能,且自動去除錯誤。CAPTEST:捕捉測試使能,該位寫保護,只有當MODE[WPDIS]=1時可寫入。CAPTEST=0:輸入捕捉測試制止;CAPTEST=0:輸入捕捉測試制止。PWMSYNC:PWM同步模式,所謂PWM同步實際上就是如何將某些存放器的值從Buffer中更新的一種機制。選擇MOD,CnV,OUTMASK,和FTMcounter幾個存放器同步時使用的觸發(fā)器,可選擇軟件觸發(fā)或硬件觸發(fā)。觸發(fā)就是允許計數(shù)器在到達下一個載入點時更新這些存放器的值的信號。軟件觸發(fā)通過編程實現(xiàn),硬件觸發(fā)通過外部脈沖實現(xiàn)。PWMSYNC=0:MOD,CnV,OUTMASK,和FTMcounter幾個存放器的同步可以選擇軟件觸發(fā)或硬件觸發(fā),沒有限制。PWMSYNC=1:MOD,CnV的同步只可以選擇軟件觸發(fā),OUTMASK,和FTMcounter的同步只可以選擇硬件觸發(fā)。WPDIS:寫保護制止,該位和WPEN〔寫保護使能〕相反,當WPEN寫1時,WPDIS被清0WPDIS=0:寫保護使能,被寫保護的位不可被寫入;WPDIS=1:寫保護制止,被寫保護的位可寫入。INIT:通道輸出初始化,當對INIT寫1時,通道的輸出初始化,根據(jù)每個通道的OUTINIT存放器而定。對該位寫0無效,任何時候讀取該位都為0。FTMEN:FTM使能,該位寫保護,只有當MODE[WPDIS]=1時可寫入。FTMEN=0:只有和S08的TPM兼容的存放器可以使用,這時一般的輸入捕捉和輸出比擬,各通道獨立輸出PWM都可以使用,且不需要選擇PWM同步方式;FTMEN=1:所有存放器都可以使用。如果使用通道聯(lián)合輸出PWM,雙邊沿捕捉,AB相計數(shù)等增強的功能,則需要設置FTMEN=1,這時也必須規(guī)劃好使用的到的一些存放器的更新方式,即PWM同步方式和軟硬件觸發(fā)同步的方式。同步存放器〔FTMx_SYNC〕該存放器用于設置PWM同步。一個同步事件能夠執(zhí)行MOD,CV,和OUTMASK存放器的同步,即使用緩沖器中的值更新這幾個存放器,這時FTM計數(shù)器也可以重新初始化。當FTMEN=1時,該存放器必須合理設置。SWSYNC:PWM同步軟件觸發(fā)。當對該位寫1時,軟件觸發(fā)發(fā)生,即發(fā)生軟件觸發(fā)事件,當計數(shù)器運行到下一個載入點時,同步發(fā)生,對應存放器更新,完畢后SWSYNC會自動清0。TRIG2:PWM同步硬件觸發(fā)器2。使能硬件觸發(fā)器2觸發(fā)PWM同步,觸發(fā)器2輸入引腳上出現(xiàn)上升沿時硬件觸發(fā)。TRIG2=0:觸發(fā)器制止;TRIG2=1:觸發(fā)器使能。TRIG1:PWM同步硬件觸發(fā)器1。使能硬件觸發(fā)器1觸發(fā)PWM同步,觸發(fā)器1輸入引腳上出現(xiàn)上升沿時硬件觸發(fā)。TRIG1=0:觸發(fā)器制止;TRIG1=1:觸發(fā)器使能。TRIG0:PWM同步硬件觸發(fā)器0。使能硬件觸發(fā)器0觸發(fā)PWM同步,觸發(fā)器0輸入引腳上出現(xiàn)上升沿時硬件觸發(fā)。TRIG0=0:觸發(fā)器制止;TRIG0=1:觸發(fā)器使能。注意:軟件觸發(fā),即向SWSYNC位寫1,和通過TRIG0:3實現(xiàn)的硬件觸發(fā),存在潛在的沖突。當SYNCMODE=0時,如果同時使用硬件觸發(fā)和軟件觸發(fā)就可能發(fā)生。建議不要同時使用軟件觸發(fā)和硬件觸發(fā),一般情況下,當我們使用FTM的一些增強功能時,我們使用軟件觸發(fā)即可。SYNCHOM:輸出屏蔽同步,選擇OUTMASK存放器是否從緩沖器里更新。SYNCHOM=0:在系統(tǒng)時鐘上升沿時,OUTMASK存放器從緩沖器中更新自身值;SYNCHOM=1:PWM同步時,OUTMASK存放器從緩沖器中更新自身值。RENINT:FTM計數(shù)器重新初始化。決定中選擇的觸發(fā)器觸發(fā)同步時,F(xiàn)TM計數(shù)器是否重新初始化。RENINT=0:FTM計數(shù)器繼續(xù)計數(shù);RENINT=1:當觸發(fā)事件發(fā)生時,F(xiàn)TM計數(shù)器回到設定的初值。CNTMAX:最大載入點使能,當觸發(fā)事件發(fā)生后,直到FTM計數(shù)器到達莫一個值時,這一時刻才會發(fā)生更新存放器值的同步,這一時刻就是載入點。當該位為1時,當FTM計數(shù)器到達最大值時,即MOD值,這一時刻將作為一個同步的載入點。CNTMIN:最小裝載點使能當該位為1時,當FTM計數(shù)器到達最小值時,即CNTIN值,這一時刻將作為一個同步的載入點。通道輸出初始狀態(tài)〔FTMx_OUTINIT〕CHxOI:通道x輸出初始值。CHxOI=0:初始值為0;CHxOI=1:初始值為1。輸出屏蔽存放器〔FTMx_OUTMASK〕CHxOM:通道x輸出屏蔽。CHxOM=0:該通道輸出正常;CHxOM=1:該通道輸出屏蔽。通道聯(lián)合功能存放器〔FTMx_COMBINE〕該存放器包含:錯誤控制、同步、死區(qū)插入、雙邊沿捕捉模式、補償、雙通道聯(lián)合等功能。該存放器在使用雙通道聯(lián)合功能時,主要是非對稱PWM輸出,雙通道互補輸出,雙邊沿捕捉等功能時需要合理設置。FAULTENn:使能通道2n和2n+1的錯誤控制,該位寫保護,只有當MODE[WPDIS]=1時可寫入。FAULTENn=0:通道2n和2n+1的錯誤控制制止;FAULTENn=1:通道2n和2n+1的錯誤控制使能。SYNCENn:使能存放器C(2n)V和C(2n+1)V的PWM同步,即這兩個存放器能否被觸發(fā)事件觸發(fā)更新。該位寫保護,只有當MODE[WPDIS]=1時可寫入。SYNCENn=0:存放器C(2n)V和C(2n+1)V的PWM同步制止;SYNCENn=·:存放器C(2n)V和C(2n+1)V的PWM同步使能。DTENn:死區(qū)使能。使能通道2n和2n+1的死區(qū)插入。死區(qū)插入在雙通道互補輸入控制橋式電機驅(qū)動電路時,防止同側(cè)開關管同時導通的危險,具體插入死區(qū)的時間則由FTMx_DEADTIME存放器設定。該位寫保護,只有當MODE[WPDIS]=1時可寫入。DTENn=0:通道2n和2n+1的死區(qū)插入功能制止;DTENn=1:通道2n和2n+1的死區(qū)插入功能使能。DECAPn:雙邊沿捕捉。使能通道2n和2n+1的雙邊沿捕捉。該位只有當FTMEN=1和DECAPEN=1時有效。DECAPn=0:通道2n和2n+1的雙邊沿捕捉制止;DECAPn=1:通道2n和2n+1的雙邊沿捕捉使能。COMPn:使能通道2n和2n+1的互補模式,即兩個通道波形相反。該位寫保護,只有當MODE[WPDIS]=1時可寫入。COMPn=0:通道2n和2n+1的互補模式制止;COMPn=1:通道2n和2n+1的互補模式使能。COBINEn:通道2n和2n+1聯(lián)合設置。只有COMBINEn=1,才可使用上面那些位設置的功能。該位寫保護,只有當MODE[WPDIS]=1時可寫入。COBINEn=0:通道2n和2n+1獨立使用;COBINEn=1:通道2n和2n+1聯(lián)合使用。死區(qū)插入控制存放器〔FTMx_DEADTIME〕該存放器設置死區(qū)時間分頻系數(shù)和死區(qū)值。所有的FTM通道都使用這個時鐘分頻和死區(qū)值。死區(qū)插入的目的時在驅(qū)動全橋電路時,防止同側(cè)半橋同時導通。只有雙通道聯(lián)合互補輸出時,且對應的DTENn=1時,設置的死區(qū)值才有效。DTPS:分頻設置。死區(qū)時間的定時也是由對BusClock計數(shù)實現(xiàn)的,DTPS設定的時對BusClock分頻的設置。DTPS=0X:分頻比為1;DTPS=10:分頻比為4;DTPS=11:分頻比為16。DTVAL:DTVAL設置對DTPS分頻后的時鐘的計數(shù)值以確定死區(qū)插入的時間。死區(qū)插入的時間=DTPS*DTVAL*總線時鐘周期。通道極性存放器〔FTMx_POL〕當各通道的出于非活動狀態(tài),給存放器設置各通道非活動狀態(tài)下的值。各位都寫保護,只有當MODE[WPDIS]=1時可寫入。輸入捕捉濾波控制存放器〔FTMx_FILTER〕該存放器設置輸入通道的濾波值,通道4、5、6、7無輸入濾波器。注意,寫入該存放器的值將立刻起作用,而且通道0、1、2、3必須在輸入模式下,如設置不當可能造成錯過正確的信號。濾波模式一般只在輸入捕捉時使用,當啟用濾波功能時,如果輸入端發(fā)生變化,則濾波器內(nèi)部的5bit計數(shù)器開場累加計數(shù),一旦溢出〔溢出值由CHnFVAL[3:0]設定〕,輸入端變化才提交給邊沿檢測器。如果計數(shù)過程中,輸入端再次發(fā)生相反變化,則計數(shù)器會被復位并重新開場計數(shù),這樣一些比過濾時間短的脈沖則會被視為干擾且不會提交給邊沿計數(shù)器,只有在濾波模塊計數(shù)期間保持穩(wěn)定的信號才會提交給邊沿計數(shù)器。正交解碼控制和狀態(tài)存放器〔FTMx_QDCTRL〕正交解碼一般用于正反向脈沖計數(shù),由旋轉(zhuǎn)編碼器輸入A相和B相脈沖,由FTM模塊根據(jù)相位自動增加或減少。在電機正反轉(zhuǎn)測速時非常有用。PHAFLTREN:A相輸入濾波使能設置。濾波值由濾波存放器中的CH0FVAL定義,如果CH0FVAL=0,濾波也無效。PHAFLTREN=0:A相輸入濾波制止;PHAFLTREN=0:A相輸入濾波使能。PHBFLTREN:B相輸入濾波使能設置。濾波值由濾波存放器中的CH1FVAL定義,如果CH1FVAL=0,濾波也無效。PHBFLTREN=0:B相輸入濾波制止;PHBFLTREN=0:B相輸入濾波使能。PHAPOL:A相輸入極性選擇。PHAPOL=0:普通極性;PHAPOL=1:反向極性。PHBPOL:B相輸入極性選擇。PHBPOL=0:普通極性;PHBPOL=1:反向極性。QUADMODE:正交解碼模式。QUADMODE=0:A相和B相編碼模式。計數(shù)方向由AB相之間的關系決定,計數(shù)頻率由A相B相輸入信號決定。當A相或B相的信號出現(xiàn)跳變,即可觸發(fā)FTM計數(shù)器改變。在這種模式下,只需要把旋轉(zhuǎn)編碼器的AB相輸出直接接到FTM的AB相輸入即可。;QUADMODE=1:計數(shù)和方向編碼模式。B相輸入值用于指示計數(shù)方向,A相輸入用于計數(shù),F(xiàn)TM計數(shù)器在A相輸入的每個上升沿進展計數(shù),累加或遞減由B相電平?jīng)Q定。QUADIR:正交解碼模式下的FTM計數(shù)方向狀態(tài)位,查詢該位可獲知當前計數(shù)方向。QUADIR=0:遞減計數(shù);QUADIR=1:遞增計數(shù)。TOFDIR:正交解碼模式下FTM計數(shù)器溢出方向。在溢出時,查詢該位可獲知溢出方向。TOFDIR=0:底部溢出時置1;TOFDIR=1:頂部溢出時置1。QUADEN:正交解碼模式使能位。QUADEN=0:正交解碼模式制止;QUADEN=1:正交解碼模式使能。設置存放器〔FTMx_CONF〕GTBEOUT:全局時間基準輸出,使能全局時間基準信號給其它FTMGTBEEN:全局時間基準使能,設置FTM使用一個其它FTM模塊產(chǎn)生的外部的全局時間基準。BDMMODE:選擇FTM在BDM模式下的行為。NUMTOF:設置計數(shù)器溢出次數(shù)和TOF標志置位次數(shù)的比值,NUMTOF=n,n〔0~31〕每溢出n+1次,TOF置位一次。同步設置存放器〔FTMx_SYNCONF〕該存放器主要設置軟件觸發(fā)和硬件觸發(fā)對于某些存放器的影響。HWSOC:SWOCTRL存放器的同步是否由硬件觸發(fā)。HWSOC=0:SWOCTRL存放器的同步不由硬件觸發(fā);HWSOC=1:SWOCTRL存放器的同步由硬件觸發(fā)。HWINVC:INVCTRL存放器的同步是否由硬件觸發(fā)。HWINVC=0:INVCTRL存放器的同步不由硬件觸發(fā);HWINVC=1:INVCTRL存放器的同步由硬件觸發(fā)。HWOM:OUTMASK存放器的同步是否由硬件觸發(fā)。HWOM=0:OUTMASK存放器的同步不由硬件觸發(fā);HWOM=1:OUTMASK存放器的同步由硬件觸發(fā)。HWWRBUF:MOD,CNTIN,CnV存放器的同步是否由硬件觸發(fā)。HWWRBUF=0:MOD,CNTIN,CnV存放器的同步不由硬件觸發(fā);HWWRBUF=1:MOD,CNTIN,CnV存放器的同步由硬件觸發(fā)。HWRETCNT:FTM計數(shù)器同步是否由硬件觸發(fā)。HWRETCNT=0:FTM計數(shù)器同步不由硬件觸發(fā);HWRETCN=1T:FTM計數(shù)器同步由硬件觸發(fā)。SWSOC:SWOCTRL存放器的同步是否由軟件觸發(fā)。SWSOC=0:SWOCTRL存放器的同步不由軟件觸發(fā);SWSOC=1:SWOCTRL存放器的同步由軟件觸發(fā)。SWINVC:INVCTRL存放器的同步是否由軟件觸發(fā)。SWINVC=0:INVCTRL存放器的同步不由軟件觸發(fā);SWINVC=1:INVCTRL存放器的同步由軟件觸發(fā)。SWOM:OUTMASK存放器的同步是否由軟件觸發(fā)。SWOM=0:OUTMASK存放器的同步不由軟件觸發(fā);SWOM=1:OUTMASK存放器的同步由軟件觸發(fā)。SWWRBUF:MOD,CNTIN,CnV存放器的同步是否由軟件觸發(fā)。SWWRBUF=0:MOD,CNTIN,CnV存放器的同步不由軟件觸發(fā);SWWRBUF=1:MOD,CNTIN,CnV存放器的同步由軟件觸發(fā)。SWRETCNT:FTM計數(shù)器同步是否由軟件觸發(fā)。SWRETCNT=0:FTM計數(shù)器同步不由軟件觸發(fā);SWRETCN=1T:FTM計數(shù)器同步由軟件觸發(fā)。SYNCMODE:同步模式SYNCMODE=0:傳統(tǒng)PWM同步方式;SYNCMODE=1:增強型的PWM同步方式。SWOC:SWOCTRL存放器同步設置。SWOC=0:SWOCTRL存放器在系統(tǒng)時鐘上升沿更新;SWOC=1:SWOCTRL存放器更新由PWM同步完成。INVC:INVCTRL存放器同步設置。INVC=0:INVCTRL存放器在系統(tǒng)時鐘上升沿更新;INVC=1:INVCTRL存放器更新由PWM同步完成。CNTINC:CNTIN存放器同步設置。CNTINC=0:CNTIN存放器在系統(tǒng)時鐘上升沿更新;CNTINC=1:CNTIN存放器更新由PWM同步完成。HWTRIGMODE:硬件觸發(fā)模式。HWTRIGMODE=0:檢測到硬件觸發(fā)事件時去除TRIGj位;HWTRIGMODE=1:檢測到硬件觸發(fā)事件時不去除TRIGj位。FTM反相設置存放器〔FTMx_INVCTRL〕該存放器中的各位設置通道2n和通道2n+1顛倒使用,即n通道成為n+1通道的輸出,n+1通道輸出n通道的輸出??捎糜诳刂齐姍C正反轉(zhuǎn)切換。該功能在雙通道聯(lián)合互補輸出時可用。INVnEN:通道2n和通道2n+1切換輸出使能。INVnEN=0:通道2n和通道2n+1各自輸出;INVnEN=1:通道2n和通道2n+1交換輸出。FTM軟件輸出控制存放器〔FTMx_SWOCTRL〕該存放器設置各通道強制輸出高電平或低電平。CHnOC=1時對應通道n強制輸出;CHnOCV=0:當強制輸出時,輸出低電平;CHnOCV=1:當強制輸出時,輸出高電平。FTMPWM裝載存放器〔FTMx_PWMLOAD〕使能PWM的自動載入功能,當FTM計數(shù)計數(shù)到MOD設定值并變化到下一個值或該通道設置為輸出比擬且比擬成功時,MOD、CNTIN、C(n)V、C(n+1)V載入緩沖器中的值。LDOK:載入使能。CHnSEL:載入時是否包括通道nCHnSEL=0:不包括;CHnSEL=1:包括。1.5.3FTM功能詳解FTM模塊的時鐘FTM模塊的核心是一個16位計數(shù)器,該計數(shù)器的時鐘來源可設置〔由FTMx_SC存放器中的CLKS設置〕,可來自總線時鐘〔CLKS=01〕,也可來自MCG模塊的MCGFFCLK,對時鐘源可進展分頻〔由FTMx_SC存放器中的PS設置〕。如果使用固定頻率時鐘,即fixedfrenquencyclock,也就是MCGFFCLK,則需要在MCG模塊中設置。MCG模塊提供的MCGFFCLK,可以為其它片上周邊設備提供時鐘,該時鐘可由內(nèi)部慢速參考時鐘提供或外部晶振,且由FLL分頻后提供。MCGFFCLK由C1_IREFS位設置來自內(nèi)部32K還是來自外部經(jīng)過FDIV分頻后的時鐘,輸出到MCGFFCLK還要2分頻一次。MCGFFCLK用于局部總線時鐘同步,而且不得大于MCGOUTCLK的1/8。且該時鐘在MCG處于BLPI模式和STOP模式下無效。。一般情況下,只要不是對外部計數(shù)功能,我們都會采用BusClock為FTM提供時鐘。FTM模塊的計數(shù)模式FTM模塊在時鐘確定后,計數(shù)器計數(shù),默認情況下,對分頻后輸入時鐘進展遞增無符號計數(shù)。計數(shù)器初始值由FTMx_CNTIN指定。當一直計數(shù)到達FTMx_MOD存放器的設定值時,TOF置位。計數(shù)器回到初始值,循環(huán)往復。如以下列圖所示,計數(shù)器從0計數(shù)到3,循環(huán)計數(shù)。計數(shù)周期=(MOD-CNTIN+1)*時鐘周期。初始值也可是負數(shù),例如CNTIN=0xFFFC〔補碼-4〕,MOD=4,則計數(shù)器從-4計數(shù)到4,循環(huán)計數(shù)。當CNTIN的最高位,即CNTIN[15]=1時,初始值作為負數(shù)對待,否則視為正數(shù)。FTM計數(shù)時,建議MOD值必須大于CNTIN值,編程時需注意。如果MOD==CNTIN,則計數(shù)值一直保持MOD值,且TOF位一直置1。當QUADEN=0〔非正交解碼模式〕且CPWMS=0〔加法計數(shù)〕時,計數(shù)器為加法計數(shù),如果設置CPWMS=1,則進入先加后減計數(shù)模式?!仓行膶RPWM必須將該位置1〕。在先加后減計數(shù)模式下,假設CNTIN=0,MOD=4,則計數(shù)過程如下在該模式下,計數(shù)周期=2*〔MOD-CNTIN〕,當計數(shù)值從MOD變?yōu)镸OD-1時,TOF置位。如FTMEN=0,此時FTM模塊功能等同于S08的TPM模塊,此時無論MOD=0或者MOD=0XFFFF,此時計數(shù)器為一個自由運行的16位計數(shù)器。如FTMEN=1,且QUADEN=0、CPWMS=0時,此時只有MOD=0xFFFF時,才可作為一個自由運行的計數(shù)器。任何對FTM計數(shù)器的寫入操作,都會復位計數(shù)器,計數(shù)器的值重新回到CNTIN指定值。也可以使用FTM的同步功能,讓計數(shù)器重新回到初值,各通道輸出也回到初始值。FTMx_CONF存放器中的NUMOF[4:0]可設置TOF置位的頻率。默認情況下,即NUMOF[4:0]=0,每個計數(shù)周期,TOF置位一次,如果NUMOF=n,〔n<32〕,則每n+1個周期,TOF置位一次。邊沿對齊PWM模式PWM輸出實際上利用的就是FTM的輸出比擬的功能。當QUADEN=0,DECAPEN=0,COMBINE=0,CPWMS=0,MSnB=1時,F(xiàn)TM工作在EPWM模式下,即邊沿對齊模式。可用于產(chǎn)生舵機和電機的PWM控制信號。在這個模式下,F(xiàn)TM計數(shù)器工作方式和計數(shù)模式一樣,默認為加法計數(shù),計數(shù)到MOD值后自動返回CNTIN值。PWM信號的周期和計數(shù)器計數(shù)周期有關,PWM周期=〔MOD-CNTIN+1〕*時鐘周期。PWM信號上下電平切換的時刻,則由CnV值決定,當計數(shù)器累加計數(shù)到CnV值相等時,PWM信號則翻轉(zhuǎn)。直到計數(shù)到MOD值,一個周期完畢,信號回到初始值。這種模式的原理和輸出比擬模式是一樣的,當比擬成功時,也就是FTM計數(shù)值=CnV時,CHnF標志也會置1。PWM信號的輸出可以時左對齊〔信號先高后低〕也可以是右對齊〔信號先低后高〕。左右對齊由ELSnB:ELSnA決定,假設ELSnB:ELSnA=10則是左對齊模式,假設ELSnB:ELSnA=X1則是右對齊模式。以左對齊為例,高電平持續(xù)時間=(CnV-CNTIN)*時鐘周期。在邊沿對齊PWM模式中,一般PWM周期不變,通過改變CnV的值以改變占空比,如改變CnV的值,則新的值并不會立刻生效,而是到一個周期完畢,F(xiàn)TM計數(shù)器從MOD變?yōu)镃NTIN時,CnV值才生效。EPWM例程如下,在該例程中,總線時鐘為60MHz,經(jīng)過FTM分頻到3.75MHz,F(xiàn)TM遞增計數(shù),周期10ms,高電平事件1.5ms。使用FTM0_CH3通道,由PTA6引腳輸出。voidFTM_Init(void){ PORTA_PCR6=PORT_PCR_MUX(3);//設置引腳A6引腳為FTM0_CH3功能 SIM_SCGC6|=SIM_SCGC6_FTM0_MASK;//使能FTM0時鐘FTM0_MODE|=FTM_MODE_WPDIS_MASK;//寫保護制止 //設置通道0,工作在左邊沿對其PWM模式//MSB=1,ELSB:ELSA=10 FTM0_C3SC|=FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左對齊,先高后低 FTM0_C3SC&=~FTM_CnSC_ELSA_MASK; FTM0_C3SC|=FTM_CnSC_MSB_MASK;//MSB=1,模式選擇邊沿對齊 FTM0_SC=0x0c;//中斷制止,時鐘源來自總線時鐘60MHz,16分頻后得到3.75MHz,CLKS=01,PS=100,CPWMS=0,遞增計數(shù) FTM0_MODE&=~1;//FTM0使能 FTM0_OUTMASK=0XF7;//通道3輸出,屏蔽其它通道 FTM0_QDCTRL&=~FTM_QDCTRL_QUADEN_MASK;//制止正交解碼模式 FTM0_COMBINE=0;//DECAPEN=0,雙邊沿捕捉制止,COMBINE=0,不級聯(lián) FTM0_CNTIN=0;//FTM0計數(shù)器初始值為0 FTM0_MOD=37499;//完畢值,周期為〔MOD-CNTIN+1〕*時鐘周期=10ms FTM0_C3V=5625;//高電平1.5ms FTM0_CNT=0;}中心對齊PWM模式中心對齊PWM模式和邊沿對齊PWM模式唯一不同之處在于CPWMS=1,即此時計數(shù)器工作模式為先加后減模式,計數(shù)器累加到CnV時,信號翻轉(zhuǎn),直到計數(shù)到MOD值后開場遞減計數(shù),再次到達CnV時,信號再次翻轉(zhuǎn),然后遞減到CNTIN值,一個周期完畢。同樣的MOD、CNTIN、CnV,值,CPWM的周期是EPWM的兩倍,但占空比不變。在中心對齊PWM模式下,ELSnB:ELSnA的作用和EPWM一樣,即ELSnB:ELSnA=10信號輸出先高后低,假設ELSnB:ELSnA=X1信號輸出先低后高。輸入捕捉模式FTM的輸入捕捉模式可捕捉外部信號的正跳變或負跳變,可替代外部中斷使用。和一般外部中斷不同的是,輸入捕捉功能不但可以在捕捉到特定的跳變時產(chǎn)生中斷,而且輸入引腳可以啟用濾波功能,關鍵是,輸入捕捉功能在捕捉到信號時,還可以記錄捕捉的時刻,即捕捉發(fā)生時,F(xiàn)TM計數(shù)器的值會記錄在CnV存放器中。輸入捕捉模式下,DECAPEN=0〔不啟用雙邊呀捕捉〕,COMBINE=0〔各通道獨立〕,CPWMS=0〔計數(shù)器累加計數(shù)〕,MSnB:MSnA=0:0〔輸入捕捉模式〕。此時,捕捉什么樣的信號則由ELSnB:ELSnA決定。ELSnB:ELSnA=01:捕捉上升沿;ELSnB:ELSnA=10:捕捉下降升沿;ELSnB:ELSnA=11:捕捉上升沿或下降沿。當對應的通道捕捉到設定的邊沿時,CHnF置位,如果對應的CHnIE=1,即中斷翻開時,即可產(chǎn)生中斷。在輸入捕捉模式下,當捕捉到設定的邊沿時,此時的FTM計數(shù)器的值將自動保存到CnV存放器中,也就是在輸入捕捉模式下,CnV存放器在程序中只可做讀出之用,寫入操作會被忽略。每個FTM模塊的0~3通道可以啟用濾波功能,濾波原理是捕捉到邊沿時,延時假設干個時鐘周期再置位CHnF。默認情況下,如不啟用濾波功能,則延時3個系統(tǒng)時鐘的上升沿。假設啟用濾波功能,則延時可設置,但只有0~3通道可以設置。注意,捕捉模式下,CNTIN應為0。當啟用濾波功能時,如果輸入端發(fā)生變化,則濾波器內(nèi)部的5bit計數(shù)器開場累加計數(shù),一旦溢出〔溢出值由CHnFVAL[3:0]設定〕,輸入端變化才提交給邊沿檢測器。如果計數(shù)過程中,輸入端再次發(fā)生相反變化,則計數(shù)器會被復位并重新開場計數(shù),這樣一些比過濾時間短的脈沖則會被視為干擾且不會提交給邊沿計數(shù)器。輸出比擬模式當DECAPEN=0〔制止雙邊沿檢測〕,COMBINE=0〔各通道獨立〕,CPWMS=0〔計數(shù)器累加〕,MSnB:MSnA=0:1時,F(xiàn)TM工作在輸出比擬模式下。在輸出比擬模式下,計數(shù)器工作在累加模式下,當FTM計數(shù)器值=CnV值,時,比擬成功,對應通道的引腳輸出高電平、低電平或翻轉(zhuǎn)信號。通道輸出由ELSnB:ELSnA決定,ELSnB:ELSnA=01:輸出翻轉(zhuǎn),ELSnB:ELSnA=10:輸出低電平,ELSnB:ELSn=11:輸出高電平。同時,當比擬成功時,對應CHnF置位,如CHnIE=1,則比擬成功即引發(fā)中斷。比擬成功翻轉(zhuǎn)電平輸出,可用于輸出方波。實際上PWM波形的產(chǎn)生也是利用了輸出比擬的功能實現(xiàn)的,輸出比擬功能中如使用中斷且不輸出波形,也可實現(xiàn)定時中斷的功能。組合模式以上幾種模式下,F(xiàn)TMEN=0即可,假設要使用增強FTM的功能,即不同于PTM模塊功能,則必須FTMEN=1。組合模式就是其中一種,主要用于輸出非對稱PWM信號。當FTMEN=1〔啟用增強功能〕,QUADEN=0〔不啟用正交解碼〕,DECAPEN=0〔不啟用雙邊沿捕捉〕,COMBINE=1〔相鄰通道組合使用〕CPWMS=0〔計數(shù)器累加模式〕時,F(xiàn)TM工作在組合模式下。組合工作模式下,主要指的是偶數(shù)通道2n和相鄰的2n+1通道共同控制輸出PWM波形。PWM信號的周期和EPWM一樣,但是上下電平的切換的時機則由C2nV和C2n+1V確定。電平第一次翻轉(zhuǎn)發(fā)生在通道2n比擬成功,電平第二次翻轉(zhuǎn)發(fā)生在通道2n+1比擬成功。在一個周期開場時,初始電平由ELSnB:ELSnA決定,這點和EPWM和CPWM一樣。在組合模式下,PWM信號的第一個邊沿只由C2nV決定,而第二個邊沿只由C2n+1V決定。兩個通道可獨立設置對應邊沿出現(xiàn)的位置,這就是非對稱的PWM輸出。互補模式一般組合模式下,通道2n和通道2n+1輸出波形一樣,如果啟用互補模式,則兩個通道輸出互為反向,在互補模式下,還可以啟用死區(qū)插入功能,這在某些兩路電機驅(qū)動的應用中是非常有用的。當FTMEN=1〔啟用增強功能〕,QUADEN=0〔不啟用正交解碼〕,DECAPEN=0〔不啟用雙邊沿捕捉〕,COMBINE=1〔相鄰通道組合使用〕CPWMS=0〔計數(shù)器累加模式〕COMP=1〔啟用補償模式〕時,F(xiàn)TM工作在補償模式下。在補償模式下,仍然是2n通道和2n+1通道組合使用,輸出PWM信號。和組合模式下不同的是,COMP=0時,2n通道和2n+1通道輸出信號一樣,而補償模式下,2n+1通道輸出的信號和2n通道是相反的。例程如下,該例程使用60MHz總線時鐘,分頻后3.75MHz,輸出引腳為C3和C4,分別對應FTM0_CH2和FTM0_CH3,注意由于FTMEN=1,相關存放器更新采用軟件觸發(fā)的方式。在這個例子中,我們采用了死區(qū)插入,死區(qū)時間16*63個總線周期,時間大約16.8us。voidFTM0_Init(void){ PORTC_PCR3=PORT_PCR_MUX(4);//設置引腳C3引腳為FTM0_CH2功能 PORTC_PCR4=PORT_PCR_MUX(4);//設置引腳C4引腳為FTM0_CH3功能 SIM_SCGC6|=SIM_SCGC6_FTM0_MASK;//使能FTM0時鐘FTM0_SC=FTM_SC_CLKS(1)|FTM_SC_PS(4);//中斷制止,時鐘源來自總線時鐘60MHz,16分頻后得到3.75MHz,CLKS=01,PS=100,CPWMS=0,遞增計數(shù) FTM0_MODE|=FTM_MODE_WPDIS_MASK;//寫保護制止 FTM0_MODE|=FTM_MODE_FTMEN_MASK;//FTMEN=1 FTM0_QDCTRL&=~FTM_QDCTRL_QUADEN_MASK;//制止正交解碼模式 FTM0_COMBINE|=FTM_COMBINE_COMBINE1_MASK;//FTM0通道2,3聯(lián)合使用 FTM0_COMBINE|=FTM_COMBINE_COMP1_MASK;//FTM0通道2,3互補輸出 FTM0_COMBINE|=FTM_COMBINE_SYNCEN1_MASK;//使能FTM0通道2,3PWM同步 FTM0_COMBINE|=FTM_COMBINE_DTEN1_MASK;//死區(qū)插入 FTM0_DEADTIME=FTM_DEADTIME_DTPS(3)|FTM_DEADTIME_DTVAL(63);FTM0_SYNCONF|=FTM_SYNCONF_SWWRBUF_MASK;//使能MOD,CNTIN,CV存放器的軟件觸發(fā)同步 FTM0_SYNC=FTM_SYNC_CNTMIN_MASK|FTM_SYNC_CNTMAX_MASK;//設置loadpoint FTM0_C2SC|=FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左對齊,先高后低 FTM0_C2SC&=~FTM_CnSC_ELSA_MASK; FTM0_C3SC|=FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左對齊,先高后低 FTM0_C3SC&=~FTM_CnSC_ELSA_MASK; FTM0_OUTMASK=0XF3;//通道2,3輸出,屏蔽其它通道 FTM0_CNTIN=0;//FTM0計數(shù)器初始值為0 FTM0_MOD=37499;//完畢值,周期為〔MOD-CNTIN+1〕*時鐘周期=10ms FTM0_C2V=5625;//高電平1.5ms FTM0_C3V=20000; FTM0_CNT=0; FTM0_SYNC|=FTM_SYNC_SWSYNC_MASK;//使能軟件觸發(fā) }在main函數(shù)的主循環(huán)中,我們可使用串口通信改變波形,通過示波器觀看,例程如下:for(;;){ tom=uart_getchar(); switch(tom) { case'a':FTM0_C3V+=50; FTM0_SYNC|=FTM_SYNC_SWSYNC_MASK;//使能軟件觸發(fā)break; case'd': FTM0_C3V-=50; FTM0_SYNC|=FTM_SYNC_SWSYNC_MASK;//使能軟件觸發(fā) break; case'w': FTM0_INVCTRL^=FTM_INVCTRL_INV1EN_MASK;//反轉(zhuǎn)break; default

溫馨提示

  • 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

提交評論