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

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

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

3天內不再提示

如何利用STM32G474芯片的高精度定時器實現兩對互補輸出

單片機 ? 來源:茶話MC ? 作者:Miler ? 2021-08-23 11:55 ? 次閱讀

有人利用STM32G474芯片高精度定時器實現兩對互補輸出,即用到TIMA和TIMB兩個定時單元分別輸出兩對互補信號

可是他發現兩個定時器單元輸出的同頻PWM波形存在著明顯的相位差,就像下面的截圖一樣。

0440eed8-02a4-11ec-9bcf-12bb97331649.png

但是他希望二者的輸出完全同步且無相位差,那有沒有辦法做到呢?

這是可以的。我們讓HRTIM的定時單元基于某個觸發事件來同步啟動。對于HRTIM來說,可以利用外部觸發輸入信號或通用定時器TIM1的觸發輸出信號來同步HRTIM各定時單元的啟動。這里就如何使用TIM1的觸發輸出作為HRTIM的同步信號讓HRTIM的定時器單元同步啟動做下簡單介紹。

HRTIM的各個單元間的同步操作是通過HRTIM里的Master TIMER進行管理的,所以要實現HRTIM各單元間的同步就必須啟用Master TIMER,顯然,除了啟用TIMA/TIMB外,還得使能Master TIMER。

關于同步配置可以參考下面截圖:

0471b360-02a4-11ec-9bcf-12bb97331649.png

這里對Master TIMER的配置主要是開啟它,讓它能工作,能管理同步事件即可。

經過上面的配置,再對TIMA/TIMB做“同步事件啟動定時器的配置”后,二者就能做到同步啟動了,加上二者配置了相同的PER周期值,這樣就可以輸出如下圖所示的同步同相信號了。

04c8d3a2-02a4-11ec-9bcf-12bb97331649.png

如果說除了TIMA/TIMB的輸出保持同步同相外,還希望中途不時修改周期及占空比且不破壞同相,那又怎么辦呢? 即如何在輸出頻率和占空比可調的情況下仍然保持著兩個定時器的輸出同步呢?

我們可以開啟TIMA或TIMB的更新中斷,在其中任意一個定時器的更新中斷服務程序里同時修改兩個定時器的計數周期值和比較值,并開啟預裝功能,讓參數在下一個溢出更新事件到來時生效,這樣就可以做到既能調整定時器的周期值和比較值,又能保證二者的輸出同步。

下面簡單介紹下實現過程。

Master TIMER的配置沒啥特別的,主要是讓它工作起來,能讓HRTIM的定時單元的同步起作用。TIMA和TIMB的配置這里基本一樣,二者的配置差別主要體現在比較值不一樣而已。

來看看TIMA的相關配置。重點留意下面截圖中下劃線標識的地方。主要配置內容包括設置PER、CMP1的參數,開啟同步啟動、使能預裝功能、啟用TIM更新中斷,對TIMA-TA1/TA2的輸出進行配置。

0504d032-02a4-11ec-9bcf-12bb97331649.png

上面是TIMA的基本配置,因為TIMB的配置跟TIMA的相比,除了CMP值不同外,其它基本一樣,這里就不重復貼圖了。

配置完成后,生成HAL類初始化代碼。然后添加如下用戶代碼。

HAL_HRTIM_WaveformCountStart_IT(&hhrtim1,HRTIM_TIMERID_TIMER_A);//使能TIMA

HAL_HRTIM_WaveformOutputStart(&hhrtim1 , HRTIM_OUTPUT_TA1);

HAL_HRTIM_WaveformOutputStart(&hhrtim1 , HRTIM_OUTPUT_TA2);

HAL_HRTIM_WaveformCountStart_IT(&hhrtim1, HRTIM_TIMERID_TIMER_B); //使能TIMB

HAL_HRTIM_WaveformOutputStart(&hhrtim1 , HRTIM_OUTPUT_TB1);

HAL_HRTIM_WaveformOutputStart(&hhrtim1 , HRTIM_OUTPUT_TB2);

HAL_TIM_Base_Start(&htim1);//讓TIM1產生同步觸發信號

上面的黃色代碼行,基本功能就是開啟TIM1,它的TRGO輸出信號作為HRTIM-TIMA/TIMB的同步啟動信號。如果沒有這行代碼,此時的TIMA/TIMB是不會工作的。

