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

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

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

3天內不再提示

PWM輸出第一個脈沖寬帶異常的話題

茶話MCU ? 來源:ST MCU 信息交流 ? 2020-05-14 09:27 ? 次閱讀

我們在使用STM32定時器做PWM輸出過程中,當借助示波器或邏輯分析儀查看波形時,有時會發現輸出的第一個PWM脈沖跟后續的輸出脈沖不一樣。比方像下面的輸出波形,第一個脈沖的高電平要寬于所有其它后續脈沖。

對于這種情況,有些應用是不太在乎的,但有些應用場合可能就不能接受。那這個問題是怎么產生的?有沒有辦法解決?

產生這個現象的原因簡單點說就是在于定時器比較輸出模塊的工作與定時器計數單元的工作具有相對獨立性。使能比較通道的輸出功能的操作與使能計數器的操作有個時間差,其長短往往跟用戶處理代碼有關。

我們知道,STM32的高級定時器或通用定時器,可以大致看成由四個模塊組成,分別是主從控制模塊、時基單元、輸入捕捉模塊、輸出比較模塊。下面截圖是STM32F4系列高級定時器TIM1的功能框圖的一部分,這里沒有將定時器的主從模塊截取進來,只保留了時基單元、輸入捕捉單元、輸出比較單元。

這三個單元既可以相互配合協調工作,也可以各自獨立工作。比方說,輸出比較單元的工作并不要求時基單元的計數器工作,換言之,即使計數器不被開啟計數,輸出比較單元依然可以根據默認配置或用戶的有關輸出配置而發揮作用。

我們不妨結合一個具體實例來看下。假設定時器TIM1的計數模式選擇向上計數模式,讓通道CH1按照PWM1模式的規則實現PWM輸出。配置好ARR和CCR1,極性選擇高有效,即OC輸出與OCRef參考信號保持同相。

對于定時器的初始化,我們一般會先對時基單元的相關參數做配置,比如時鐘源、ARR,PSC等,然后對比較輸出功能做配置和使能。當完成比較輸出的配置及使能后,即使此時沒有使能時基單元的計數器,比較輸出單元就發揮作用了,即它會結合比較輸出配置和CNT與CCR的比較結果在OC端輸出相應電平。

根據上述配置,若CCR大于計數器CNT的值時OC端輸出高電平,否則輸出低電平。若用戶沒有專門對CNT寄存器進行賦值,芯片復位后,它的默認值就是0,顯然CCR的值要大于此時的CNT的值,自然此時OC端就輸出高電平。如果此時計數器還未被開啟,這個高電平就會保持到計數器被啟動,并延申到后續的PWM輸出動作中。即這個高電平會跟第一個PWM脈沖的輸出連在一起。若剛好碰到第一個PWM脈沖首先是輸出高電平,這就導致第一個脈沖的高電平寬度要寬于后面其它所有PWM脈沖的。

下圖第1處乃通道OC功能配置完成被使能的時間點,第2處乃計數器被啟動時間點。

在跟上述相同模式和極性條件下,有沒有辦法消除第一個脈沖的多余寬度呢?

辦法是有的。既然OC通道被使能后,其輸出由CCR與CNT的比較結果和PWM模式決定,這時我們可以考慮在使能OC通道之前手動將CNT的值進行修改,讓它等于ARR或0xffff【若是32位計數器就是0xffffffff】,此時CNT的值不可能會小于用戶配置的CCR值,就這樣通過改變CCR與CNT的比較結果達到改變OC端輸出電平之目的。

比方,如果你用STM32標準庫寫的話,你可以在下面紅圈的那個地方加一句:【arr對應著時基單元中ARR寄存器的值】

參照上面相同定時器配置【向上計數模式、PWM1模式、極性選擇高有效】,下面基于Cube庫使用STM32F4的TIM1的通道2進一步做個驗證測試。

