女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

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

茶話MCU ? 來(lái)源:茶話MCU ? 2023-11-09 10:49 ? 次閱讀

我們有時(shí)會(huì)利用STM32片內(nèi)的多個(gè)TIMER進(jìn)行級(jí)聯(lián),實(shí)現(xiàn)同步啟動(dòng)。不過有人會(huì)遇到?jīng)]法同步啟動(dòng)的情況;或者說(shuō)基于相同的配置,某次可以成功,下次再來(lái)又不行了;或者說(shuō)同樣的芯片、同樣的代碼,別人的可以,而自己卻不行云云。所謂不行、不成功就是指基于同步啟動(dòng)后,主從TIMER的PWM輸出相位肉眼可見的不同步,明顯存在啟動(dòng)時(shí)間差。

我這里不妨先以STM32G4芯片內(nèi)TIM1/TIM2/TIM3為例來(lái)演示下實(shí)現(xiàn)過程。看看到底能否實(shí)現(xiàn),會(huì)不會(huì)碰到無(wú)法同步的情形。如果有,可否解決。

根據(jù)該系列參考手冊(cè)有關(guān)TIMER內(nèi)部互聯(lián)關(guān)系圖可知TIM1/TIM2/TIM3就可以建立起主從關(guān)系。下圖便是其中的一部分TIMER信號(hào)互聯(lián)觸發(fā)關(guān)系圖。

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

我將TIM1/TIM2/TIM3按照下面的方式前后主從級(jí)聯(lián)。

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

TIM1的觸發(fā)輸出TRGO作為TIM2的觸發(fā)輸入【ITR0】,TIM2的觸發(fā)輸出TRGO作為TIM3的觸發(fā)輸入【ITR1】,其中TIM2/TIM3均配置在Trigger從模式。至于TIM1和TIM2的觸發(fā)輸出【TRGO】信號(hào)均選擇各自計(jì)數(shù)器的使能動(dòng)作,即對(duì)定時(shí)器的TIMx_CR1@CEN位置1。對(duì)于處在Trigger從模式的定時(shí)器,外來(lái)觸發(fā)信號(hào)具有對(duì)TIMER計(jì)數(shù)器使能的同等效果。TIM3的TRGO不必關(guān)注,因?yàn)門IMER級(jí)聯(lián)應(yīng)用時(shí),TRGO信號(hào)是給下一級(jí)TIMER用的。

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

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

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

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

利用CubeMx完成配置后,基于STM32 HAL庫(kù)添加用戶代碼進(jìn)行驗(yàn)證測(cè)試。經(jīng)測(cè)試,發(fā)現(xiàn)3路輸出同步與否 跟 3個(gè)定時(shí)器的初始化代碼順序有明顯的關(guān)系。

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

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

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

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

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

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

現(xiàn)在3個(gè)TIMER,初始化配置代碼擺放先后順序共6種組合,我把6種組合的實(shí)現(xiàn)結(jié)果集中在下面表格里一起來(lái)看。

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

我們發(fā)現(xiàn)上面6種組合中,僅表格里最后一組可以實(shí)現(xiàn)完美同步輸出,符合預(yù)期。

也就是說(shuō),只有初始化時(shí)遵循先主后從的配置順序才可能實(shí)現(xiàn)完美同步啟動(dòng)。

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

在正確的配置順序下,我們不妨看看啟動(dòng)后三個(gè)定時(shí)器的計(jì)數(shù)情況:【下圖是兩次隨機(jī)暫停程序讀到的3個(gè)計(jì)數(shù)器的值,見紅線下劃線標(biāo)示的】

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

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

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

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

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

這樣調(diào)整后,每次暫停程序運(yùn)行時(shí),三個(gè)計(jì)數(shù)器的值總是保持高度一致,不差分毫。

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

到此,我們也順便看看像下面級(jí)聯(lián)的情形,主從級(jí)聯(lián),從級(jí)并列多個(gè)定時(shí)器被同一觸發(fā)信號(hào)觸發(fā)。

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

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

具體到這里,TIM1的觸發(fā)輸出同時(shí)接到TIM2/TIM3/TIM4的內(nèi)部觸發(fā)輸入。內(nèi)部信號(hào)接法見上圖。

我們照樣使用cubeMx配置4個(gè)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

完成配置后,添加用戶代碼、稍加整理 。注意各定時(shí)器的初始化順序,必須按照先主后從的順序進(jìn)行,同級(jí)并聯(lián)的無(wú)所謂先后。至于各定時(shí)器的啟動(dòng)函數(shù)順序,原則上要求跟初始化順序反過來(lái),即按照先從后主的順序來(lái)啟動(dòng)。

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

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

顯然,在初始計(jì)數(shù)值相同情況下,主從定時(shí)器的計(jì)數(shù)值相差1個(gè)定時(shí)外設(shè)時(shí)鐘,這點(diǎn)跟上面的測(cè)試是一致的。另外,基于一個(gè)觸發(fā)信號(hào)下的同級(jí)定時(shí)器沒有計(jì)數(shù)差值。

