在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32定時器同步啟動示例及應用提醒

茶話MCU ? 來源:茶話MCU ? 2023-11-09 10:49 ? 次閱讀

我們有時會利用STM32片內的多個TIMER進行級聯,實現同步啟動。不過有人會遇到沒法同步啟動的情況;或者說基于相同的配置,某次可以成功,下次再來又不行了;或者說同樣的芯片、同樣的代碼,別人的可以,而自己卻不行云云。所謂不行、不成功就是指基于同步啟動后,主從TIMER的PWM輸出相位肉眼可見的不同步,明顯存在啟動時間差。

我這里不妨先以STM32G4芯片內TIM1/TIM2/TIM3為例來演示下實現過程。看看到底能否實現,會不會碰到無法同步的情形。如果有,可否解決。

根據該系列參考手冊有關TIMER內部互聯關系圖可知TIM1/TIM2/TIM3就可以建立起主從關系。下圖便是其中的一部分TIMER信號互聯觸發關系圖。

93ebfe7c-7eaa-11ee-939d-92fbcf53809c.png

我將TIM1/TIM2/TIM3按照下面的方式前后主從級聯。

940b22ca-7eaa-11ee-939d-92fbcf53809c.png

TIM1的觸發輸出TRGO作為TIM2的觸發輸入【ITR0】,TIM2的觸發輸出TRGO作為TIM3的觸發輸入【ITR1】,其中TIM2/TIM3均配置在Trigger從模式。至于TIM1和TIM2的觸發輸出【TRGO】信號均選擇各自計數器的使能動作,即對定時器的TIMx_CR1@CEN位置1。對于處在Trigger從模式的定時器,外來觸發信號具有對TIMER計數器使能的同等效果。TIM3的TRGO不必關注,因為TIMER級聯應用時,TRGO信號是給下一級TIMER用的。

使用CubeMx對STM32G431進行配置。配置過程中將主從模式控制位MSM使能,具體參考下面配置。【注:3個定時器的時基參數及PWM配置都一樣。未對計數時鐘做分頻。最后希望輸出3路完全同頻同相的波形。】

94467fc8-7eaa-11ee-939d-92fbcf53809c.png

9468bf0c-7eaa-11ee-939d-92fbcf53809c.png

947ff03c-7eaa-11ee-939d-92fbcf53809c.png

利用CubeMx完成配置后,基于STM32 HAL庫添加用戶代碼進行驗證測試。經測試,發現3路輸出同步與否 跟 3個定時器的初始化代碼順序有明顯的關系。

94ab6708-7eaa-11ee-939d-92fbcf53809c.png

比如,基于上面初始配置順序的3路輸出就沒有做到同步啟動,貌似互不理睬。

94cd9f4e-7eaa-11ee-939d-92fbcf53809c.png

同樣,基于上面初始配置順序的3路輸出也沒有做到完美同步啟動,中間那路明顯異類。

94e7ee08-7eaa-11ee-939d-92fbcf53809c.png

然而,基于上面初始化順序的3路輸出倒是同步完美。

現在3個TIMER,初始化配置代碼擺放先后順序共6種組合,我把6種組合的實現結果集中在下面表格里一起來看。

9510f442-7eaa-11ee-939d-92fbcf53809c.png

我們發現上面6種組合中,僅表格里最后一組可以實現完美同步輸出,符合預期。

也就是說,只有初始化時遵循先主后從的配置順序才可能實現完美同步啟動。

95387562-7eaa-11ee-939d-92fbcf53809c.png

在正確的配置順序下,我們不妨看看啟動后三個定時器的計數情況:【下圖是兩次隨機暫停程序讀到的3個計數器的值,見紅線下劃線標示的】

954ddd26-7eaa-11ee-939d-92fbcf53809c.png

我們可以清晰地看到任意兩次暫停得到的三個計數器的值,兩兩主從定時器的計數值相差1個定時器外設時鐘單位,注意是TIMER外設時鐘,并不是計數時鐘,具體到這里就是1us/170。【因此刻沒有對時鐘源分頻,計數時鐘剛好等于TIMER外設時鐘】

957a4e56-7eaa-11ee-939d-92fbcf53809c.png

一般來講,主從間的這1個TIMER外設時鐘的延時不該對應用構成影響,若覺得有影響,大概率是您選錯芯片了,或許該選個主頻更高的。何況當對計數時鐘做分頻后,計數器往往沒法感覺和區分這個細小延時的。當然,實在有強迫癥或其它想法,如果計數時鐘跟TIMER外設時鐘相同,即未做分頻前提下,我們還可以通過修改計數器初始值保證啟動后保持相同計數值或預期值。比方,在正確初始配置順序下,啟動前將三個計數器的初始值稍作調整,見下圖紅線方框里的代碼。

