0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何進(jìn)行多個(gè)定時(shí)器主從級(jí)聯(lián)同步輸出詳細(xì)配置示例說明

茶話MCU ? 來源:未知 ? 2019-02-03 12:27 ? 次閱讀

有些應(yīng)用場(chǎng)合,我們需要使用多個(gè)定時(shí)器主從級(jí)聯(lián),然后讓各個(gè)定時(shí)器同時(shí)啟動(dòng)并做同頻同相的PWM波形輸出。要完成這個(gè)功能,有時(shí)發(fā)現(xiàn)實(shí)現(xiàn)起來似乎并沒有那么順暢,這里基于STM32F1系列芯片做個(gè)配置示例。之所以選擇STM32F1芯片主要是考慮到有部分人使用STM32F1芯片并基于標(biāo)準(zhǔn)庫做開發(fā),那么,我這里就Cube庫和標(biāo)準(zhǔn)庫給出兩套相關(guān)主從配置的示例代碼,供有需要的人參考。

在調(diào)試驗(yàn)證過程中我選擇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é)是必不可少的】,各類定時(shí)器從模式控制寄存器描述部分往往有定時(shí)器內(nèi)部觸發(fā)連接表格。我們要看的是下面這個(gè)表格:

結(jié)合上面定時(shí)器內(nèi)部觸發(fā)連接表格,讓四個(gè)定時(shí)器建立如下主從級(jí)聯(lián)關(guān)系。

基本原理是這樣的【實(shí)際上是結(jié)合上圖看圖說話】:

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)又作為TIM4的觸發(fā)信號(hào),連接到TIM4的內(nèi)部觸發(fā)輸入端,觸發(fā)啟動(dòng)TIM4. 在所有定時(shí)器使用相同時(shí)鐘源、相同時(shí)基參數(shù)配置的前提下,同時(shí)輸出多路完美同頻同相的PWM波形,像下面的樣子。【我為了截圖方便,圖形來自于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)庫的跟定時(shí)器主從配置相關(guān)代碼如下【關(guān)于時(shí)基配置和PWM輸出配置這里就沒放進(jìn)來了。重點(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ù)器的工作就好,并開啟各ARR/CCR寄存器的預(yù)取功能。

二、上面是基于STM32F1標(biāo)準(zhǔn)庫有關(guān)定時(shí)器主從配置的參考配置代碼,如果是基于CubeMx配置工具來配置的話,參照下面配置操作后即可生成相關(guān)配置代碼?!局鲝呐渲藐P(guān)注紅色方框內(nèi)的配置】

TIM1的相關(guān)主從配置:

TIM2的相關(guān)主從配置:

TIM3的相關(guān)主從配置:

TIM4的相關(guān)主從配置:

同樣,在用戶代碼里只需開啟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)配置好了,也就是說要注意用戶代碼中的那幾行代碼的先后順序??傊WC一點(diǎn),在啟動(dòng)定時(shí)器時(shí)所有定時(shí)器的初始化工作都要已經(jīng)完成,不能啟動(dòng)后才去做初始化,不然會(huì)導(dǎo)致計(jì)數(shù)和輸出不同步。

其實(shí),即使使用CubeMx進(jìn)行配置,也會(huì)面臨各種從模式的選擇問題,關(guān)于各種定時(shí)器從模式的特征和用法,以及定時(shí)器觸發(fā)信號(hào)內(nèi)容請(qǐng)自行查看手冊(cè)或相關(guān)資料進(jìn)一步閱讀了解,帶著問題去查看資料會(huì)更有效率些。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5214

    瀏覽量

    215870
  • STM32
    +關(guān)注

    關(guān)注

    2277

    文章

    10951

    瀏覽量

    359233
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3259

    瀏覽量

    115909

原文標(biāo)題:多個(gè)定時(shí)器同步輸出的主從配置示例