總的說(shuō)來(lái),STM32芯片內(nèi)多個(gè)TIMER實(shí)現(xiàn)同步啟動(dòng)完全可以實(shí)現(xiàn),而且可以做到很好的同步,配置也簡(jiǎn)單。通常使用計(jì)數(shù)器的使能信號(hào)作為觸發(fā)信號(hào)。應(yīng)用中最常見的問題莫過于定時(shí)器初始化順序不當(dāng),記得按照先主后從的順序進(jìn)行,否則會(huì)導(dǎo)致無(wú)法實(shí)現(xiàn)整體同步啟動(dòng)及預(yù)期輸出,這里特作提醒。

審核編輯:湯梓紅

聲明:本文內(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)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    459

    文章

    52119

    瀏覽量

    435596
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    116

    文章

    5353

    瀏覽量

    217902
  • STM32
    +關(guān)注

    關(guān)注

    2289

    文章

    11006

    瀏覽量

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

    關(guān)注

    23

    文章

    3285

    瀏覽量

    117113
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    定時(shí)器的使用方法 MM32主/從定時(shí)器同步與精準(zhǔn)定時(shí)操作實(shí)例

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

    STM32F1通用定時(shí)器示例詳解--TIM15_Compleme

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

    STM32F1通用定時(shí)器示例講解_Timebase

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

    stm32定時(shí)器中斷程序

    STM32定時(shí)器是個(gè)強(qiáng)大的模塊,定時(shí)器使用的頻率也是很高的,定時(shí)器可以做一些基本的定時(shí),還可以做PWM輸出或者輸入捕獲功能。 以下是進(jìn)行
    發(fā)表于 10-12 16:59 ?1.4w次閱讀

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

    有些應(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)似乎并沒有那么順暢,這里基于STM32F1系列芯片做
    的頭像 發(fā)表于 02-03 12:27 ?4.6w次閱讀
    如何進(jìn)行多個(gè)<b class='flag-5'>定時(shí)器</b>主從級(jí)聯(lián)<b class='flag-5'>同步</b>輸出詳細(xì)配置<b class='flag-5'>示例</b>說(shuō)明

    關(guān)于STM32定時(shí)器觸發(fā)SPI逐字收發(fā)之應(yīng)用示例

    STM32定時(shí)器觸發(fā)SPI逐字收發(fā)之應(yīng)用示例
    的頭像 發(fā)表于 01-14 16:35 ?5936次閱讀

    基于STM32定時(shí)器捕獲測(cè)量脈寬的應(yīng)用示例

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

    [STM32]通用定時(shí)器的使用

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

    STM32定時(shí)器-基本定時(shí)器

    目錄定時(shí)器分類基本定時(shí)器功能框圖講解基本定時(shí)器功能時(shí)鐘源計(jì)數(shù)時(shí)鐘計(jì)數(shù)自動(dòng)重裝載寄存
    發(fā)表于 11-23 18:21 ?32次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>定時(shí)器</b>-基本<b class='flag-5'>定時(shí)器</b>

    STM32——高級(jí)定時(shí)器、通用定時(shí)器、基本定時(shí)器的區(qū)別

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

    STM32定時(shí)器學(xué)習(xí)---基本定時(shí)器

    STM32F1系列的產(chǎn)品,除了互聯(lián)網(wǎng)產(chǎn)品外,工作8個(gè),3種定時(shí)器,其中一種就是基本定時(shí)器。那么STM32單片機(jī)的基本定時(shí)器如何操作以及編程呢
    發(fā)表于 12-02 14:06 ?28次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>定時(shí)器</b>學(xué)習(xí)---基本<b class='flag-5'>定時(shí)器</b>

    ???STM32之玩轉(zhuǎn)定時(shí)器TIMX???

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

    STM32各類系列定時(shí)器概覽

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

    定時(shí)器定時(shí)啟動(dòng)信號(hào)特點(diǎn)

    定時(shí)器定時(shí)啟動(dòng)信號(hào)特點(diǎn)? 定時(shí)器是一種常用的計(jì)時(shí),可以在指定的時(shí)間后發(fā)出信號(hào)。它們?cè)诟鞣N電器、儀器和控制系統(tǒng)中被廣泛應(yīng)用。
    的頭像 發(fā)表于 10-24 11:49 ?1233次閱讀

    STM32H7芯片系列中定時(shí)器同步啟動(dòng)并輸出PWM波形的實(shí)現(xiàn)方法

    本文主要研究了STM32H7芯片系列中定時(shí)器同步啟動(dòng)并輸出PWM波形的實(shí)現(xiàn)方法。
    的頭像 發(fā)表于 10-24 14:56 ?2761次閱讀
    <b class='flag-5'>STM32</b>H7芯片系列中<b class='flag-5'>定時(shí)器</b><b class='flag-5'>同步</b><b class='flag-5'>啟動(dòng)</b>并輸出PWM波形的實(shí)現(xiàn)方法