娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月06日(星期四)

正在發生

2020年02月06日 | STM32F103系列單片機中的定時器工作原理解析

發布者:陳書記 來源: elecfans關鍵字:STM32F103系列  單片機  定時器 手機看文章 掃描二維碼
隨時隨地手機看文章

STM32F103系列的單片機一共有11個定時器,其中:

2個高級定時器

4個普通定時器

2個基本定時器

2個看門狗定時器

1個系統嘀嗒定時器

出去看門狗定時器和系統滴答定時器的八個定時器列表;

8個定時器分成3個組;

TIM1和TIM8是高級定時器

TIM2-TIM5是通用定時器

TIM6和TIM7是基本的定時器

這8個定時器都是16位的,它們的計數器的類型除了基本定時器TIM6和TIM7都支持向上,向下,向上/向下這3種計數模式

STM32F103系列單片機中的定時器工作原理解析

計數器三種計數模式

向上計數模式:從0開始,計到arr預設值,產生溢出事件,返回重新計時

向下計數模式:從arr預設值開始,計到0,產生溢出事件,返回重新計時

中央對齊模式:從0開始向上計數,計到arr產生溢出事件,然后向下計數,計數到1以后,又產生溢出,然后再從0開始向上計數。(此種技術方法也可叫向上/向下計數)


基本定時器(TIM6,TIM7)的主要功能:

只有最基本的定時功能,基本定時器TIM6和TIM7各包含一個16位自動裝載計數器,由各自的可編程預分頻器驅動

通用定時器(TIM2~TIM5)的主要功能:

除了基本的定時器的功能外,還具有測量輸入信號的脈沖長度( 輸入捕獲) 或者產生輸出波形( 輸出比較和PWM)


高級定時器(TIM1,TIM8)的主要功能:

高級定時器不但具有基本,通用定時器的所有的功能,還具有控制交直流電動機所有的功能,你比如它可以輸出6路互補帶死區的信號,剎車功能等等


通用定時器的時鐘來源;

a:內部時鐘(CK_INT)

b:外部時鐘模式1:外部輸入腳(TIx)

c:外部時鐘模式2:外部觸發輸入(ETR)

d:內部觸發輸入(ITRx):使用一個定時器作為另一個定時器的預分頻器


通用定時期內部時鐘的產生:

從截圖可以看到通用定時器(TIM2-7)的時鐘不是直接來自APB1,而是通過APB1的預分頻器以后才到達定時器模塊。


當APB1的預分頻器系數為1時,這個倍頻器就不起作用了,定時器的時鐘頻率等于APB1的頻率;


當APB1的預分頻系數為其它數值(即預分頻系數為2、4、8或16)時,這個倍頻器起作用,定時器的時鐘頻率等于APB1時鐘頻率的兩倍。


自動裝在寄存器arr值的計算:

Tout= ((arr+1)*(psc+1))/Tclk;

Tclk:TIM3的輸入時鐘頻率(單位為Mhz)。

Tout:TIM3溢出時間(單位為us)。

計時1S,輸入時鐘頻率為72MHz,加入PSC預分頻器的值為35999,那么:

((1+psc )/72M)*(1+arr )=((1+35999)/72M)*(1+arr)=1秒

則可計算得出自動窗裝載寄存器arr=1999

通用定時器PWM工作原理

以PWM模式2,定時器3向上計數,有效電平是高電平,定時器3的第3個PWM通道為例:

定時器3的第3個PWM通道對應是PB0這引腳,三角頂點的值就是TIM3_ARR寄存器的值,上圖這條紅線的值就TIM3_CCR3

當定時器3的計數器(TIM3_CNT)剛開始計數的時候是小于捕獲/比較寄存器(TIM3_CCR3)的值,

此時PB0輸出低電平,隨著計數器(TIM3_CNT)值慢慢的增加,

當計數器(TIM3_CNT)大于捕獲/比較寄存器(TIM3_CCR3)的值時,這時PB0電平就會翻轉,輸出高電平,計數器(TIM3_CNT)的值繼續增加,

