有些應(yīng)用場(chǎng)合,我們需要使用多個(gè)定時(shí)器主從級(jí)聯(lián),然后讓各個(gè)定時(shí)器同時(shí)啟動(dòng)并做同頻同相的PWM波形輸出。要完成這個(gè)功能,有時(shí)發(fā)現(xiàn)實(shí)現(xiàn)起來(lái)似乎并沒(méi)有那么順暢,這里基于STM32F1系列芯片做個(gè)配置示例。之所以選擇STM32F1芯片主要是考慮到有部分人使用STM32F1芯片并基于標(biāo)準(zhǔn)庫(kù)做開(kāi)發(fā),那么,我這里就Cube庫(kù)和標(biāo)準(zhǔn)庫(kù)給出兩套相關(guān)主從配置的示例代碼,供有需要的人參考。
在調(diào)試驗(yàn)證過(guò)程中我選擇STM32F103 Nucleo板,主芯片為STM32F103RB.將片內(nèi)定時(shí)器TIM1/TIM2/TIM3/TIM4四個(gè)定時(shí)器主從首尾相連,同時(shí)啟動(dòng)并要求四個(gè)定時(shí)器輸出同頻同相信號(hào)。
先查看STM32F1參考手冊(cè)相關(guān)章節(jié)【這個(gè)環(huán)節(jié)是必不可少的】,各類(lèi)定時(shí)器從模式控制寄存器描述部分往往有定時(shí)器內(nèi)部觸發(fā)連接表格。我們要看的是下面這個(gè)表格:
結(jié)合上面定時(shí)器內(nèi)部觸發(fā)連接表格,讓四個(gè)定時(shí)器建立如下主從級(jí)聯(lián)關(guān)系。
基本原理是這樣的【實(shí)際上是結(jié)合上圖看圖說(shuō)話】:
TIM1工作在主模式,TIM4工作在從模式,TIM2和TIM3處于雙角色,既做主又做從。其中TIM2/TIM3/TIM4的從模式都配置在觸發(fā)從模式,即Trigger Slave Mode.
TIM1的定時(shí)器使能操作作為觸發(fā)輸出[TRGO]觸發(fā)TIM2并使能TIM2的計(jì)數(shù)器,同時(shí)TIM2的定時(shí)器使能操作又作為觸發(fā)輸出信號(hào)連接到TIM3,并觸發(fā)TIM3的定時(shí)器啟動(dòng)。同樣,TIM3的定時(shí)器使能信號(hào)又作為T(mén)IM4的觸發(fā)信號(hào),連接到TIM4的內(nèi)部觸發(fā)輸入端,觸發(fā)啟動(dòng)TIM4. 在所有定時(shí)器使用相同時(shí)鐘源、相同時(shí)基參數(shù)配置的前提下,同時(shí)輸出多路完美同頻同相的PWM波形,像下面的樣子。【我為了截圖方便,圖形來(lái)自于IDE的邏輯分析儀模擬效果】
這里的配置要點(diǎn),就是軟件只需使能TIM1的計(jì)數(shù)器,其它定時(shí)器的計(jì)數(shù)器靠觸發(fā)信號(hào)啟動(dòng)并保持同步計(jì)數(shù)。這里只用到定時(shí)器的使能信號(hào)作為觸發(fā)輸出[TRGO]并連到下一級(jí)從模式定時(shí)器。當(dāng)然可以作為觸發(fā)輸出的信號(hào)很多,讀者可以進(jìn)一步查看相關(guān)資料。
一、基于stm32F1標(biāo)準(zhǔn)庫(kù)的跟定時(shí)器主從配置相關(guān)代碼如下【關(guān)于時(shí)基配置和PWM輸出配置這里就沒(méi)放進(jìn)來(lái)了。重點(diǎn)關(guān)注這幾個(gè)定時(shí)器的主從配置】:
我們?cè)谔砑佑脩魬?yīng)用代碼時(shí),要注意的一點(diǎn)就是TIM2/TIM3/TIM4的計(jì)數(shù)器不必、也不可手動(dòng)啟動(dòng),我們只需手動(dòng)使能TIM1計(jì)數(shù)器的工作就好,并開(kāi)啟各ARR/CCR寄存器的預(yù)取功能。
二、上面是基于STM32F1標(biāo)準(zhǔn)庫(kù)有關(guān)定時(shí)器主從配置的參考配置代碼,如果是基于CubeMx配置工具來(lái)配置的話,參照下面配置操作后即可生成相關(guān)配置代碼。【主從配置關(guān)注紅色方框內(nèi)的配置】
TIM1的相關(guān)主從配置:
TIM2的相關(guān)主從配置:
TIM3的相關(guān)主從配置:
TIM4的相關(guān)主從配置:
同樣,在用戶代碼里只需開(kāi)啟TIM2/TIM3/TIM4的相關(guān)PWM輸出功能,不要軟件使能它們?nèi)齻€(gè)定時(shí)器的計(jì)數(shù)器。配置好TIM1的PWM輸出功能后,只需軟件使能TIM1的計(jì)數(shù)器,令其產(chǎn)生觸發(fā)輸出,讓4個(gè)定時(shí)器同步計(jì)數(shù)并做PWM輸出。
關(guān)于上面4個(gè)定時(shí)器實(shí)現(xiàn)同頻同相輸出的主從配置主要就這些內(nèi)容,用戶程序里只需使能第一個(gè)主定時(shí)器的計(jì)數(shù)器工作,其它定時(shí)器的工作全靠觸發(fā)從模式觸發(fā)啟動(dòng)。另外,在啟動(dòng)第一個(gè)主定時(shí)器的時(shí)候,其它從定時(shí)器一定都已經(jīng)配置好了,也就是說(shuō)要注意用戶代碼中的那幾行代碼的先后順序。總之,保證一點(diǎn),在啟動(dòng)定時(shí)器時(shí)所有定時(shí)器的初始化工作都要已經(jīng)完成,不能啟動(dòng)后才去做初始化,不然會(huì)導(dǎo)致計(jì)數(shù)和輸出不同步。
其實(shí),即使使用CubeMx進(jìn)行配置,也會(huì)面臨各種從模式的選擇問(wèn)題,關(guān)于各種定時(shí)器從模式的特征和用法,以及定時(shí)器觸發(fā)信號(hào)內(nèi)容請(qǐng)自行查看手冊(cè)或相關(guān)資料進(jìn)一步閱讀了解,帶著問(wèn)題去查看資料會(huì)更有效率些。
-
PWM
+關(guān)注
關(guān)注
114文章
5181瀏覽量
213807 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355743 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3246瀏覽量
114720
原文標(biāo)題:多個(gè)定時(shí)器同步輸出的主從配置示例
文章出處:【微信號(hào):stmcu832,微信公眾號(hào):茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論