我在TIMA的更新中斷服務程序里修改TIMA/TIMB的PER/CMP的值,查看輸出結果。

extern uint16_t Interrupt_Count;

#define HRTIMReg (HRTIM1-》sTimerxRegs)

void HRTIM1_TIMA_IRQHandler(void)

{

/*USER CODE BEGIN HRTIM1_TIMA_IRQn 0 */

/*USER CODE END HRTIM1_TIMA_IRQn 0 */

HAL_HRTIM_IRQHandler(&hhrtim1,HRTIM_TIMERINDEX_TIMER_A);

/*USER CODE BEGIN HRTIM1_TIMA_IRQn 1 */

Interrupt_Count++;

if(Interrupt_Count 《 20000)

{

HRTIMReg[HRTIM_TIMERINDEX_TIMER_A].PERxR= 0xa000;

HRTIMReg[HRTIM_TIMERINDEX_TIMER_A].CMP1xR= 0x2000;

HRTIMReg[HRTIM_TIMERINDEX_TIMER_B].PERxR= 0xa000;

HRTIMReg[HRTIM_TIMERINDEX_TIMER_B].CMP1xR= 0x3000;

}

else if(Interrupt_Count 《 40000)

{

HRTIMReg[HRTIM_TIMERINDEX_TIMER_A].PERxR= 0x9000;

HRTIMReg[HRTIM_TIMERINDEX_TIMER_A].CMP1xR= 0x4000;

HRTIMReg[HRTIM_TIMERINDEX_TIMER_B].PERxR= 0x9000;

HRTIMReg[HRTIM_TIMERINDEX_TIMER_B].CMP1xR= 0x5000;

}

else

{

HRTIMReg[HRTIM_TIMERINDEX_TIMER_A].PERxR= 0x7000;

HRTIMReg[HRTIM_TIMERINDEX_TIMER_A].CMP1xR= 0x2000;

HRTIMReg[HRTIM_TIMERINDEX_TIMER_B].PERxR= 0x7000;

HRTIMReg[HRTIM_TIMERINDEX_TIMER_B].CMP1xR= 0x5000;

}

}

經過測試,即使修改了兩個定時器單元的計時周期和占空比,二者的同步一直都可以保持得很好。關于這個話題就交流到這里,分享以上內容供有需要的人士參考,祝君好運!

編輯:jq

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

    關注

    23

    文章

    3255

    瀏覽量

    115372
  • CMP
    CMP
    +關注

    關注

    6

    文章

    151

    瀏覽量

    26098
  • Tim
    Tim
    +關注

    關注

    0

    文章

    81

    瀏覽量

    17953

原文標題:STM32高精度定時器定時單元間的同步問題