959626d0-7eaa-11ee-939d-92fbcf53809c.png

這樣調整后,每次暫停程序運行時,三個計數器的值總是保持高度一致,不差分毫。

提醒:剛才通過調整計數初值實現徹底的計數器同步計數僅限于計數時鐘源沒有做分頻的前提下,若計數時鐘有被分頻是不需要這么做的,也不能這么做。因為那1個主從啟動硬件延時是跟著外設時鐘走的,不是跟著計數時鐘走的。當計數時鐘被分頻后,計數器往往感受不到那個延時了,顯然分頻系數越大越感覺不到主從間的那個延時。如果此時手動額外在計數器初值上加1或加2就弄巧成拙了,本來可以忽略的延時被你這么一加反而加大延時了。當然,為產生啟動相差而有意調整計數初始值又是另外一回事了。

到此,我們也順便看看像下面級聯的情形,主從級聯,從級并列多個定時器被同一觸發信號觸發。

95c1dde8-7eaa-11ee-939d-92fbcf53809c.png

95dbfdc2-7eaa-11ee-939d-92fbcf53809c.png

具體到這里,TIM1的觸發輸出同時接到TIM2/TIM3/TIM4的內部觸發輸入。內部信號接法見上圖。

我們照樣使用cubeMx配置4個TIMER。

9600a8a2-7eaa-11ee-939d-92fbcf53809c.png

962585c8-7eaa-11ee-939d-92fbcf53809c.png

9643114c-7eaa-11ee-939d-92fbcf53809c.png

966796ac-7eaa-11ee-939d-92fbcf53809c.png

完成配置后,添加用戶代碼、稍加整理 。注意各定時器的初始化順序,必須按照先主后從的順序進行,同級并聯的無所謂先后。至于各定時器的啟動函數順序,原則上要求跟初始化順序反過來,即按照先從后主的順序來啟動。

運行代碼,可以看到4個TIMER輸出的PWM輸出同步得很完美。同樣,我們也可以通過隨機暫停程序查看4個定時器的計數值的情況。下圖就是任意時刻暫停程序后得到的4個計數器的數據。詳見下面截圖底部表格說明。

9695d4fe-7eaa-11ee-939d-92fbcf53809c.png

顯然,在初始計數值相同情況下,主從定時器的計數值相差1個定時外設時鐘,這點跟上面的測試是一致的。另外,基于一個觸發信號下的同級定時器沒有計數差值。

總的說來,STM32芯片內多個TIMER實現同步啟動完全可以實現,而且可以做到很好的同步,配置也簡單。通常使用計數器的使能信號作為觸發信號。應用中最常見的問題莫過于定時器初始化順序不當,記得按照先主后從的順序進行,否則會導致無法實現整體同步啟動及預期輸出,這里特作提醒。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    455

    文章

    50817

    瀏覽量

    423677
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5186

    瀏覽量

    213957
  • STM32
    +關注

    關注

    2270

    文章

    10900

    瀏覽量

    356054
  • 定時器
    +關注

    關注

    23

    文章

    3248

    瀏覽量

    114821