使用CubeMx配置完成生成初始化代碼,需添加的用戶代碼比較簡單。如下圖所示。其中方框里的延時函數代碼是用來模擬比較輸出使能與使能計數器兩個操作間的間隔,以便觀察效果。

基于上述代碼,我們通過示波器可以看到第一個脈沖明顯寬于其它后續PWM脈沖。【如下圖所示】

在上面代碼的基礎上,我們在使能CH2比較輸出功能的代碼前添加一句修改CNT寄存器的語句,令其值等于ARR或等于計數器的滿量程值。下圖中橢圓圈內的代碼。【若把CNT值改成等于ARR的值,效果也一樣】

然后再進行測試,第一個脈沖也就不再異常了。【如下圖所示】

最后小結下,這個現象只有在使能定時器通道的比較輸出操作與使能計數器操作存在較為明顯的時差時才可能發現,而且它還跟所選擇的PWM模式有關,上面只是針對向上計數模式、PWM1模式做了分析和分享,當涉及其它應用模式時可具體問題具體分析,只要弄清原因了也就不難靈活應對。

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

    關注

    114

    文章

    5196

    瀏覽量

    214369
  • STM32
    +關注

    關注

    2270

    文章

    10915

    瀏覽量

    356764
  • 定時器
    +關注

    關注

    23

    文章

    3254

    瀏覽量

    115075