當TIM3_CNT=TIM3_ARR的值時,TIM3_CNT重新回到0繼續計數,PB0電平翻轉,輸出低電平,此時一個完整的PWM信號就誕生了。


PWM輸出模式;

STM32的PWM輸出有兩種模式:

模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位確定的(“110”為模式1,“111”為模式2)。區別如下:

110:PWM模式1,在向上計數時,一旦TIMx_CNT

在向下計數時,一旦TIMx_CNT》TIMx_CCR1時通道1為無效電平(OC1REF=0),否則為有效電平(OC1REF=1)。

111:PWM模式2-在向上計數時,一旦TIMx_CNTTIMx_CCR1時通道1為有效電平,否則為無效電平。


由以上可知:

模式1和模式2正好互補,互為相反,所以在運用起來差別也并不太大。而從計數模式上來看,PWM也和TIMx在作定時器時一樣,也有向上計數模式、向下計數模式和中心對齊模式

PWM的輸出管腳:

不同的TIMx輸出的引腳是不同(此處設計管腳重映射)

TIM3復用功能重映射:

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

PWM輸出頻率的計算:

PWM輸出的是一個方波信號,信號的頻率是由TIMx的時鐘頻率和TIMx_ARR這個寄存器所決定的輸出信號的占空比則是由TIMx_CRRx寄存器確:

占空比=(TIMx_CRRx/TIMx_ARR)*100%

PWM頻率的計算公式為:

其中

F就是PWM輸出的頻率,單位是:HZ;

ARR就是自動重裝載寄存器(TIMx_ARR);

PSC 就是預分頻器(TIMx_PSC);

72M就是系統的頻率;

STM32 高級定時器PWM的輸出

一路帶死區時間的互補PWM的波形圖

STM32F103VC這款單片機一共有2個高級定時器TIM1和TIM8

這2個高級定時器都可以同時產生3路互補帶死區時間的PWM信號和一路單獨的PWM信號,

具有剎車輸入功能,在緊急的情況下這個剎車功能可以切斷PWM信號的輸出

還具有支持針對定位的增量(正交)編碼器和霍爾傳感器電路

高級控制定時器(TIM1 和TIM8) 由一個16位的自動裝載計數器組成,它由一個可編程的預分頻器驅動

它適合多種用途,包含測量輸入信號的脈沖寬度( 輸入捕獲) ,或者產生輸出波形(輸出比較、PWM、嵌入死區時間的互補PWM等)。


使用定時器預分頻器和RCC時鐘控制預分頻器,可以實現脈沖寬度和波形周期從幾個微秒到幾個毫秒的調節。


高級控制定時器(TIM1 和TIM8) 和通用定時器(TIMx) 是完全獨立的,它們不共享任何資源


死區時間

H橋電路為避免由于關斷延遲效應造成上下橋臂直通,有必要設置死區時間

死區時間可有效地避免延遲效應所造成的一個橋臂未完全關斷,而另一橋臂又處于導通狀態,避免直通炸開關管。


死區時間越大,電路的工作也就越可靠,但會帶來輸出波形的失真以及降低輸出效率。

死區時間小,輸出波形要好一些,但是會降低系統的可靠性,一般這個死區時間設置為us級


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


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


STM32死區時間探究

設置寄存器:就是剎車和死區控制寄存器(TIMx_BDTR)

這個寄存器的第0—7位,這8個位就是用來設置死區時間的,使用如下:

以TIM1為例說明其頻率是如何產生的。


定時器1適中產生路線:

系統時鐘-》 AHB預分頻 -》 APB2預分頻 –》 TIM1倍頻器–》 產生TIM1的時鐘系統

流程圖看可以看出,要想知道TIM1的時鐘,就的知道系統時鐘,AHB預分頻器的值,還有APB2預分頻器的值,只要知道了這幾個值,即可算出TIM1的時鐘頻率?


這些值從何來,在“SystemInit()”這個時鐘的初始化函數中已經給我們答案了,在這個函數中設置的系統時鐘是72MZ,AHB預分頻器和APB2預分頻器值都是設置為1,由此可算出:TIM1時鐘頻率:

