當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] STM32看門狗總結(jié)調(diào)原子哥的開發(fā)板一年多,基本上能用,但是對于STM32某些基本外設(shè)的工作機理還不甚明了。借此暑假的機會對各個外設(shè)的功能做一個簡短的總結(jié),在提高自己基礎(chǔ)知識的同時,也給其他同學(xué)提供

STM32看門狗總結(jié)

調(diào)原子哥的開發(fā)板一年多,基本上能用,但是對于STM32某些基本外設(shè)的工作機理還不甚明了。借此暑假的機會對各個外設(shè)的功能做一個簡短的總結(jié),在提高自己基礎(chǔ)知識的同時,也給其他同學(xué)提供一些參考。

先來看門狗部分的內(nèi)容。

看門狗部分內(nèi)容當(dāng)中較難理解的是窗口看門狗,其中窗口值設(shè)置以及如何引發(fā)復(fù)位更是很難搞懂,因此從根本上分析一下窗口看門狗的工作原理,而與其有關(guān)的中斷則略過。

stm32有兩個看門狗,獨立看門狗和窗口看門狗,其實兩者的功能是類似的,只是喂狗的限制時間不同。獨立看門狗有自己獨立的40Khz時鐘,不存在使能問題;而窗口看門狗使用的是PCLK1時鐘,需要先使能時鐘。以下是關(guān)于看門狗的具體說明:

①、獨立看門狗是限制喂狗時間在0-x內(nèi),x由你的相關(guān)寄存器決定。喂狗的時間不能過晚。

②、窗口看門狗,所以稱之為窗口就是因為其喂狗時間是一個有上下限的范圍內(nèi),你可以通過設(shè)定相關(guān)寄存器,設(shè)定其上限時間和下限時間。喂狗的時間不能過早也不能過晚。

顯而易見的是,獨立看門狗比較簡單,容易理解。

這里,主要對窗口看門狗的詳細(xì)含義作具體說明。

看門狗的上窗口就是配置寄存器WWDG->CFR里設(shè)定的W[6:0];下窗口是0x40;當(dāng)窗口看門狗的計數(shù)器在上窗口之外,或是低于下窗口值都會產(chǎn)生復(fù)位。如上圖所講,當(dāng)計數(shù)器的值遞減到0x3f的計數(shù)時間內(nèi)未進行喂狗操作,則會觸發(fā)復(fù)位;其次,如果在計數(shù)器值遞減到配置寄存器WWDG->CFR里設(shè)定的W[6:0]之前進行喂狗操作,也會觸發(fā)復(fù)位。所以,在使用窗口看門狗時,要設(shè)定兩個值,一個就是窗口看門狗的上窗口值,即配置寄存器WWDG->CFR里設(shè)定的W[6:0],另一個就是遞減計數(shù)器的計數(shù)初值。

再結(jié)合上圖中的邏輯關(guān)系分析一下:

如圖中所示標(biāo)號,①③表示與門,②表示非或門;

1、當(dāng)T[6:0]>W[6:0]時,比較器輸出的值是1,如果此時重裝載WWDG_CR,所以③就會輸出1,②的輸出也肯定是1,又因為使能了窗口看門狗,所以WWDG_CR的第7位WDGA也為1,即與門①的輸出是1,此時會觸發(fā)復(fù)位。簡單的概括來說,就是當(dāng)遞減計數(shù)器的值在遞減到上窗口值W[6:0]之前進行喂狗操作(即重裝載WWDG_CR),會觸發(fā)看門狗復(fù)位。

2、當(dāng)T[6:0]的第6位變?yōu)?時,即T[6:0]的值變?yōu)?x3f,此時②的輸出肯定為1,而WDGA也為1,因此①的輸出是1,會觸發(fā)看門狗復(fù)位。簡單的概括來說,就是當(dāng)遞減計數(shù)器的值在到達0x3f時仍未進行喂狗操作(即重裝載WWDG_CR),同樣會觸發(fā)看門狗復(fù)位。

上窗口的值可以只有設(shè)定,7位二進制數(shù)最大只可以設(shè)定為127(0x7f),最小又必須大于其下窗口的0x40,所以其取值范圍為64~127(0x40~0x7f),否則不能保證窗口。

配置寄存器WWDG->CFR寄存器中的[8:7]兩個位的設(shè)置為計數(shù)器設(shè)定時鐘分頻系數(shù),確定這個計數(shù)器可以定時的時間范圍,從而確定窗口的時間范圍。

