日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內不再提示

應用筆記 | STM32使用DMA產生PWM時波形異常分析

STM32單片機 ? 來源:未知 ? 2023-09-22 17:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

29761040-5926-11ee-939d-92fbcf53809c.gif

關鍵字:回調函數,HAL庫

目錄預覽

1.前言

2.實驗

3.使用實例

4.小結

01 前言

有客戶反饋,使用STM32F4的TIM2結合DMA,產生的PWM波形不符合預期,但是相同的配置使用在TIM3上,得到的PWM波形就是符合預期的。其代碼和配置都是從F1移植過來的,在F1上使用TIM2是沒有問題的,對于F4的TIM2發(fā)生的問題,客戶一直沒有找到根本原因。

02

實驗

根據客戶的反饋,我們進行了實驗。

硬件:STM32F401RE-NUCLEO

在STM32CubeMX中,將TIM2和TIM3所有參數均做相同的配置,其中配置DMA兩端均為halfword長度。

2981025c-5926-11ee-939d-92fbcf53809c.png

29a89e48-5926-11ee-939d-92fbcf53809c.png

生成代碼,并定義兩個數組如下圖所示:

29c57252-5926-11ee-939d-92fbcf53809c.png

在主函數中開啟Timer。

29e214a2-5926-11ee-939d-92fbcf53809c.png

我們可以發(fā)現,實驗結果如客戶反饋的,TIM2輸出的PWM是不正確的,TIM3輸出的PWM是正確的。

2a022026-5926-11ee-939d-92fbcf53809c.png

03 分析

我們的實驗中,TIM2和TIM3的配置是完全一樣的,即使傳輸相同的數據,得到的PWM波形也是不同的。為此我們比較了TIM2和TIM3的硬件屬性,可以很容易查看出,TIM2的計數器是32bit的,而TIM3的計數器是16bit的。

我想我們已經知道答案了,TIM2的計數器是32bit的,但是我們配置的DMA是halfword長度,這在AHB總線上解析數據時產生了非預期的結果。在調試界面我們也能看到,當問題發(fā)生時,TIM2的CCR1竟然比ARR的值要大,或者出現異常值,所以出現異常波形。

2a1fdee0-5926-11ee-939d-92fbcf53809c.png

根本原因在于,對于大部分STM32系列,主設備基于AHB外設進行尋址是不支持byte/half-word傳輸的,總線會強制將數據轉化為32bit傳送到總線上,這就是為什么我們看到CCR1的高半字和低半字的值是相同的原因。

當我們將TIM2的DMA外設端修改為word長度,并將內存數組定義為32bit,再次實驗,可以發(fā)現PWM的波形就是正常的了:

2a36b39a-5926-11ee-939d-92fbcf53809c.png

2a666b44-5926-11ee-939d-92fbcf53809c.png

2a79522c-5926-11ee-939d-92fbcf53809c.png

04 小結

因為F103上沒有32bit計數器的Timer,所以客戶在F103上并沒有出現類似的問題。在使用DMA訪問經過AHB轉APB的橋接外設時,我們要注意DMA對外設的訪問寬度配置問題。

完整內容請點擊“閱讀原文”下載原文檔。


原文標題:應用筆記 | STM32使用DMA產生PWM時波形異常分析

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


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

    關注

    6078

    文章

    45593

    瀏覽量

    674004
  • PWM
    PWM
    +關注

    關注

    116

    文章

    5894

    瀏覽量

    226729
  • STM32
    +關注

    關注

    2313

    文章

    11195

    瀏覽量

    374756