72MHZ了,TDTS=1/72MHZ=13.89ns

Tdtg死區時間步進值,它的值是定時器的周期乘以相應的數字得到的

下面看看官方給的公式如何使用,如下:

DTG[7:5]=0xx=》DT=DTG[6:0]×Tdtg,Tdtg=TDTS

首先由DTG[7:5]=0xx可以知道的是:DTG的第7位必須為0,剩余的0~6這7位可配置死區時間,假如TIM1的時鐘為72M的話,那么由公式Tdtg=TDTS可計算出:TDTS=1/72MHZ=13.89ns。

有了這個值,然后通過公式DT=DTG[6:0]×Tdtg即可計算出DT的值。

如果DTG的第0~6位均為0的話,DT=0

如果DTG的第0~6位均為1的話,DT=127*13.89ns=1764ns

如果TIM1的時鐘為72M的話,

公式1可設置的死區時間0~1764ns,也就是說:

如果你的項目需要輸出的PWM信號要求的死區時間是0——1764ns的時候你就可以用公式1

同樣可計算出4個公式的死去區間,如下:

公式1:DT=0~1764ns

公式2:DT=1777.9ns~3528.88ns

公式3:DT=3555.84ns~7000.56ns

公式4:DT=7111.68ns~14001.12ns

如何設置死區時間:

假如我們設計了一個項目要求輸出的PWM信號中加入一個3us的死區時間因為3us這個值在第二個公式決定的死區范圍之內所以選擇第二個公式。3000/(13.89*2)=108,

所以DTG[5:0]=108-64=44

所以DTG=127+44+32=203=0XCB,TIM1-》BDTR|=0Xcb

這里為什么要在加上一個32那?在公式2中DTG的第5位是一個X,也就是說這一位可以設置為高電平,也可以設置為低電平,在這里我們將這一位設置為了高電平,所有要在加上一個32.如此而已!

關鍵字:STM32F103系列  單片機  定時器 引用地址:STM32F103系列單片機中的定時器工作原理解析

上一篇:基于STM32F4單片機USART寄存器控制的設計
下一篇:融性能、集成度和能效于一身,STM32H7系列問市

推薦閱讀

由愛奇藝出品的以機器人格斗劇情式真人秀《機器人爭霸》日前在京啟動錄制。這檔新節目以機器人格斗競技為創新切口,在綜藝內容中展現科技元素與機器人文化的融合。節目在全球范圍內集結超30支戰隊,邀請百名極客進行戰隊對壘。另外,楊穎、李晨、林更新、盛一倫將作為節目中的明星隊長,而趙立新擔綱主持人。《機器人爭霸》將采用劇情式真人秀模式,機器人...
英國倫敦的蓋特威克機場日前宣布將于今年8月開始在機場測試一款停車機器人。旅客們只需要掃描自己的航班信息,把車停到指定位置,機器人就會來帶走汽車,前往機器人停車場,通過人工智能系統尋找車位,完成停車任務。研發人員表示,采用AGV機器人停車,可以通過更科學的停放方式節省近50%的停車場空間。由于機器人無需進入車內,鑰匙還是由旅客自己保管,...
/*實驗十二:AVR內部看門口實驗。1、看門口實驗。在主程序中周期喂狗,通過按下按鍵讓程序無限循環,從而啟動看門狗。2、內部1 M晶振,程序采用單任務方式,軟件延時。3、進行此實驗請插上JP1、JP3的所有8個短路塊,JP7(LED_EN)短路塊。4、通過此實驗可了解看門狗的設置及看門狗的喂狗等。*/#include "iom16v.h"#include <macros.h>/*延時函數*/void d...
一、GPIO定義GPIO,即通用輸入輸出端口General Purpose Input Output的縮寫。GPIO端口可以通過程序配置成輸入端口或輸出端口。二、GPIO的IO模式STM8的GPIO口有12種模式設置,其中輸入4種,輸出8種:1、GPIO_Mode_In_FL_No_IT浮空輸入無中斷2、GPIO_Mode_In_PU_No_IT上拉輸入無中斷3、GPIO_Mode_In_FL_IT浮空輸入有中斷4、GPIO_Mode_In_PU_IT 上拉輸入...

