當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]STM32F103系列的單片機(jī)一共有11個(gè)定時(shí)器,其中:2個(gè)高級(jí)定時(shí)器4個(gè)普通定時(shí)器2個(gè)基本定時(shí)器2個(gè)看門狗定時(shí)器1個(gè)系統(tǒng)嘀嗒定時(shí)器除去看門狗定時(shí)器和系統(tǒng)滴答定時(shí)器的八個(gè)定時(shí)器列表;8個(gè)定時(shí)器分成3個(gè)組;TIM1和TIM8是高級(jí)

STM32F103系列的單片機(jī)一共有11個(gè)定時(shí)器,其中:
2個(gè)高級(jí)定時(shí)器
4個(gè)普通定時(shí)器
2個(gè)基本定時(shí)器
2個(gè)看門狗定時(shí)器

1個(gè)系統(tǒng)嘀嗒定時(shí)器


除去看門狗定時(shí)器和系統(tǒng)滴答定時(shí)器的八個(gè)定時(shí)器列表;



8個(gè)定時(shí)器分成3個(gè)組;
TIM1和TIM8是高級(jí)定時(shí)器
TIM2-TIM5是通用定時(shí)器
TIM6和TIM7是基本的定時(shí)器
這8個(gè)定時(shí)器都是16位的,它們的計(jì)數(shù)器的類型除了基本定時(shí)器TIM6和TIM7都支持向上,向下,向上/向下這3種計(jì)數(shù)模式

計(jì)數(shù)器三種計(jì)數(shù)模式
向上計(jì)數(shù)模式:從0開(kāi)始,計(jì)到arr預(yù)設(shè)值,產(chǎn)生溢出事件,返回重新計(jì)時(shí)
向下計(jì)數(shù)模式:從arr預(yù)設(shè)值開(kāi)始,計(jì)到0,產(chǎn)生溢出事件,返回重新計(jì)時(shí)
中央對(duì)齊模式:從0開(kāi)始向上計(jì)數(shù),計(jì)到arr產(chǎn)生溢出事件,然后向下計(jì)數(shù),計(jì)數(shù)到1以后,又產(chǎn)生溢出,然后再?gòu)?開(kāi)始向上計(jì)數(shù)。(此種技術(shù)方法也可叫向上/向下計(jì)數(shù))

基本定時(shí)器(TIM6,TIM7)的主要功能:
只有最基本的定時(shí)功能,。基本定時(shí)器TIM6和TIM7各包含一個(gè)16位自動(dòng)裝載計(jì)數(shù)器,由各自的可編程預(yù)分頻器驅(qū)動(dòng)

通用定時(shí)器(TIM2~TIM5)的主要功能:
除了基本的定時(shí)器的功能外,還具有測(cè)量輸入信號(hào)的脈沖長(zhǎng)度( 輸入捕獲) 或者產(chǎn)生輸出波形( 輸出比較和PWM)

高級(jí)定時(shí)器(TIM1,TIM8)的主要功能:
高級(jí)定時(shí)器不但具有基本,通用定時(shí)器的所有的功能,還具有控制交直流電動(dòng)機(jī)所有的功能,你比如它可以輸出6路互補(bǔ)帶死區(qū)的信號(hào),剎車功能等等

通用定時(shí)器的時(shí)鐘來(lái)源;
a:內(nèi)部時(shí)鐘(CK_INT)
b:外部時(shí)鐘模式1:外部輸入腳(TIx)
c:外部時(shí)鐘模式2:外部觸發(fā)輸入(ETR)
d:內(nèi)部觸發(fā)輸入(ITRx):使用一個(gè)定時(shí)器作為另一個(gè)定時(shí)器的預(yù)分頻器

通用定時(shí)期內(nèi)部時(shí)鐘的產(chǎn)生:

從截圖可以看到通用定時(shí)器(TIM2-7)的時(shí)鐘不是直接來(lái)自APB1,而是通過(guò)APB1的預(yù)分頻器以后才到達(dá)定時(shí)器模塊。
當(dāng)APB1的預(yù)分頻器系數(shù)為1時(shí),這個(gè)倍頻器就不起作用了,定時(shí)器的時(shí)鐘頻率等于APB1的頻率;
當(dāng)APB1的預(yù)分頻系數(shù)為其它數(shù)值(即預(yù)分頻系數(shù)為2、4、8或16)時(shí),這個(gè)倍頻器起作用,定時(shí)器的時(shí)鐘頻率等于APB1時(shí)鐘頻率的兩倍。

自動(dòng)裝在寄存器arr值的計(jì)算:
Tout= ((arr+1)*(psc+1))/Tclk;
Tclk:TIM3的輸入時(shí)鐘頻率(單位為Mhz)。
Tout:TIM3溢出時(shí)間(單位為us)。
計(jì)時(shí)1S,輸入時(shí)鐘頻率為72MHz,加入PSC預(yù)分頻器的值為35999,那么:
((1+psc )/72M)*(1+arr )=((1+35999)/72M)*(1+arr)=1秒
則可計(jì)算得出自動(dòng)窗裝載寄存器arr=1999