原文標題:PWM輸出第一個脈沖寬帶異常的話題

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ADS1274用DRDY+TDM輸出模式下,讀到的第一個字節是無效的,為什么?

    今天調試中發現問題,1274在用DRDY+TDM輸出模式下,讀到的第一個字節是無效的! 配置是4通道,在DRDY下降沿產生后,等待5us(采樣率25K,即間隔40us)給出SPI
    發表于 01-08 08:17

    ADS1299在DAISY-CHAIN模式下只能配置第一個AD嗎,那后面幾個都是要怎么配置寄存器,都和第一個樣嗎?

    DAISY-CHAIN模式下,每個AD能使用自己的內部時鐘么?(不是SPI的SCLK),還是要必須第一個AD使用內部時鐘,然后通過CLK口輸送到其他剩余的AD的CLK口作為外部時鐘使用。如果是這樣的話,會有條高頻
    發表于 12-20 06:47

    DAC8734只能把第一個接收到的數字數據輸出,有哪些原因導致的呢?

    一個發送的數據時序沒問題。但DAC8734只能把第一個接收到的數字數據輸出,我用的是TI公司自己的DAC8734EVM。可能有哪些原因導致的呢?是上電順序的原因嗎?
    發表于 12-19 09:17

    pwm與spwm波,載波、參考波與輸出波形的關系

    存在著密切的關系。 PWM波的基本原理與關系 1. PWM波的基本原理 PWM種利用微處理器的數字信號
    的頭像 發表于 08-14 16:58 ?2593次閱讀

    PWM信號產生的原理及方式

    PWM脈沖寬度調制,Pulse Width Modulation)信號產生的原理及方式是涉及電子技術和控制理論的重要話題。以下將從
    的頭像 發表于 08-12 17:23 ?3272次閱讀

    PLC輸出pwm信號怎么看頻率

    PWM信號的基本概念 脈沖寬度調制(PWM) :PWM種對模擬信號進行數字控制的方法。它
    的頭像 發表于 08-08 15:32 ?1262次閱讀

    與屏幕起發送的第一個UART數據時出現初始崩潰,但僅在第一次閃存時出現,為什么?

    =0x00000000, depc=0x0 000000 ets 2013-01-8,第一個原因:2,開機模式:(1,7) ets 2013-01-8,第一個原因:4,開機模式:(1,7)
    發表于 07-09 07:39

    請問STM32F103如何輸出指定PWM脈沖數?

    ,最后1/4plsCnt勻減速; PWM輸出采用定時器的通道,比如TIM2_CH1; 能不能讓輸出
    發表于 05-09 08:08

    聊聊關于TIMER事件觸發中斷的響應話題

    情況是這樣的,現在使用STM32G4系列的TIM8,工作在中心對齊計數,單脈沖PWM模式,使用內部系統時鐘做時鐘源,計數時不做分頻,即PSC=0。CH1做PWM輸出
    的頭像 發表于 04-28 09:44 ?588次閱讀
    聊聊<b class='flag-5'>一</b><b class='flag-5'>個</b>關于TIMER事件觸發中斷的響應<b class='flag-5'>話題</b>

    f446rct6在使用dma控制pwm占空比時,pwm波形異常的原因?

    需要更新數據時,啟動次dma傳輸 現象:pwm波的頻率,占空比沒有問題,但是在啟動dma傳輸的第一個或第二波形,經常會 出現
    發表于 04-09 07:45

    TIM_PWM+DMA輸出不同占空比的單脈沖,為什么第三數據總是第一個輸出

    使用TIM_PWM + DMA,DMA傳輸長度為3,即順序輸出3不同占空比的單脈沖(10%,20%,50%),三
    發表于 04-03 07:23

    求助,用CubeMX配置占空比30%的PWM輸出第一個波形不準確是為什么?

    我用的是G0的芯片配置,通過抓波發現第一個波形永遠與我配置的占空比不準確,但是除了第一個周期不準確外,后面的都沒問題。
    發表于 03-18 07:55

    STM32F103VET6的PWM輸出,設置空閑態為低電平,在低電平剎車時出現異常短暫脈沖的原因?

    單通道PWM輸出時(設定低電平時間為600us,設定空閑狀態為低電平),在PWM低電平500us時,來了剎車信號,發現
    發表于 03-18 07:45

    需要生成50%占空比方波,門控555第一脈沖過長怎么辦?

    之前我的設計實例“該怎么讓門控555非穩態多諧振蕩器順利得到使用?”解決了傳統拓撲的555非穩態電路在啟動時由RESET引腳門控從振蕩關閉到振蕩開啟時產生的第一個脈沖過長的問題。
    發表于 02-15 09:00 ?3267次閱讀
    需要生成50%占空比方波,門控555<b class='flag-5'>第一</b><b class='flag-5'>脈沖</b>過長怎么辦?

    世界上第一個石墨烯半導體的“石墨烯”究竟是什么?

    有媒體報道稱有研究團隊創造了世界上第一個由石墨烯制成的功能半導體(Functional Graphene Semiconductor)。
    的頭像 發表于 01-23 11:26 ?1316次閱讀
    主站蜘蛛池模板: 在线色视频网站| 亚洲一级色片| 天天射天天舔| 久久五月网| 婷婷综合七月激情啪啪| 亚洲成a人一区二区三区| 黄色录像大全| 亚洲视频福利| 国产91色综合久久免费分享| 欧美三级视频| 色视频在线观看免费| 69堂在线观看国产成人| 酒色影院| 操人网站| 久久国产精品免费| 失禁h啪肉尿出来高h男男| 伊人网综合在线视频| 福利片免费一区二区三区| gav久久| 国产一区在线播放| 美脚连裤袜老师正在播放| 人人射人人射| 色国产精品| 四虎新地址4hu 你懂的| 亚洲欧美日韩另类精品一区二区三区| 欧美性色xo影院在线观看| 成人丁香| 222网站高清免费观看| 能直接看黄的网站| 欧美专区欧美吧| 国产精品久久久香蕉| 国产成人乱码一区二区三区| 亚洲国产成人在人网站天堂| 亚洲黄色三级网站| 人与牲动交xxxxbbbb| 国产国产人免费人成免费视频| 国产三级在线观看免费| 国产毛片一区二区三区精品| 国产精品国产三级国产在线观看 | 中文字幕一二三四区2021| 又黄又湿又爽|