史海拾趣

問答坊 | AI 解惑

STC單片機燒寫問題

各位有沒有遇到到STC單片機燒寫不進的問題啊?我用的是STC12LE5410AD,用他們自帶的軟件,先點擊下載,再上電,但是成功燒寫一次后,就再也不行了,換了個新片子,也是一樣的結果,哪位大俠能給個解釋?謝謝…

查看全部問答∨

最近學校的電子協會要做東西,做甚好呢?

最近學校的電子協會要做東西,做甚好呢?在電路上的基礎不多,只會用電烙鐵焊個元件什么的,想做個東西,比較有新意,成本要控制在25元以內,元件還得是比較好買的,懇請各位給出出主意,先在此謝過了…

查看全部問答∨

DCDC buck較低電壓上電過程電感有叫聲

請教各位: 我們在測試一個DCDC的buck時,發現在低電壓上電時,電感有叫聲,而且整個環路工作不穩定,但是在較高電壓上電過程中沒有發現這種問題,而且,在大電流輸出的情況下也沒有發現這種現象,請問這是為什么?…

查看全部問答∨

keil 編譯錯誤error C216

我用數組元素做函數傳遞的參數,用KEIL編譯的時候出現 F:\\測試中2.C(1558): error C216: subscript on non-array or too many dimensions 這是什么原因呢?難道數組元素不能用來做實參? 大概的代碼如下 int z[]={0,1,2}; tiaoshi(uchar a,b, ...…

查看全部問答∨

wince中怎么處理IRQ3

我想做個當有IRQ3產生時就SUSPEND的程序,不知道應該如何實現? 用EVC寫應用程序?該如何判斷是否有IRQ3產生呢,跪謝!…

查看全部問答∨

關于wince開發mp3的問題

請問一下,開發mp3時的bsp應該選擇那種類型的啊? 一般mp3的cpu類型是什么? 萬分感謝!…

查看全部問答∨

555的沿時類電路如何才能使它不會一通電就使3腳高電平

555的沿時類電路如何才能使它不會一通電就使3腳高電平 比如下圖,一通電繼電器就閉合,似乎根本起不到沿時作用啊 我是個初學者,還希望大家多多指教!…

查看全部問答∨

西安外資招聘電子產品研發工程師

外資公司招聘電子產品研發工程師; 要求:2年左右工作經驗,熟悉低壓、小功率電源開發; 熟悉模擬電路設計、硬件研發和產品測試工作經驗。 薪資可談; 學歷要求:統招本科及其以上。電子工程或自動化專業畢業。 有想法的請發郵件到:129651073 ...…

查看全部問答∨

我買的EK-LM4F120XL板寄給了別人怎么辦?

在TI買的EK-LM4F120XL - Stellaris&reg; LM4F120 LaunchPad 板。Ship Date: 11/19/2012 前天發了個查詢,今天給我回了郵件,給了快遞號(Shipped FedEx# is  876383869337),但一查,簽收了 誰幫我寫個回信啊,我的 ...…

查看全部問答∨

基于單片機信號發生器頻率可調問題

基于單片機的智能信號發生器波形頻率可調范圍為1HZ-500KHZ,請問一下這用51或者52系列可以實現嗎?怎么實現?雖然有點水的問題,但是還是希望能回答…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 长宁区| 日土县| 苍溪县| 德钦县| 漳平市| 大渡口区| 怀集县| 铜川市| 大庆市| 桃园市| 邢台县| 新化县| 维西| 宁都县| 高阳县| 尉氏县| 华亭县| 山阴县| 铜鼓县| 平凉市| 昭苏县| 涟水县| 吉首市| 邵东县| 遂川县| 娄烦县| 奉贤区| 柘城县| 石渠县| 石阡县| 临洮县| 定襄县| 固阳县| 富民县| 昆明市| 大新县| 凤山市| 西盟| 榕江县| 天门市| 余干县|