文章出處:【微信號:aidanpianji,微信公眾號:單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在MSP430?上實現內置振蕩高精度定時器

    電子發燒友網站提供《如何在MSP430?上實現內置振蕩高精度定時器.pdf》資料免費下載
    發表于 09-14 11:10 ?0次下載
    如何在MSP430?上<b class='flag-5'>實現</b>內置振蕩<b class='flag-5'>器</b>的<b class='flag-5'>高精度</b><b class='flag-5'>定時器</b>

    stm32g474 qspi不進dma中斷是怎么回事?

    stm32g474 qspi 不進dma中斷
    發表于 09-13 07:10

    stm32g474的開發板很燙的原因?

    stm32g474的開發板很燙
    發表于 07-24 06:59

    STM32G4系列芯片定時器的延時輸出問題

    有人使用STM32G4系列芯片內部的多個定時器做PWM輸出輸出頻率一樣,占空比也一樣,均為50%。可是,當他中途調整各個
    的頭像 發表于 07-01 09:45 ?1907次閱讀
    <b class='flag-5'>STM32G</b>4系列<b class='flag-5'>芯片</b><b class='flag-5'>定時器</b>的延時<b class='flag-5'>輸出</b>問題

    基于STM32G474的電機控制,如何在sdk上配置使用spwm波?

    基于STM32G474的電機控制,如何在sdk上配置使用spwm波
    發表于 05-30 06:28

    STM32G474的HRTIM和高級定時器除了定時精度上有區別外,還有其它什么區別?

    STM32G474的HRTIM和高級定時器除了定時精度上有區別外,還有其它什么區別?什么情況下只能用HRTIM定時器,而用不了高級
    發表于 05-28 08:15

    STM32G474如何實現帶同步整流管的BUCK電路?

    STM32G474 如何實現帶同步整流管的BUCK電路
    發表于 05-22 07:53

    為什么STM32G474的hrtim里,timerA在使用死區模式后,設置TA1的輸出后無法設置TA2的置位源和復位源?

    為什么STM32G474的hrtim里,timerA在使用死區模式后,設置TA1的輸出后無法設置TA2的置位源和復位源,而timerB在使用死區模式后無法設置Tb2的置位源但可以設置復位源?
    發表于 05-22 06:23

    STM32G474除以0會進錯誤中斷,為什么?

    我的編譯環境為STM32CubeIDE,芯片STM32G474,我發現程序中如果有除以0的操作時,會跑到錯誤中斷中。請問能不能通過設置,可以讓程序不要跑進錯誤中斷,直接等于當前變量類型的最大值
    發表于 04-01 06:32

    STM32G030定時器16 17和1同步輸出如何實現

    STM32G030系列中只有定時器1 16和17三個定時器可以輸出帶死區時間互補pwm,我想實現
    發表于 03-27 06:45

    STM32G4如何利用ADC-DMA對全橋電路實現閉環控制?

    開始接觸STM32G474,用于對一個全橋電路實現閉環控制,里面包括PI控制,準PR控制,和一個相位環;在學習完輸出pwm和ADC-DMA個模塊后無法將
    發表于 03-22 06:40

    stm32f103rct6定時器8的1通道和互補通道仿真的時候沒有輸出是為什么?

    關于stm32f103rct6,采用邏輯分析儀的時候,定時器8的1通道和互補通道仿真的時候沒有輸出
    發表于 03-22 06:28

    如果STM32定時器外接了正交編碼,該剩余通道是否能做PWM輸出呢?

    其實,對于STM32芯片,編碼輸入信號就是定時器的計數時鐘源之一。定時器外接了編碼輸入,若還有剩余通道的話,剩余通道依然可以實現輸入捕獲或
    的頭像 發表于 03-21 09:06 ?1992次閱讀
    如果<b class='flag-5'>STM32</b><b class='flag-5'>定時器</b>外接了正交編碼<b class='flag-5'>器</b>,該剩余通道是否能做PWM<b class='flag-5'>輸出</b>呢?

    Stm32G474 DMA傳輸全部完畢后,需要產生中斷并調運回調函數完成相關操作,如何處理?

    Stm32G474,DMA傳輸全部完畢后,需要產生中斷并調運回調函數完成相關操作。請問我如何處理?沒有看到常規的回調函數(例如這樣的HAL_TIM_PeriodElapsedHalfCpltCallback)
    發表于 03-15 08:26

    STM32G474的DAC4無輸出怎么解決?

    STM32G474 的DAC4采用定時器4觸發dma,OUT1連接到比較5,測試下來 DAC4沒輸出,是配置哪里有問題嗎 定時器4的配置:
    發表于 03-08 07:08
    主站蜘蛛池模板: 一 级 黄 中国色 片 | 国产精品网址你懂的 | 性欧美xx | 亚洲国内精品自在线影视 | 一级全免费视频播放 | 亚洲国产综合人成综合网站00 | 欧美特黄一区二区三区 | 欧美a∨| 种子搜索在线 | 国产精品人成在线播放新网站 | 淫香色香 | 免费中国jlzzjlzz在线播放 | 色3344| 国产欧美精品午夜在线播放 | 久久精品国产免费 | sihu影院永久在线影院 | 寄宿日记在线看 | 久久婷婷是五月综合色狠狠 | 日韩精品一区二区三区免费视频 | 91精品啪国产在线观看免费牛牛 | 免费观看一级特黄欧美大片 | 亚洲一卡二卡在线 | 天天干天天干天天干天天干天天干 | aaa在线观看 | 激情伦成人综合小说 | 中文字幕一区二区三区在线不卡 | 黄色亚洲 | 亚洲欧美日韩动漫 | 8000av在线 | 亚洲天天做日日做天天欢毛片 | 成人网久久 | 天天干视频在线观看 | 97狠狠操| 四虎最新紧急入口 | 天天操天天做 | 拍拍拍拍拍拍拍无挡大全免费 | 欧洲不卡一卡2卡三卡4卡网站 | 六月丁香婷婷激情国产 | 欧美肥穴 | 操日韩| 黄色在线播放视频 |