通用定時(shí)器PWM工作原理
以PWM模式2,定時(shí)器3向上計(jì)數(shù),有效電平是高電平,定時(shí)器3的第3個(gè)PWM通道為例:

定時(shí)器3的第3個(gè)PWM通道對(duì)應(yīng)是PB0這引腳,三角頂點(diǎn)的值就是TIM3_ARR寄存器的值,上圖這條紅線的值就TIM3_CCR3
當(dāng)定時(shí)器3的計(jì)數(shù)器(TIM3_CNT)剛開(kāi)始計(jì)數(shù)的時(shí)候是小于捕獲/比較寄存器(TIM3_CCR3)的值,
此時(shí)PB0輸出低電平,隨著計(jì)數(shù)器(TIM3_CNT)值慢慢的增加,
當(dāng)計(jì)數(shù)器(TIM3_CNT)大于捕獲/比較寄存器(TIM3_CCR3)的值時(shí),這時(shí)PB0電平就會(huì)翻轉(zhuǎn),輸出高電平,計(jì)數(shù)器(TIM3_CNT)的值繼續(xù)增加,
當(dāng)TIM3_CNT=TIM3_ARR的值時(shí),TIM3_CNT重新回到0繼續(xù)計(jì)數(shù),PB0電平翻轉(zhuǎn),輸出低電平,此時(shí)一個(gè)完整的PWM信號(hào)就誕生了。

PWM輸出模式;
STM32的PWM輸出有兩種模式:
模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位確定的(“110”為模式1,“111”為模式2)。區(qū)別如下:
110:PWM模式1,在向上計(jì)數(shù)時(shí),一旦TIMx_CNT
在向下計(jì)數(shù)時(shí),一旦TIMx_CNT>TIMx_CCR1時(shí)通道1為無(wú)效電平(OC1REF=0),否則為有效電平(OC1REF=1)。
111:PWM模式2-在向上計(jì)數(shù)時(shí),一旦TIMx_CNTTIMx_CCR1時(shí)通道1為有效電平,否則為無(wú)效電平。
由以上可知:
模式1和模式2正好互補(bǔ),互為相反,所以在運(yùn)用起來(lái)差別也并不太大。而從計(jì)數(shù)模式上來(lái)看,PWM也和TIMx在作定時(shí)器時(shí)一樣,也有向上計(jì)數(shù)模式、向下計(jì)數(shù)模式和中心對(duì)齊模式

PWM的輸出管腳:
不同的TIMx輸出的引腳是不同(此處設(shè)計(jì)管腳重映射)
TIM3復(fù)用功能重映射:

注:重映射是為了PCB的設(shè)計(jì)方便。值得一提的是,其分為部分映射和全部映射

PWM輸出頻率的計(jì)算:
PWM輸出的是一個(gè)方波信號(hào),信號(hào)的頻率是由TIMx的時(shí)鐘頻率和TIMx_ARR這個(gè)寄存器所決定的
輸出信號(hào)的占空比則是由TIMx_CRRx寄存器確:
占空比=(TIMx_CRRx/TIMx_ARR)*100%
PWM頻率的計(jì)算公式為:

其中
F就是PWM輸出的頻率,單位是:HZ;
ARR就是自動(dòng)重裝載寄存器(TIMx_ARR);
PSC 就是預(yù)分頻器(TIMx_PSC);
72M就是系統(tǒng)的頻率;

STM32 高級(jí)定時(shí)器PWM的輸出

一路帶死區(qū)時(shí)間的互補(bǔ)PWM的波形圖


STM32F103VC這款單片機(jī)一共有2個(gè)高級(jí)定時(shí)器TIM1和TIM8
這2個(gè)高級(jí)定時(shí)器都可以同時(shí)產(chǎn)生3路互補(bǔ)帶死區(qū)時(shí)間的PWM信號(hào)和一路單獨(dú)的PWM信號(hào),
具有剎車輸入功能,在緊急的情況下這個(gè)剎車功能可以切斷PWM信號(hào)的輸出
還具有支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路
高級(jí)控制定時(shí)器(TIM1 和TIM8) 由一個(gè)16位的自動(dòng)裝載計(jì)數(shù)器組成,它由一個(gè)可編程的預(yù)分頻器驅(qū)動(dòng)

它適合多種用途,包含測(cè)量輸入信號(hào)的脈沖寬度( 輸入捕獲) ,或者產(chǎn)生輸出波形(輸出比較、PWM、嵌入死區(qū)時(shí)間的互補(bǔ)PWM等)。
使用定時(shí)器預(yù)分頻器和RCC時(shí)鐘控制預(yù)分頻器,可以實(shí)現(xiàn)脈沖寬度和波形周期從幾個(gè)微秒到幾個(gè)毫秒的調(diào)節(jié)。
高級(jí)控制定時(shí)器(TIM1 和TIM8) 和通用定時(shí)器(TIMx) 是完全獨(dú)立的,它們不共享任何資源