窗口看門狗的時鐘來自于PCLK1,在時鐘配置中,其頻率為外部時鐘經(jīng)倍頻器后的二分頻時鐘,即為36Mhz,如上圖STM32時鐘樹所示。

窗口看門狗的超時公式如下:

36M時鐘下窗口看門狗的最小最大超時表:

表中數(shù)據(jù)的具體計算如下所示:

①、當(dāng)T[5:0]全部取0時,7位計數(shù)器的值是0x40,此時距離復(fù)位值只能計數(shù)一次,在此時間之內(nèi)必須執(zhí)行喂狗操作,否則觸發(fā)復(fù)位。

從而可知各個WDGTB值下的最小超時時間,如WDGTB=0時,

Twwdg=4096×2^0×1/36(us)=113us,依次可計算出其他WDGTB值下的最小超時時間。

②、當(dāng)T[5:0]全部取1時,7位計數(shù)器的值是0x7f,此時距離復(fù)位值遞減計數(shù)0x40次(0x3f+1),在此時間之內(nèi)執(zhí)行喂狗操作可避免復(fù)位。

從而可知各個WDGTB值下的最大超時時間,如WDGTB=0時,

Twwdg=4096×2^0×64/36(us)=7281.7us,依次可計算出其他WDGTB值下的最大超時時間。




STM32系列的CPU,有多達8個定時器,其中TIM1和TIM8是能夠產(chǎn)生三對PWM互補輸出的高級定時器,常用于三相電機的驅(qū)動,它們的時鐘由APB2的輸出產(chǎn)生。其它6個為普通定時器,時鐘由APB1的輸出產(chǎn)生。

通用定時器的定義:STM32的通用定時器是一個通過可編程預(yù)分頻器(PSC)驅(qū)動的16位自動裝載計數(shù)器(CNT)構(gòu)成。

功用:STM32的通用定時器可以被用于測量輸入信號的脈沖長度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和PWM)等。

分頻系數(shù):決定定時器的時基,即最小定時時間。

定時器的時鐘來源:

從圖中可以看出,定時器的時鐘不是直接來自APB1或APB2,而是來自于輸入為APB1或APB2的一個倍頻器。當(dāng)APB1的預(yù)分頻系數(shù)為1時,這個倍頻器不起作用,定時器的時鐘頻率等于APB1的頻率;當(dāng)APB1的預(yù)分頻系數(shù)為其它數(shù)值(即預(yù)分頻系數(shù)為2、4、8或16)時,這個倍頻器起作用,定時器的時鐘頻率等于APB1的頻率兩倍。

舉一個例子說明。假定AHB=36MHz,因為APB1允許的最大頻率為36MHz,所以APB1的預(yù)分頻系數(shù)可以取任意數(shù)值;

當(dāng)預(yù)分頻系數(shù)=1時,APB1=36MHz,TIM2~7的時鐘頻率=36MHz(倍頻器不起作用);

當(dāng)預(yù)分頻系數(shù)=2時,APB1=18MHz,在倍頻器的作用下,TIM2~7的時鐘頻率=36MHz。

由于APB1不僅給通用定時器提供時鐘,還給其他外設(shè)提供時鐘,因此也體現(xiàn)了APB1rescaler設(shè)計的靈活性。

對自動重裝載寄存器賦值,TIM_Period的大小實際上表示的是需要經(jīng)過TIM_Period次計數(shù)后才會發(fā)生一次更新或中斷。對TIM_Prescaler的設(shè)置,直接決定定時器的時鐘頻率。通俗點說,就是一秒鐘能計數(shù)多少次。比如算出來的時鐘頻率是2000,也就是一秒鐘會計數(shù)2000次,而此時如果TIM_Period設(shè)置為4000,即4000次計數(shù)后就會中斷一次。由于時鐘頻率是一秒鐘計數(shù)2000次,因此只要2秒鐘,就會中斷一次。發(fā)生中斷時間=(TIM_Prescaler+1)*(TIM_Period+1)/FLK。

同樣需要注意的,一進入中斷服務(wù)程序,第一步要做的,就是清除掉中斷標(biāo)志位。以便下次中斷服務(wù)函數(shù)的順利執(zhí)行。