原文標題:應用筆記 | STM32使用DMA產生PWM時波形異常分析

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    LAT1185+一個地址未對齊引起的 HardFault 異常用筆記

    客戶在使用 STM32G070 的時候,KEIL MDK 為編譯工具,當編譯優(yōu)化選項設置為Level0 的時候,程序會出現 Hard Fault 異常,而當編譯優(yōu)化選項設置為 Level1 的時候
    發(fā)表于 01-11 17:28 ?0次下載

    LAT1189+Timer 結合 DMA 2D 通道實現不同波形輸出應用筆記

    TIM 來定時切換輸出正弦波或固定電平。使用 TIM 輸出 PWM 產生正弦波形時,需要結合 GPDMA 來實現。在 STM32U5 系列中,GPDMA 共有 16 個獨立通道,其中
    發(fā)表于 01-11 17:25 ?0次下載

    LAT1202+TIM DMA burst 輸出變頻 PWM 波形用筆記

    客戶需要 MCU 輸出一組變頻的 PWM 波形來控制外圍器件,并且不同頻率脈沖的個數也不同。STM32U5 芯片擁有 TIM1/TIM8 高級定時器,還有通用定時器TIM2/TIM3/TIM4
    發(fā)表于 01-11 17:22 ?0次下載

    STM32G474 HRTIME PWM 丟波問題分析與解決

    STM32G474 中包含了針對數字電源應用的高精度定時器(HRTIMER),客戶在應用該定時器產生 PWM 時,發(fā)現 PWM 的輸出出現了“丟波”現象,本文對該問題進行
    發(fā)表于 01-04 13:47 ?0次下載

    哪些場景適合使用DMA

    : 模數轉換器(ADC)采集數據: 當ADC連續(xù)采樣時,通常會產生大量數據。使用DMA可以將ADC轉換結果直接傳輸到內存中的數組,而不需要CPU每次讀取ADC數據寄存器。這樣可以避免CPU被頻繁
    發(fā)表于 11-12 07:13

    SPI主機/從機接收發(fā)送都開啟DMA通信

    和發(fā)送;SPI 作為從機時,接收和發(fā)送同時開啟 DMA 進行數據接收和發(fā)送。 注:本應用筆記對應的代碼是基于雅特力提供的V2.x.x 板級支持包(BSP)而開發(fā),對于其他版本BSP,需要注意使用上
    發(fā)表于 09-10 16:56

    什么是“電壓暫降”?CET中電技術供配電異常信息捕捉及故障診斷分析裝置

    為解決這一難點,CET中電技術研發(fā)的供配電異常信息捕捉及故障診斷分析裝置,具有2MHz/s高速瞬態(tài)捕捉和波形記錄功能,可捕捉0.5us±4kV快速電壓瞬態(tài)并記錄波形,這意味著產品能在0
    的頭像 發(fā)表于 08-28 14:49 ?1059次閱讀
    什么是“電壓暫降”?CET中電技術供配電<b class='flag-5'>異常</b>信息捕捉及故障診斷<b class='flag-5'>分析</b>裝置

    STM32多通道FFT運算異常的原因?怎么解決?

    問題報告:STM32多通道FFT運算異常 報告人:XXX日期:2025年X月X日硬件平臺:STM32F407VGT6開發(fā)環(huán)境:STM32CubeMX + KeilCMSIS-DSP庫版
    發(fā)表于 06-19 06:27

    六步方波驅動波形異常的原因?

    能夠轉起來,但是波形卻很不正常。波形是某一個狀態(tài)時,某一根相線對地的電壓波形(黃色線)。青色線是此狀態(tài)是,其他半橋的下橋臂MOS的G極波形。 與標準的方波驅動
    發(fā)表于 06-17 07:58

    定時器使用DMA突發(fā)傳輸功能時,傳入指針從常量數組改為變量數組后,傳輸功能異常的原因?

    用的是STM32H743開發(fā)板。 代碼如下: static const uint32_t s_tim_dma[] = {1600, 0x00000000, 500}; //定義為const
    發(fā)表于 06-17 06:29

    定時器使用DMA突發(fā)傳輸功能時,傳入指針從常量數組改為變量數組后,傳輸功能異常的原因?

    用的是STM32H743開發(fā)板。 代碼如下: static const uint32_t s_tim_dma[] = {1600, 0x00000000, 500}; //定義為const
    發(fā)表于 06-16 07:17

    定時器使用DMA突發(fā)傳輸功能時,傳入指針從常量數組改為變量數組后,傳輸功能異常的原因?

    用的是STM32H743開發(fā)板。 代碼如下: static const uint32_t s_tim_dma[] = {1600, 0x00000000, 500}; //定義為const
    發(fā)表于 06-12 07:10

    STM32H743定時器使用DMA突發(fā)傳輸功能時,傳入指針從常量數組改為變量數組后,傳輸功能異常,為什么?

    用的是STM32H743開發(fā)板。 代碼如下: static const uint32_t s_tim_dma[] = {1600, 0x00000000, 500}; //定義為const
    發(fā)表于 06-10 06:57

    GPDV6624C應用筆記1.0版

    電子發(fā)燒友網站提供《GPDV6624C應用筆記1.0版.pdf》資料免費下載
    發(fā)表于 06-06 17:20 ?0次下載

    FX3圖傳過程中異常停止的原因?

    還可以正常讀寫數據,只有Thread0出現了異常。 4. 日志文件 您可以在附加的日志文件中找到 Bus Hound 軟件捕獲的異常數據。 您能幫忙分析一下為什么Thread0的
    發(fā)表于 05-19 08:00
    大化| 揭阳市| 浮梁县| 高清| 江口县| 玛沁县| 巫山县| 淅川县| 河南省| 龙里县| 九台市| 城固县| 咸宁市| 饶平县| 贵德县| 鹤壁市| 礼泉县| 于田县| 徐汇区| 安康市| 怀柔区| 淳化县| 公安县| 苏州市| 同仁县| 社旗县| 门源| 获嘉县| 遂溪县| 彰武县| 巨野县| 渑池县| 那曲县| 浑源县| 中西区| 木兰县| 藁城市| 于田县| 滨州市| 霍州市| 望江县|