收藏 人收藏

    評論

    相關推薦

    定時器的使用方法 MM32主/從定時器同步與精準定時操作實例

    。這里所謂某一個條件可以是定時到時、定時器超時、比較成功等許多條件。這種通過一個定時器觸發另一個定時器的工作方式稱為定時器
    發表于 01-11 11:25 ?4396次閱讀

    STM32F1通用定時器示例詳解--TIM15_Compleme

    STM32F1通用定時器示例詳解--TIM15_ComplementarySignals
    發表于 12-07 18:15 ?0次下載

    STM32F1通用定時器示例講解_Timebase

    STM32F1通用定時器示例詳解—Timebase
    發表于 12-07 18:14 ?0次下載

    stm32定時器中斷程序

    STM32定時器是個強大的模塊,定時器使用的頻率也是很高的,定時器可以做一些基本的定時,還可以做PWM輸出或者輸入捕獲功能。 以下是進行
    發表于 10-12 16:59 ?1.3w次閱讀

    如何進行多個定時器主從級聯同步輸出詳細配置示例說明

    有些應用場合,我們需要使用多個定時器主從級聯,然后讓各個定時器同時啟動并做同頻同相的PWM波形輸出。要完成這個功能,有時發現實現起來似乎并沒有那么順暢,這里基于STM32F1系列芯片做
    的頭像 發表于 02-03 12:27 ?4.5w次閱讀
    如何進行多個<b class='flag-5'>定時器</b>主從級聯<b class='flag-5'>同步</b>輸出詳細配置<b class='flag-5'>示例</b>說明

    關于STM32定時器觸發SPI逐字收發之應用示例

    STM32定時器觸發SPI逐字收發之應用示例
    的頭像 發表于 01-14 16:35 ?5577次閱讀

    基于STM32定時器捕獲測量脈寬的應用示例

    我們知道,利用單片機定時器捕獲功能測量脈沖信號寬度及占空比是種很常見的做法。這里以STM32定時器為例來介紹基于其捕獲功能實現對脈寬的測量的思路及過程。 一般來講,使用STM32
    的頭像 發表于 01-02 18:17 ?1.3w次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>定時器</b>捕獲測量脈寬的應用<b class='flag-5'>示例</b>

    [STM32]通用定時器的使用

    STM32的通用定時器定時、輸出PWM功能的使用本次還是使用發光二極管來驗證定時器的使用目錄STM32的通用
    發表于 11-22 19:06 ?24次下載
    [<b class='flag-5'>STM32</b>]通用<b class='flag-5'>定時器</b>的使用

    STM32定時器-基本定時器

    目錄定時器分類基本定時器功能框圖講解基本定時器功能時鐘源計數時鐘計數自動重裝載寄存
    發表于 11-23 18:21 ?31次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>定時器</b>-基本<b class='flag-5'>定時器</b>

    STM32——高級定時器、通用定時器、基本定時器的區別

    STM32——高級定時器、通用定時器、基本定時器的區別
    發表于 11-26 15:21 ?110次下載
    <b class='flag-5'>STM32</b>——高級<b class='flag-5'>定時器</b>、通用<b class='flag-5'>定時器</b>、基本<b class='flag-5'>定時器</b>的區別

    STM32定時器學習---基本定時器

    STM32F1系列的產品,除了互聯網產品外,工作8個,3種定時器,其中一種就是基本定時器。那么STM32單片機的基本定時器如何操作以及編程呢
    發表于 12-02 14:06 ?28次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>定時器</b>學習---基本<b class='flag-5'>定時器</b>

    ???STM32之玩轉定時器TIMX???

    TIM8是STM32的高級定時器,TIM6,TIM7為基本定時器,其他為通用定時器基本定時器TIM6和TIM7
    發表于 12-28 19:08 ?18次下載
    ???<b class='flag-5'>STM32</b>之玩轉<b class='flag-5'>定時器</b>TIMX???

    STM32各類系列定時器概覽

    時鐘源;介紹了如何使用各種可用模式與功能;介紹了如何計算各種配置下的時基;除基本定時器模式外,還介紹了定時器同步序列以及用于電機控制應用的高級功能。本文檔針對各模式提供了典型配置以及使用方法的
    發表于 08-31 10:49 ?0次下載

    定時器定時啟動信號特點

    定時器定時啟動信號特點? 定時器是一種常用的計時,可以在指定的時間后發出信號。它們在各種電器、儀器和控制系統中被廣泛應用。
    的頭像 發表于 10-24 11:49 ?881次閱讀

    STM32H7芯片系列中定時器同步啟動并輸出PWM波形的實現方法

    本文主要研究了STM32H7芯片系列中定時器同步啟動并輸出PWM波形的實現方法。
    的頭像 發表于 10-24 14:56 ?1899次閱讀
    <b class='flag-5'>STM32</b>H7芯片系列中<b class='flag-5'>定時器</b><b class='flag-5'>同步</b><b class='flag-5'>啟動</b>并輸出PWM波形的實現方法
    主站蜘蛛池模板: 久久天天躁夜夜躁狠狠| www.啪啪.com| 欧美色图亚洲自拍| 色综合天天综合网国产成人网| 黄色毛片免费| 欧美午夜精品一区二区三区| 一区二区高清在线观看| 色黄污在线看黄污免费看黄污| 99日精品欧美国产| 欧美com| 四虎影院大全| 337p亚洲精品色噜噜狠狠| 免费在线看视频| 色中文字幕在线| 午夜一区二区在线观看| 亚洲一区二区三区免费视频 | 久久国产成人精品国产成人亚洲| 欧美又粗又长又湿又黄的视频| 性国产精品| 欧美精品一区二区三区视频| 天天影视网天天影网| 免费色黄网站| 精品四虎免费观看国产高清| 国产午夜精品理论片久久影视| 亚洲色图 欧美| 91久久婷婷国产综合精品青草| 91av视频| 口述他拿舌头进去我下面好爽| 久久久美女视频| 婷婷丁香激情五月| 五月停停| 一级片aaa| bt天堂资源种子在线8| 亚洲一区免费在线| 六月婷婷在线| 亚洲女人小便| 男人天堂网址| 亚洲成熟| 一级网站片| 有码日韩| 小泽玛利亚在线观看123|