注意:APB1rescaler后得到的是通用定時器的時鐘源,再次基礎(chǔ)上進行TIM_Prescaler的設(shè)置就得到通用定時器具體的時鐘頻率啦。所以小伙伴們千萬不要把文中定時器中經(jīng)常提到的76MHz時鐘以及由(TIM_Prescaler+1)*/FLK計算得到的時鐘頻率搞混淆啦。

當(dāng)然,計數(shù)器的計數(shù)模式比較簡單,這里沒有就其進行詳細(xì)的說明。

今天有同學(xué)問我PWM到底咋工作的?為啥這樣???為啥???直接把我問蒙了。所以今天就來總結(jié)一些通用定時器產(chǎn)生PWM輸出。

①、PWM主要就是控制頻率和占空比的:這兩個因素分別通過兩個寄存器控制:TIMX_ARR和TIMX_CCRX。ARR寄存器就是自動重裝寄存器,也就是計數(shù)器記到這個數(shù)以后清零再開始計,這樣PWM的頻率就是tim_frequency/(TIMX_ARR-1)。在計數(shù)時會不停的和CCRX寄存器中的數(shù)據(jù)進行比較,如果小于的話是高電平或者低電平,計數(shù)值大于CCRX值的話電平極性反相。所以這也就控制了占空比。

②、TIM3-CNT中的數(shù)據(jù)從0計數(shù)到ARR中的值,當(dāng)計數(shù)到TIM3_CCRx接收到的數(shù)據(jù)大小時,由高電平變?yōu)榈碗娖剑?dāng)CNT中的數(shù)值增加到ARR寄存器設(shè)定的值時就自動清零,從0重新開始計數(shù),并產(chǎn)生一個計數(shù)溢出事件,從0計數(shù)到ARR值的這段時間是PWM的周期。設(shè)置CCRx的值用來改變PWM的占空比。

③、TIM3-CNT的值與TIM3_CCRx中的數(shù)據(jù)是自動比較,TIM3-CNT的值與TIM3_CCRx中的數(shù)據(jù)相等時,PWM是自動產(chǎn)生跳變的,此過程是硬件實現(xiàn)的,在原子開發(fā)板的例程中找不到有關(guān)二者進行比較的代碼,所以不要問在軟件中是如何實現(xiàn)的,因為我找了很長時間沒找到。

④端口重映射

為了優(yōu)化64腳或100腳封裝的外設(shè)數(shù)目,可以把一些復(fù)用功能重新映射到其他引腳上。設(shè)置復(fù)用重映射和調(diào)試I/O配置寄存器(AFIO_MAPR)實現(xiàn)引腳的重新映射。這時,復(fù)用功能不再映射到它們的原始分配上。(注意:重定義的引腳是固定的,不是想重定義到哪個引腳就可以到哪個引腳的!重映像一般只適用于100和144腳的封裝!(具體看哪個外設(shè)))。

STM32上有很多I/O口,也有很多的內(nèi)置外設(shè)想I2C,ADC,ISP,USART等,為了節(jié)省引出管腳,這些內(nèi)置外設(shè)基本上是與I/O口共用管腳的,也就是I/O管腳的復(fù)用功能。但是STM32還有一特別之處就是:很多復(fù)用內(nèi)置的外設(shè)的I/O引腳可以通過重映射功能,從不同的I/O管腳引出,即復(fù)用功能的引腳是可通過程序改變的。但這些重映射并不是任意的,只有有些引腳可以重映射.具體哪些引腳stm32參考手冊上的GPIO與AFIO章節(jié)上有。一般是定時器,通信接口等數(shù)字系統(tǒng)的引腳可以重映射,adc,dac,時鐘這種與模擬量有關(guān)的不可以。

簡單的說STM32的IO有3個功能一個是默認(rèn)的,一個是復(fù)用,一個是重映射功能(這個其實也屬于復(fù)用),如果配置成復(fù)用,則將使用第2個功能,如果配置成復(fù)用,同時相應(yīng)的重映射也配置了,則將使用第3個功能。

STM32的部分重映射實例:


輸入捕獲實驗

捕獲是如何實現(xiàn)的?與定時器有什么關(guān)系?它為什么就能夠捕獲到呢?

先入為主:可以利用定時器捕獲某些IO口的高電平脈寬,脈寬時間可以通過串口打印得到。

輸入捕獲模式可以用來測量脈沖寬度或者測量頻率。STM

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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