版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第六章 定時(shí)器計(jì)數(shù)器及其應(yīng)用 第1節(jié)、定時(shí)器/計(jì)數(shù)器原理、結(jié)構(gòu)及其管腳 第2節(jié)、8位定時(shí)器模塊MTIM結(jié)構(gòu)及應(yīng)用 第3節(jié)、16位定時(shí)器TPM結(jié)構(gòu)及應(yīng)用 第4節(jié)、TPM應(yīng)用于PWM原理及實(shí)踐第1節(jié)、定時(shí)器/計(jì)數(shù)器原理 、結(jié)構(gòu)及其管腳1、基礎(chǔ)知識(shí) 定時(shí)器中的核心部分計(jì)數(shù)器不能預(yù)置某個(gè)數(shù)值,而且是只讀的計(jì)數(shù)器不能預(yù)置某個(gè)數(shù)值,而且是只讀的,寫(xiě)入任何數(shù)值沒(méi)有影響(8位MTIM)或會(huì)導(dǎo)致計(jì)數(shù)器清零(16位的TPM)。采用可讀可寫(xiě)的輔助寄可讀可寫(xiě)的輔助寄存器存器,與主計(jì)數(shù)器數(shù)值相等時(shí)產(chǎn)生匹配事件??梢酝瓿啥〞r(shí)、輸入捕捉、輸出比較、PWM等功能。對(duì)于PWM,匹配事件發(fā)生時(shí)對(duì)應(yīng)一種狀態(tài)(決定脈寬),而計(jì)數(shù)器溢
2、出對(duì)應(yīng)另一種狀態(tài)(決定周期)。 MC9S08QG8系列單片機(jī)的定時(shí)器分成兩大模塊兩大模塊,一個(gè)模塊完全由8位的計(jì)數(shù)器、輔助寄存器、狀態(tài)與控制寄存器、配置寄存器組成,被稱(chēng)為8-BIT MAIN TIMER (MTIM)。該模塊的狀態(tài)與控制寄存器中包含了溢出標(biāo)志、中斷控制和起、??刂莆?,使用起來(lái)比較簡(jiǎn)單。由于該模塊除了輸入計(jì)數(shù)脈沖可以來(lái)自外部管腳之外,沒(méi)有其它管腳與之關(guān)聯(lián),因此沒(méi)有輸入捕捉、輸出比較與PWM功能,只有軟件定時(shí)能力。 另一個(gè)模塊就是具有全功能的16BIT的定時(shí)器/脈寬調(diào)制器模塊TPM(Timer/Pulse-Width Modulator),該定時(shí)器主計(jì)數(shù)器與輔助寄存器都是16位的,
3、對(duì)于8位的單片機(jī)來(lái)說(shuō),16位寄存器一般會(huì)分成兩個(gè)8位,而且讀、寫(xiě)16位的寄存器也會(huì)引入鎖定與緩沖等策略,以保證每次讀寫(xiě)16位寄存器中的某個(gè)8位寄存器時(shí),不會(huì)發(fā)生數(shù)值更新。對(duì)于全功能的TPM來(lái)說(shuō),只有一套主計(jì)數(shù)器的前提下,可以有多套輸入捕捉、輸出比較或PWM通道(比如MC9S08QG8系列單片機(jī)就有2個(gè)通道),這些通道共同擁有主計(jì)數(shù)器,而且這些通道的工作模式可以不一樣,每個(gè)通道擁有自己的16BIT輔助寄存器、中斷允許與標(biāo)志、輸入捕捉與輸出比較工作模式設(shè)置寄存器。有的單片機(jī)稱(chēng)這種一個(gè)主計(jì)數(shù)器配合多個(gè)不同工作模式的定時(shí)器通道的結(jié)構(gòu),為可編程計(jì)數(shù)器陣列(PCA)。第1節(jié)、定時(shí)器/計(jì)數(shù)器原理 、結(jié)構(gòu)及其
4、管腳1、基礎(chǔ)知識(shí) PTA0/KBIP0/TPMCH0/ADP0/ACMP+8-BIT MODULO TIMER MODULE(MTIM)16-BIT TIMER/PWM MODULE(TPM)PTAPTBPTA5/IRQ/TCLK/RESETPTB5/TPMCH1/SSTPMCH1TPMCH0TCLK定時(shí)器與外部管腳的關(guān)系= Fbus/48位定時(shí)器-MTIM 八位定時(shí)器模塊的結(jié)構(gòu)MTIM結(jié)構(gòu) 時(shí)鐘源選擇 預(yù)分頻器 8位計(jì)數(shù)器MTIMCNT 8位比較器 8位模寄存器MTIMMOD MTIM狀態(tài)與控制寄存器(MTIMSC)MTIM時(shí)鐘配置寄存器(MTIMCLK)總線時(shí)鐘系統(tǒng)固定時(shí)鐘PTA5上升與下
5、降沿第2節(jié)、8位定時(shí)器模塊MTIM結(jié)構(gòu)及應(yīng)用MTIM 寄存器MTIMSC7-TOF定時(shí)器溢出標(biāo)志定時(shí)器溢出標(biāo)志當(dāng)計(jì)數(shù)器計(jì)數(shù)到與輔助寄存器MTIMMOD數(shù)值相等,并翻轉(zhuǎn)到0時(shí),該只讀溢出標(biāo)志TOF會(huì)被置“1”。該溢出標(biāo)志的清除方法有三種:當(dāng)TOF為“1”時(shí),讀MTIMSC,并給TOF重新寫(xiě)入“0”; 寫(xiě)“1” 給TRST; 1.給輔助寄存器MTIMMOD寫(xiě)入任何數(shù)值。6-TOIE溢出中斷允許溢出中斷允許 如果該位設(shè)置為“1”,則當(dāng)TOF置位時(shí)會(huì)產(chǎn)生中斷。當(dāng)TOF為“1”時(shí)不要設(shè)置該允許位,一般的做法是先清除TOF,然后再設(shè)置TOIE。即使該位沒(méi)有設(shè)置,還是可以通過(guò)軟件查詢(xún)TOF的方法使用定時(shí)器的
6、。5-TRST定時(shí)器復(fù)位設(shè)置定時(shí)器復(fù)位設(shè)置該位只能寫(xiě)入,讀出總為0,而且寫(xiě)0沒(méi)有影響,寫(xiě)1時(shí)導(dǎo)致計(jì)數(shù)器為0 x00,同時(shí)TOF也清零。4-TSTP定時(shí)器停止設(shè)置定時(shí)器停止設(shè)置當(dāng)該位置“1”,會(huì)使計(jì)數(shù)器停止計(jì)數(shù),計(jì)數(shù)數(shù)值保持不變,當(dāng)清除該位時(shí),計(jì)數(shù)器從當(dāng)前數(shù)值繼續(xù)計(jì)數(shù)。3:0未使用,讀出總為0MTIM 寄存器MTIMCLK7:6未使用,讀出總為05:4CLKS計(jì)數(shù)器時(shí)鐘源選擇計(jì)數(shù)器時(shí)鐘源選擇 通過(guò)該兩位設(shè)置,在四種時(shí)鐘源中選擇其一,改變時(shí)鐘源時(shí)不會(huì)影響計(jì)數(shù)器計(jì)數(shù),時(shí)鐘源切換后,計(jì)數(shù)器會(huì)在新的時(shí)鐘下繼續(xù)計(jì)數(shù)。00選擇總線時(shí)鐘選擇總線時(shí)鐘(BUSCLK);01固定頻率時(shí)鐘(XCLK);10外部時(shí)鐘T
7、CLK的下降沿;11外部時(shí)鐘TCLK的上升沿。3:0PS時(shí)鐘預(yù)分頻器時(shí)鐘預(yù)分頻器 該4位設(shè)置計(jì)數(shù)器輸入時(shí)鐘的預(yù)分頻數(shù),改變分頻數(shù)不影響計(jì)數(shù)器計(jì)數(shù),分頻數(shù)切換后,計(jì)數(shù)器會(huì)在新的分頻數(shù)下計(jì)數(shù)。0000 分頻數(shù)為1; 0001 分頻數(shù)為2; 0010 分頻數(shù)為4;0011 分頻數(shù)為8; 0100 分頻數(shù)為16; 0101 分頻數(shù)為32;0110 分頻數(shù)為64; 0111 分頻數(shù)為128; 大于等于1000 分頻數(shù)為256。MTIM 寄存器MTIM計(jì)數(shù)器(MTIMCNT)該計(jì)數(shù)器為只讀,寫(xiě)入任何數(shù)值對(duì)其沒(méi)有影響寫(xiě)入任何數(shù)值對(duì)其沒(méi)有影響,復(fù)位時(shí)為0 x00。MTIM模寄存器(MTIMMOD) 該8位可讀
8、寫(xiě)的寄存器保存的數(shù)值是計(jì)數(shù)器計(jì)數(shù)的最大值,當(dāng)計(jì)數(shù)器計(jì)數(shù)到該最大值時(shí)會(huì)翻轉(zhuǎn)到0 x00,同時(shí)設(shè)置TOF標(biāo)志。如果給該寄存器寫(xiě)入數(shù)值0 x00,會(huì)導(dǎo)致計(jì)數(shù)器成為一個(gè)沒(méi)有約束的自由運(yùn)行的計(jì)數(shù)器,給MTIMMOD寫(xiě)入數(shù)值會(huì)導(dǎo)致計(jì)數(shù)器回0 x00,而且溢出標(biāo)志TOF也會(huì)清零。MTIMMOD復(fù)位時(shí)為0 x00。MTIM MTIM使用總結(jié) 8位定時(shí)器的核心計(jì)數(shù)器MTIMCNT有三種工作模式:停止、自由運(yùn)行、根據(jù)模數(shù)值運(yùn)行。剛復(fù)位后計(jì)數(shù)器是停止的,數(shù)值跟模寄存器MTIMMOD一樣,都為0 x00,如果此時(shí)啟動(dòng)定時(shí)器,計(jì)數(shù)器會(huì)進(jìn)入自由運(yùn)行模式,如果給MTIMMOD寄存器寫(xiě)入非0數(shù)值,則計(jì)數(shù)器會(huì)根據(jù)模數(shù)值運(yùn)行。復(fù)
9、位后,總線時(shí)鐘會(huì)作為定時(shí)器的缺省時(shí)鐘源,而且分頻數(shù)也為1,此時(shí)只要清除狀態(tài)與控制寄存器MTIMSC中的停止位( TSTP ),就會(huì)使計(jì)數(shù)器進(jìn)入自由運(yùn)行模式。 定時(shí)器模寄存器MTIMMOD的存在,使得定時(shí)器可以將0 x01到0 xFF中的任何數(shù)值作為定時(shí)器溢出最大計(jì)數(shù)數(shù)值。 當(dāng)溢出標(biāo)志TOF置位時(shí),清除該標(biāo)志分兩步,第一步第一步讀取狀態(tài)與控制寄存器MTIMSC,第二步第二步給TOF寫(xiě)0。如果在這兩步之間有溢出事件發(fā)生,清除動(dòng)作取消,溢出標(biāo)志TOF保持置位狀態(tài)。對(duì)TOF的清除也可以通過(guò)對(duì)TRST寫(xiě)“1”或者對(duì)MTIMMOD寫(xiě)入任何數(shù)值。 可以設(shè)置MTIMSC寄存器中的TOIE位,以允許TOF中斷。
10、當(dāng)TOF為“1”時(shí),不要設(shè)置TOIE,一定要先清除TOF,后設(shè)置中斷允許。MTIM MTIM使用范例1在中斷允許之前添加初始化PTBDD = 0 xFF;PTBD = 0 xFF;SOPT1 =0 x03;MTIMSC = 0 x70; /IE,RST,STOPMTIMCLK = 0 x08; /Fbus/256MTIMMOD = 125; /400000 = 256*125*125MTIM_CNT = 125;/定義一個(gè)全局變量,軟分頻MTIMSC = 0 x40; /START2添加中斷服務(wù)子程序interrupt 12 void MTIM_ISR() if(-MTIM_CNT=0) MT
11、IM_CNT = 125; /自己的操作; MTIMMOD = 125; /清除標(biāo)志 3添加全局變量byte MTIM_CNT;0 x003C-3C-MTIMSC0 x003D-MTIMCLK0 x003E-MTIMCNT0 x003F-MTIMMOD定時(shí)器/計(jì)數(shù)器到底有什么用?只用于產(chǎn)生固定時(shí)間間隔嗎?一定要使用定時(shí)器中斷嗎?電機(jī)測(cè)速高速時(shí):低速時(shí):高速時(shí)測(cè)速有沒(méi)有誤差,誤差從哪兒來(lái)?怎么解決波形輸出時(shí)有沒(méi)有誤差,誤差從哪兒來(lái)?怎么解決TPM 1、結(jié)構(gòu)16bit第3節(jié)、16位定時(shí)器TPM結(jié)構(gòu)及應(yīng)用2、TPM 特點(diǎn) 與MTIM類(lèi)似,有時(shí)鐘源選擇、預(yù)分頻器設(shè)置、主計(jì)數(shù)器、比較器、輔助(模)寄存器
12、、狀態(tài)與控制寄存器等。與8位定時(shí)器不同的地方主要有:1沒(méi)有啟??刂莆?,但時(shí)鐘源選擇上的4種可能性中,只有3種情況對(duì)應(yīng)有脈沖輸入,當(dāng)時(shí)鐘選擇控制位CLKSB:A為00時(shí),沒(méi)有任何時(shí)鐘輸入,定時(shí)器將處于停止?fàn)顟B(tài);2除了有主計(jì)數(shù)器、比較器、模寄存器外,還有兩個(gè)獨(dú)立的定時(shí)器通道,這兩個(gè)通道可以有對(duì)應(yīng)的外部管腳TPMCH0和TPMCH1(不受方向與數(shù)據(jù)寄存器的影響不受方向與數(shù)據(jù)寄存器的影響),每個(gè)通道還包含比較器、模寄存器、輸入捕捉與輸出比較模式設(shè)置寄存器,還有獨(dú)立的中斷允許設(shè)置與中斷標(biāo)志位;3主計(jì)數(shù)器、主比較器以及另外的兩個(gè)通道的比較器、模寄存器都是16位的; 16位TPM的核心部件仍然是一個(gè)16-b
13、it的計(jì)數(shù)器,軟件可以隨時(shí)讀取該計(jì)數(shù)器的數(shù)值,而不影響計(jì)數(shù)器的工作。但對(duì)計(jì)數(shù)器進(jìn)行寫(xiě)入操作時(shí)會(huì)導(dǎo)致計(jì)數(shù)器復(fù)位,該計(jì)數(shù)器的三種工作模式是:自由計(jì)數(shù)器自由計(jì)數(shù)器:此時(shí)模寄存器TPMMODH:TPMMODL為0 x0000或者是0 xFFFF,計(jì)數(shù)器總是進(jìn)行加1動(dòng)作,當(dāng)達(dá)到0 xFFFF時(shí)回0 x0000,產(chǎn)生溢出動(dòng)作,設(shè)置標(biāo)志。加法計(jì)數(shù)器加法計(jì)數(shù)器:如果模寄存器既不是0 x0000,也不是0 xFFFF,則此時(shí)計(jì)數(shù)器加1直到與模寄存器相等時(shí),產(chǎn)生溢出動(dòng)作,設(shè)置標(biāo)志,計(jì)數(shù)器回0 x00000。加法計(jì)數(shù)器可以為2個(gè)獨(dú)立通道處于輸入捕捉、輸出比較以及沿對(duì)齊以及沿對(duì)齊PWM工作模式下,提供時(shí)鐘參考。加減計(jì)
14、數(shù)器加減計(jì)數(shù)器:當(dāng)TPM設(shè)置為中間對(duì)齊的PWM工作模式時(shí),計(jì)數(shù)器會(huì)有加1和減1的動(dòng)作。每當(dāng)計(jì)數(shù)器加1到與模寄存器數(shù)值相等時(shí)就開(kāi)始減1,減到0 x0000時(shí)又繼續(xù)加1,如此循環(huán)。每當(dāng)?shù)竭_(dá)模寄存器數(shù)值并開(kāi)始減1時(shí),產(chǎn)生溢出動(dòng)作,設(shè)置標(biāo)志。3、TPM 寄存器16位定時(shí)器TPM包含的寄存器有: 一個(gè)8位的狀態(tài)與控制寄存器TPMSC; 一個(gè)16位的計(jì)數(shù)器(TPMCNTH:TPMCNTL); 一個(gè)16位的模寄存器(TPMMODH:TPMMODL)。另外,2個(gè)獨(dú)立通道中,每個(gè)通道包含的寄存器有: 一個(gè)8位的狀態(tài)與控制寄存器TPMCnSC,n表示0或1; 一個(gè)16位的通道輔助寄存器(TPMCnVH:TPMCn
15、VL);MTIMSCMTIMCNTMTIMMODTPMSC3、TPM 寄存器7-TOF定時(shí)器溢出標(biāo)志定時(shí)器溢出標(biāo)志 當(dāng)計(jì)數(shù)器計(jì)數(shù)到模寄存器數(shù)值并翻轉(zhuǎn)到0 x0000時(shí),該標(biāo)志置1。當(dāng)定時(shí)器設(shè)置為中間對(duì)齊的PWM(CPWM)工作模式時(shí),計(jì)數(shù)器計(jì)數(shù)到模寄存器數(shù)值并開(kāi)始減1時(shí),該溢出標(biāo)志置1。清除該標(biāo)志分成兩步,先讀TPMSC,然后對(duì)TOF寫(xiě)0,如在這兩步之間有其它定時(shí)器溢出,則清除動(dòng)作取消。復(fù)位時(shí)清除TOF,對(duì)TOF寫(xiě)1沒(méi)有影響。6-TOIE定時(shí)器中斷允許定時(shí)器中斷允許 該讀/寫(xiě)位控制定時(shí)器的溢出中斷。當(dāng)TOIE設(shè)置為1時(shí),如果TOF為1會(huì)產(chǎn)生中斷。TOIE為0時(shí),可以通過(guò)軟件查詢(xún)TOF的方法使用
16、定時(shí)器。5-CPWMS中間對(duì)齊中間對(duì)齊PWM模式選擇位模式選擇位 如果該位為0,定時(shí)器工作在加法計(jì)數(shù)器方式,此時(shí)計(jì)數(shù)器的獨(dú)立通道可以工作在輸入捕捉、輸出比較和沿對(duì)齊PWM模式。該位設(shè)置為1,將使得定時(shí)器工作在加加/減計(jì)數(shù)器方式減計(jì)數(shù)器方式,而且所有(2個(gè))通道都必須工作在中間對(duì)齊的PWM模式下。該位復(fù)位時(shí)為0。4:3CLKSB:A定時(shí)器時(shí)鐘源選擇位定時(shí)器時(shí)鐘源選擇位該2位的設(shè)置可能停止定時(shí)器,也可能選擇3種時(shí)鐘源之一作為定時(shí)器的輸入。00沒(méi)有時(shí)鐘輸入,定時(shí)器停止; 01總線時(shí)鐘BUSCLK;10固定系統(tǒng)時(shí)鐘XCLK,參見(jiàn)內(nèi)部時(shí)鐘源一節(jié); 11外部輸入時(shí)鐘TPMCLK。外部輸入時(shí)鐘的頻率不超過(guò)總
17、線時(shí)鐘的1/4.2:0PS2:0時(shí)鐘預(yù)分頻設(shè)置時(shí)鐘預(yù)分頻設(shè)置 該3位設(shè)置定時(shí)器的分頻器,對(duì)應(yīng)關(guān)系如下:0001分頻; 0012分頻; 0104分頻; 0118分頻;10016分頻;10132分頻; 11064分頻;111128分頻。TPM計(jì)數(shù)器(TPMCNTH : TPMCNTL) 這是兩個(gè)只讀的8位寄存器,而且讀取任何一個(gè)寄存器都會(huì)將這兩個(gè)寄存器數(shù)值保存在某個(gè)緩沖中,直到另一個(gè)寄存器也被讀取,至于哪個(gè)寄存器先被讀取并不重要。該自動(dòng)緩沖機(jī)制通過(guò)以下3種方法可以重新進(jìn)入準(zhǔn)備狀態(tài):1MCU復(fù)位;2對(duì)計(jì)數(shù)器TPMCNTH或TPMCNTL寫(xiě)入任何數(shù)值(導(dǎo)致計(jì)數(shù)器復(fù)位);3對(duì)狀態(tài)和控制寄存器TPMSC寫(xiě)
18、入任何數(shù)值。 復(fù)位時(shí)計(jì)數(shù)器被清零,在BDM模式下,計(jì)數(shù)器被凍結(jié),即使在BDM狀態(tài)下對(duì)計(jì)數(shù)器有讀寫(xiě)操作,自動(dòng)緩沖狀態(tài)還是維持不變。在停止(STOP)模式下,計(jì)數(shù)器也停止。在等待(WAIT)模式下,計(jì)數(shù)器運(yùn)行正常。 3、TPM 寄存器定時(shí)器模寄存器(TPMMODH:TPMMODL) 該可讀/寫(xiě)寄存器定義了計(jì)數(shù)器的最大數(shù)值,當(dāng)計(jì)數(shù)器計(jì)數(shù)到與模寄存器數(shù)值相等時(shí),對(duì)于加法計(jì)數(shù)器(CPWMS = 0)則翻轉(zhuǎn)到0 x0000,對(duì)于加/減計(jì)數(shù)器(CPWMS = 1),計(jì)數(shù)器開(kāi)始遞減。此時(shí)溢出標(biāo)志TOF會(huì)被置1。對(duì)模寄存器的某個(gè)8位寫(xiě)入數(shù)值時(shí)會(huì)禁止TOF設(shè)置,同時(shí)也禁止了中斷,直到另一個(gè)8位寄存器寫(xiě)入新值。 復(fù)
19、位時(shí)為0 x0000,此時(shí)如果啟動(dòng)定時(shí)器則計(jì)數(shù)器成為“自由計(jì)數(shù)器”。對(duì)模寄存器的更新操作最好在定時(shí)器溢出中斷中進(jìn)行,這樣比較容易保證在新的溢出之前,兩個(gè)8位的寄存器數(shù)值更新已經(jīng)完成。另外一個(gè)好的習(xí)慣就是在對(duì)模寄存器第一次寫(xiě)入數(shù)值前,先復(fù)位主計(jì)數(shù)器,以保證第一次溢出不會(huì)太快。3、TPM 寄存器TPMCnSC 3、TPM 寄存器7-CHnF通道通道n的中斷標(biāo)志的中斷標(biāo)志 如果通道n設(shè)置為輸入捕捉,當(dāng)外部管腳出現(xiàn)有效邊沿,則置位該中斷標(biāo)志。當(dāng)通道n設(shè)置為輸出比較或是邊沿對(duì)齊的PWM工作模式,當(dāng)TPM計(jì)數(shù)器數(shù)值與通道n輔助寄存器數(shù)值一致時(shí)。對(duì)于中間對(duì)齊的PWM工作模式來(lái)說(shuō),該標(biāo)志一般不使用,因?yàn)樵谝粋€(gè)
20、周期中,脈沖有效的兩個(gè)沿都會(huì)設(shè)置該標(biāo)志(有兩次比較匹配事件)。如果通道n對(duì)應(yīng)的中斷被允許(CHnIE = 1),則標(biāo)志CHnF置1時(shí)會(huì)產(chǎn)生中斷。清除清除CHnF標(biāo)志分兩步標(biāo)志分兩步,先讀取TPMCnSC,然后對(duì)CHnF寫(xiě)0。在這兩步之間如果有事件發(fā)生,需要設(shè)置CHnF,則清除標(biāo)志的動(dòng)作取消。對(duì)該標(biāo)志寫(xiě)1沒(méi)有影響。6-CHnIE通道通道n中斷允許中斷允許 置1該控制位將允許通道n的中斷。5:4MSnB:MSnA通道工作模式選擇控制位,MSnB決定對(duì)應(yīng)的通道是否設(shè)置為PWM模式,而MSnA決定通道在不是PWM模式時(shí),是輸入捕捉還是輸出比較。更詳細(xì)用法參見(jiàn)后面表格。3:2ELSnB:ELSnA沿/電
21、平選擇控制位 設(shè)置通道對(duì)應(yīng)的外部管腳工作模式,具體用法參見(jiàn)后面表格。該控制位的設(shè)置需要參考其它三個(gè)控制位CPWMS:MSnB:MSnA,對(duì)于輸入捕捉而言,該控制選擇上升沿還是下降沿,而對(duì)于輸出比較而言,該控制選擇比較匹配時(shí),外部管腳被驅(qū)動(dòng)成高電平還是低電平,對(duì)于PWM而言,該控制決定了脈寬有效期間對(duì)應(yīng)外部管腳的電平狀態(tài)。設(shè)置該兩位為0:0時(shí)使得通道對(duì)應(yīng)的外部管腳為通用I/O,該特性可用于臨時(shí)取消輸入捕捉功能,或者是通道設(shè)置成不需要外部管腳的軟件定時(shí)器時(shí),將對(duì)應(yīng)的管腳作為通用I/O使用。對(duì)于某些型號(hào)的單片機(jī),TPMCH0被設(shè)置成外部脈沖輸入管腳TCLK。如果要使用TCLK作為定時(shí)器時(shí)鐘源則通道0
22、對(duì)應(yīng)的該控制位必須設(shè)置成0:0。3、TPM 寄存器 對(duì)于剛設(shè)置為輸入捕捉而言,對(duì)應(yīng)的外部管腳應(yīng)最少穩(wěn)定2個(gè)總線時(shí)鐘周期,否則可能會(huì)產(chǎn)生不可預(yù)知的捕捉現(xiàn)象。一般來(lái)說(shuō),編程時(shí)改變通道設(shè)置后,在允許中斷之前應(yīng)先清除狀態(tài)位。 模式、沿和電平選擇表格:CPWMSMSnB:MSnAELSnB:ELSnA模式功能描述xxx00通道未使用外部管腳,可能是管腳作為T(mén)PM的外部時(shí)鐘輸入或者是將管腳作為通用I/O使用。0加法計(jì)數(shù)器00011011輸入捕捉僅上升沿捕捉僅下降沿捕捉上升沿或下降沿都捕捉0100011011輸出比較僅軟件比較,無(wú)管腳輸出比較匹配時(shí),外部管腳翻轉(zhuǎn)比較匹配時(shí),外部管腳清0比較匹配時(shí),外部管腳置
23、11x10 x1邊沿對(duì)齊PWM脈寬有效期間高電平(比較匹配時(shí),外部管腳清0)脈寬有效期間低電平(比較匹配時(shí),外部管腳置1)1加/減xx10 x1中間對(duì)齊的PWM脈寬有效期間高電平(比較匹配時(shí),外部管腳清0)脈寬有效期間低電平(比較匹配時(shí),外部管腳置1)3、TPM 寄存器定時(shí)器2個(gè)獨(dú)立通道對(duì)應(yīng)的輔助寄存器(TPMCnVH:TPMCnVL) 這些可讀/寫(xiě)寄存器用于在輸入捕捉模式中保存捕捉的計(jì)數(shù)器數(shù)值,在輸出比較和PWM模式中保存與主計(jì)數(shù)器比較的數(shù)值。復(fù)位時(shí)這些輔助寄存器被清零。對(duì)這些8位的寄存器讀/寫(xiě)采用了自動(dòng)鎖定機(jī)制,以保證每次都能讀/寫(xiě)一個(gè)完整的16位的數(shù)值。該鎖定機(jī)制對(duì)組成16位數(shù)值的2個(gè)8
24、位寄存器的讀/寫(xiě)順序沒(méi)有要求,也就是說(shuō)可以先讀/寫(xiě)高8位,也可以先讀/寫(xiě)低8位,直到另一個(gè)寄存器被讀/寫(xiě),自動(dòng)解除鎖定,也可以通過(guò)寫(xiě)寫(xiě)TMPCnSC寄存器寄存器隨時(shí)解除鎖定狀態(tài)。邊沿對(duì)齊的邊沿對(duì)齊的PWM工作模式工作模式 邊沿對(duì)齊的PWM對(duì)應(yīng)的主計(jì)數(shù)器為加法計(jì)數(shù)器(CPWMS = 0),對(duì)應(yīng)的外部管腳輸出波形參下圖。該P(yáng)WM信號(hào)的周期由模寄存器(TPMMODH:TPMMODL)決定,脈沖有效寬度由通道輔助寄存器(TPMCnVH:TPMCnVL)決定,脈沖有效時(shí)的電平特性由ELSnA控制位決定。通過(guò)適當(dāng)?shù)脑O(shè)置,可以產(chǎn)生0%或者是100%的占空比。從圖中可以看出,脈沖有效時(shí)間從溢出開(kāi)始,此時(shí)對(duì)應(yīng)的
25、主計(jì)數(shù)器為0 x0000,計(jì)數(shù)到與通道輔助寄存器相等,產(chǎn)生比較匹配時(shí),脈沖有效時(shí)間結(jié)束,外部管腳電平發(fā)生變化,計(jì)數(shù)到模寄存器數(shù)值時(shí),發(fā)生溢出動(dòng)作,計(jì)數(shù)器回0,管腳電平再次發(fā)生變化,也表明一個(gè)周期的結(jié)束。通道輔助寄存器(TPMCnVH:TPMCnVL)為0 x0000時(shí)對(duì)應(yīng)的占空比為0%,如果通道輔助寄存器數(shù)值大于模寄存器數(shù)值,則產(chǎn)生100%的占空比,同時(shí)為了能產(chǎn)生100%的占空比,則要求模寄存器數(shù)值必須小于0 xFFFF。 在模寄存器數(shù)值一定時(shí),周期也就確定了,占空比由通道輔助寄存器數(shù)值決定,為了獲得不同的占空比,修改輔助寄存器數(shù)值時(shí)鎖定機(jī)制同樣有效。輔助寄存器數(shù)值修改后不會(huì)在修改的當(dāng)前周期馬
26、上生效,而是要等到主計(jì)數(shù)器數(shù)值為0 x0000之后,也就是要等到有溢出發(fā)生的下一個(gè)周期才會(huì)生效。圖 ELSnA = 0時(shí)邊沿對(duì)齊PWM管腳輸出波形有效脈寬周期溢出溢出溢出輸出比較輸出管腳TPMCHn輸出比較輸出比較第4節(jié)、TPM應(yīng)用于PWM原理及實(shí)踐TPM用于PWM調(diào)制邊沿對(duì)齊的邊沿對(duì)齊的PWM工作模式工作模式圖 ELSnA = 0時(shí)邊沿對(duì)齊PWM管腳輸出波形有效脈寬周期溢出溢出溢出輸出比較輸出管腳TPMCHn輸出比較輸出比較周期由模寄存器(TPMMODH:TPMMODL)決定:4000000 / 128 = 31250(計(jì)數(shù)頻率);65535 / 31250 = 2.1 秒(周期)如果設(shè)置成
27、周期2秒,則( TPMMODH:TPMMODL ) = 62500;占空比由通道輔助寄存器(TPMCnVH:TPMCnVL)決定:比如使用通道0,且占空比為50%,則 (TPMC0VH:TPMC0VL) = 31250;TPM用于PWM調(diào)制中間對(duì)齊的中間對(duì)齊的PWM工作模式工作模式 這種PWM工作模式對(duì)應(yīng)的計(jì)數(shù)器為加/減計(jì)數(shù)器(CPWMS = 1),對(duì)應(yīng)的外部管腳輸出波形參見(jiàn)下圖。與邊沿對(duì)齊的PWM工作模式類(lèi)似,周期還是由模寄存器數(shù)值決定,為2x(TPMMODH:TPMMODL),有效脈沖寬度由通道輔助寄存器數(shù)值決定,為2 x (TPMCnVH:TPMCnVL)。模寄存器數(shù)值應(yīng)保證在0 x00
28、01到0 x7FFF之間,以免產(chǎn)生歧義。ELSnA同樣決定了管腳輸出電平的特性。圖 ELSnA = 0時(shí)中間對(duì)齊PWM管腳輸出波形脈寬周期 主計(jì)數(shù)器為0開(kāi)始遞增計(jì)數(shù)器與模值相等溢出,開(kāi)始遞減 遞增到比較輸出輸出管腳TPMCHn計(jì)數(shù)器與模值相等溢出,開(kāi)始遞減 遞減到比較輸出主計(jì)數(shù)器為0開(kāi)始遞增 遞增到比較輸出 遞減到比較輸出2個(gè)通道的對(duì)齊線TPM用于PWM調(diào)制中間對(duì)齊的中間對(duì)齊的PWM工作模式(續(xù))工作模式(續(xù)) 如果通道輔助寄存器為0 x0000或者是負(fù)值(最高位為1),管腳輸出脈沖占空比為0%,如果通道輔助寄存器數(shù)值為正值(最高位為0),且大于非零的模寄存器數(shù)值,由于比較輸出從未發(fā)生,將產(chǎn)生
29、100%的占空比。為了能產(chǎn)生任意占空比的波形,要求模寄存器數(shù)值實(shí)際為0 x0001到0 x7FFE ,而且這對(duì)大多數(shù)應(yīng)用而言,周期已經(jīng)足夠了。對(duì)于中間對(duì)齊的PWM工作模式而言,模寄存器數(shù)值為0 x0000的情形必須禁止,只有這樣才能正確由遞增計(jì)數(shù)切換到遞減計(jì)數(shù)方式。 中間對(duì)齊的PWM模式比邊沿對(duì)齊的PWM模式將產(chǎn)生更少的I/O噪聲,因?yàn)椴煌ǖ拦苣_電平發(fā)生變化的時(shí)間由通道輔助寄存器數(shù)值決定,不會(huì)出現(xiàn)邊沿對(duì)齊PWM模式中,溢出時(shí)所有管腳一起變化,而且在實(shí)際應(yīng)用中,有些電機(jī)要求使用中間對(duì)齊的PWM模式驅(qū)動(dòng)。 需要注意中間對(duì)齊的PWM工作模式中的溢出,是指主計(jì)數(shù)器遞增到與模寄存器數(shù)值相等,并開(kāi)始遞減
30、一個(gè)數(shù)后才算溢出事件發(fā)生。更新通道輔助寄存器會(huì)啟動(dòng)鎖定機(jī)制,而且更新數(shù)值后,不會(huì)影響當(dāng)前周期的輸出特性,必須等計(jì)數(shù)器發(fā)生溢出動(dòng)作之后,新的數(shù)值才會(huì)生效。4、TPM 應(yīng)用范例4.1、TPM軟件定時(shí)器應(yīng)用 如果不考慮輸入捕捉、輸出比較、PWM這三種需要外部管腳配合的情形,TPM的應(yīng)用還是很簡(jiǎn)單的,因?yàn)榇藭r(shí)不用考慮2個(gè)獨(dú)立通道,也不用設(shè)置TPMCnSC、 ( TPMCnVH:TPMCnVL )這6個(gè)寄存器。PTBDD = 0 xFF;PTBD = 0 xFF;SOPT1 =0 x03;TPMMOD = 31250; /4000000 = 31250 * 128TPMSC = 0 x4F; /允許中斷
31、,總線時(shí)鐘128分頻interrupt 7 void TPM_ISR() PTBD = 0 xFF; TPMSC = TPMSC&0 x7F;初始化中斷子程序寄存器地址0 x0040-TPMSC0 x0045-TPMC0SC0 x0048-TPMC1SC0 x0041-TPMCNTH0 x0041-TPMCNTH0 x0046-TPMC0VH0 x0049-TPMC1VH0 x0042-TPMCNTL0 x0042-TPMCNTL0 x0047-TPMC0VL0 x004A-TPMC1VL0 x0043-TPMMODH0 x0044-TPMMODL4、TPM 應(yīng)用范例4.2、TPM輸入捕捉SOPT1 = 0 x03; /stop COP,Enable RSTSCIBD = 4000000/16/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 一個(gè)子女的離婚協(xié)議書(shū)(3篇)
- 高中數(shù)學(xué)教學(xué)總結(jié)(15篇)
- 投資項(xiàng)目長(zhǎng)期借款合同(3篇)
- 新時(shí)代青年的使命與擔(dān)當(dāng)6
- 項(xiàng)目部安全培訓(xùn)試題及答案完美
- 第八章-免疫學(xué)應(yīng)用(二)
- 項(xiàng)目部安全管理人員安全培訓(xùn)試題答案原創(chuàng)題
- 公司安全管理員安全培訓(xùn)試題帶答案(鞏固)
- 安全管理員安全培訓(xùn)試題及參考答案(考試直接用)
- 項(xiàng)目部治理人員安全培訓(xùn)試題附答案(A卷)
- 面單粘貼規(guī)范
- 中國(guó)醫(yī)科大學(xué)2023年12月《康復(fù)工程學(xué)》作業(yè)考核試題-【答案】
- 七年級(jí)上冊(cè)英語(yǔ)期中專(zhuān)項(xiàng)復(fù)習(xí)-補(bǔ)全對(duì)話(含答案)
- 鐵的單質(zhì)(導(dǎo)學(xué)案)高一化學(xué)
- 江蘇省蘇州市昆山、太倉(cāng)、常熟、張家港四市2023-2024學(xué)年九年級(jí)上學(xué)期期中化學(xué)試題
- 一例慢性阻塞性肺疾病個(gè)案護(hù)理
- 《食物在身體里的旅行》
- 狂犬病暴露預(yù)防處置工作規(guī)范(2023年版)課件
- 銀行信息科技風(fēng)險(xiǎn)披露制度
- 絞吸式挖泥船水下疏挖河渠施工工法
- 新產(chǎn)品開(kāi)發(fā)流程圖
評(píng)論
0/150
提交評(píng)論