死區(qū)時(shí)間
H橋電路為避免由于關(guān)斷延遲效應(yīng)造成上下橋臂直通,有必要設(shè)置死區(qū)時(shí)間
死區(qū)時(shí)間可有效地避免延遲效應(yīng)所造成的一個(gè)橋臂未完全關(guān)斷,而另一橋臂又處于導(dǎo)通狀態(tài),避免直通炸開(kāi)關(guān)管。
死區(qū)時(shí)間越大,電路的工作也就越可靠,但會(huì)帶來(lái)輸出波形的失真以及降低輸出效率。
死區(qū)時(shí)間小,輸出波形要好一些,但是會(huì)降低系統(tǒng)的可靠性,一般這個(gè)死區(qū)時(shí)間設(shè)置為us級(jí)

元器件死區(qū)時(shí)間是不可以改變的,它主要是取決于元器件的制作工藝和材料!

原則上死區(qū)時(shí)間當(dāng)然越小越好。設(shè)置死區(qū)時(shí)間的目的,其實(shí)說(shuō)白了就是為了電路的安全。最佳的設(shè)置方法是:在保證安全的前提下,設(shè)置的死區(qū)時(shí)間越小越好。以不炸功率管、輸出不短路為目的。

STM32死區(qū)時(shí)間探究
設(shè)置寄存器:就是剎車和死區(qū)控制寄存器(TIMx_BDTR)

這個(gè)寄存器的第0—7位,這8個(gè)位就是用來(lái)設(shè)置死區(qū)時(shí)間的,使用如下:

以TIM1為例說(shuō)明其頻率是如何產(chǎn)生的。

定時(shí)器1適中產(chǎn)生路線:
系統(tǒng)時(shí)鐘-> AHB預(yù)分頻 -> APB2預(yù)分頻 –> TIM1倍頻器–> 產(chǎn)生TIM1的時(shí)鐘系統(tǒng)
流程圖看可以看出,要想知道TIM1的時(shí)鐘,就的知道系統(tǒng)時(shí)鐘,AHB預(yù)分頻器的值,還有APB2預(yù)分頻器的值,只要知道了這幾個(gè)值,即可算出TIM1的時(shí)鐘頻率?
這些值從何來(lái),在“SystemInit()”這個(gè)時(shí)鐘的初始化函數(shù)中已經(jīng)給我們答案了,在這個(gè)函數(shù)中設(shè)置的系統(tǒng)時(shí)鐘是72MZ,AHB預(yù)分頻器和APB2預(yù)分頻器值都是設(shè)置為1,由此可算出:TIM1時(shí)鐘頻率:
72MHZ了,TDTS=1/72MHZ=13.89ns

Tdtg死區(qū)時(shí)間步進(jìn)值,它的值是定時(shí)器的周期乘以相應(yīng)的數(shù)字得到的

下面看看官方給的公式如何使用,如下:
DTG[7:5]=0xx=>DT=DTG[6:0]×Tdtg,Tdtg=TDTS
首先由DTG[7:5]=0xx可以知道的是:DTG的第7位必須為0,剩余的0~6這7位可配置死區(qū)時(shí)間,假如TIM1的時(shí)鐘為72M的話,那么由公式Tdtg=TDTS可計(jì)算出:TDTS=1/72MHZ=13.89ns。
有了這個(gè)值,然后通過(guò)公式DT=DTG[6:0]×Tdtg即可計(jì)算出DT的值。

如果DTG的第0~6位均為0的話,DT=0
如果DTG的第0~6位均為1的話,DT=127*13.89ns=1764ns
如果TIM1的時(shí)鐘為72M的話,
公式1可設(shè)置的死區(qū)時(shí)間0~1764ns,也就是說(shuō):
如果你的項(xiàng)目需要輸出的PWM信號(hào)要求的死區(qū)時(shí)間是0——1764ns的時(shí)候你就可以用公式1

同樣可計(jì)算出4個(gè)公式的死去區(qū)間,如下:
公式1:DT=0~1764ns
公式2:DT=1777.9ns~3528.88ns
公式3:DT=3555.84ns~7000.56ns
公式4:DT=7111.68ns~14001.12ns

死區(qū)時(shí)間的設(shè)置:

假如我們?cè)O(shè)計(jì)了一個(gè)項(xiàng)目要求輸出的PWM信號(hào)中加入一個(gè)3us的死區(qū)時(shí)間因?yàn)?us這個(gè)值在第二個(gè)公式?jīng)Q定的死區(qū)范圍之內(nèi)所以選擇第二個(gè)公式。3000/(13.89*2)=108,
所以DTG[5:0]=108-64=44
所以DTG=127+44+32=203=0XCB,TIM1->BDTR"=0Xcb
這里為什么要在加上一個(gè)32那?在公式2中DTG的第5位是一個(gè)X,也就是說(shuō)這一位可以設(shè)置為高電平,也可以設(shè)置為低電平,在這里我們將這一位設(shè)置為了高電平,所有要在加上一個(gè)32.如此而已!


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