文章出處:【微信號(hào):stmcu832,微信公眾號(hào):茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32定時(shí)器同步啟動(dòng)示例及應(yīng)用提醒

    我們有時(shí)會(huì)利用STM32片內(nèi)的多個(gè)TIMER進(jìn)行級(jí)聯(lián),實(shí)現(xiàn)同步啟動(dòng)。不過有人會(huì)遇到?jīng)]法同步啟動(dòng)的情況;或者說基于相同的
    的頭像 發(fā)表于 11-09 10:49 ?6002次閱讀
    STM32<b class='flag-5'>定時(shí)器</b><b class='flag-5'>同步</b>啟動(dòng)<b class='flag-5'>示例</b>及應(yīng)用提醒

    stm32通用定時(shí)器是如何進(jìn)行工作的

    stm32定時(shí)器有哪幾種?stm32通用計(jì)時(shí)的特點(diǎn)有哪些呢?stm32通用定時(shí)器是如何進(jìn)行工作的?
    發(fā)表于 11-23 07:57

    CubeMX的定時(shí)器級(jí)聯(lián)配置

    原理級(jí)聯(lián)配置方法方法簡介與分析方法簡介步進(jìn)電機(jī)的轉(zhuǎn)速是由輸入的PWM頻率所決定的,步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)角度是由輸入的PWM的脈沖數(shù)所決定的,由于需要對(duì)步進(jìn)電機(jī)到轉(zhuǎn)速和轉(zhuǎn)動(dòng)角度都進(jìn)行控制,所以分別使用兩個(gè)
    發(fā)表于 01-06 07:00

    AT32F4xx定時(shí)器同步級(jí)聯(lián)模式

    AT32F4xx定時(shí)器同步級(jí)聯(lián)模式展示3個(gè)TMR之間的級(jí)聯(lián)同步模式。
    發(fā)表于 10-27 06:17

    程序式八通道級(jí)聯(lián)定時(shí)器

    程序式八通道級(jí)聯(lián)定時(shí)器
    的頭像 發(fā)表于 08-10 23:04 ?2819次閱讀
    程序式八通道<b class='flag-5'>級(jí)聯(lián)</b><b class='flag-5'>定時(shí)器</b>

    如何使用STM32F4進(jìn)行定時(shí)器中斷的實(shí)驗(yàn)程序資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用STM32F4進(jìn)行定時(shí)器中斷的實(shí)驗(yàn)程序資料說明。
    發(fā)表于 03-06 08:00 ?22次下載
    如何使用STM32F4<b class='flag-5'>進(jìn)行</b><b class='flag-5'>定時(shí)器</b>中斷的實(shí)驗(yàn)程序資料<b class='flag-5'>說明</b>

    單片機(jī)進(jìn)行定時(shí)器編程的詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)進(jìn)行定時(shí)器編程的詳細(xì)資料說明
    發(fā)表于 04-18 17:27 ?2次下載
    單片機(jī)<b class='flag-5'>進(jìn)行</b><b class='flag-5'>定時(shí)器</b>編程的<b class='flag-5'>詳細(xì)</b>資料<b class='flag-5'>說明</b>

    使用51單片機(jī)進(jìn)行定時(shí)器初值的計(jì)算詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)進(jìn)行定時(shí)器初值的計(jì)算詳細(xì)資料說明包括了:一、10MS定時(shí)器
    發(fā)表于 08-29 17:29 ?1次下載
    使用51單片機(jī)<b class='flag-5'>進(jìn)行</b><b class='flag-5'>定時(shí)器</b>初值的計(jì)算<b class='flag-5'>詳細(xì)</b>資料<b class='flag-5'>說明</b>

    使用51單片機(jī)進(jìn)行定時(shí)器計(jì)數(shù)示例的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)進(jìn)行定時(shí)器計(jì)數(shù)示例的程序免費(fèi)下載。
    發(fā)表于 06-05 17:51 ?2次下載
    使用51單片機(jī)<b class='flag-5'>進(jìn)行</b><b class='flag-5'>定時(shí)器</b>計(jì)數(shù)<b class='flag-5'>示例</b>的程序免費(fèi)下載

    STM32通用定時(shí)器的單脈沖示例詳解

    基于學(xué)習(xí)的目的,詳細(xì)講解關(guān)于標(biāo)準(zhǔn)外設(shè)庫中的定時(shí)器的 17 個(gè)示例項(xiàng)目函數(shù)文件。本次介紹 OnePulse。
    發(fā)表于 07-01 08:00 ?10次下載
    STM32通用<b class='flag-5'>定時(shí)器</b>的單脈沖<b class='flag-5'>示例</b>詳解

    什么是SysTick定時(shí)器?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的詳細(xì)資料說明

    什么是SysTick定時(shí)器?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的詳細(xì)資料說明主要內(nèi)容包括了:Systick原理和配置方法,ALIENTEK 延時(shí)函數(shù)delay講解
    發(fā)表于 01-02 08:00 ?3次下載
    什么是SysTick<b class='flag-5'>定時(shí)器</b>?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的<b class='flag-5'>詳細(xì)</b>資料<b class='flag-5'>說明</b>

    STM32F103C8T6 16位定時(shí)器級(jí)聯(lián)為32位定時(shí)器

    為什么使用STM32F1定時(shí)器級(jí)聯(lián),主要是因?yàn)槟承?duì)于計(jì)時(shí)要求高的場(chǎng)合,而STM32F1單片機(jī)16位的定時(shí)器最多計(jì)數(shù)65535,那么很明顯us級(jí)別的計(jì)時(shí)只能維持6.5535ms,有時(shí)候解算過程可能
    發(fā)表于 01-17 09:34 ?16次下載
    STM32F103C8T6 16位<b class='flag-5'>定時(shí)器</b><b class='flag-5'>級(jí)聯(lián)</b>為32位<b class='flag-5'>定時(shí)器</b>

    工程師筆記|高精度定時(shí)器同步功能

    多個(gè)定時(shí)器,多個(gè)定時(shí)器之間可以單獨(dú)工作,也可以進(jìn)行同步,且高精度定時(shí)器還能與片上的其他
    的頭像 發(fā)表于 11-22 18:15 ?1736次閱讀

    利用通用定時(shí)器輸出PWM(附示例驅(qū)動(dòng)直流電機(jī))

    上一節(jié)講述了時(shí)鐘樹和基本定時(shí)器配置方法,本節(jié)先介紹通用定時(shí)器和基本定時(shí)器的差異,然后粗略講述PWM波原理,然后講述如何配置通用
    發(fā)表于 04-03 14:56 ?0次下載
    利用通用<b class='flag-5'>定時(shí)器</b><b class='flag-5'>輸出</b>PWM(附<b class='flag-5'>示例</b>驅(qū)動(dòng)直流電機(jī))

    詳解CKS32F107xx系列的定時(shí)器同步功能

    我們將圍繞定時(shí)器同步功能概述展開,并以其中一種功能為例——將定時(shí)器2給定時(shí)器3當(dāng)預(yù)分頻,最終級(jí)聯(lián)
    的頭像 發(fā)表于 11-26 17:51 ?640次閱讀
    詳解CKS32F107xx系列的<b class='flag-5'>定時(shí)器</b><b class='flag-5'>同步</b>功能