精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

應(yīng)用筆記 | STM32使用DMA產(chǎn)生PWM時(shí)波形異常分析

STM32單片機(jī) ? 來源:未知 ? 2023-09-22 17:05 ? 次閱讀

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

關(guān)鍵字:回調(diào)函數(shù),HAL庫(kù)

目錄預(yù)覽

1.前言

2.實(shí)驗(yàn)

3.使用實(shí)例

4.小結(jié)

01 前言

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

02

實(shí)驗(yàn)

根據(jù)客戶的反饋,我們進(jìn)行了實(shí)驗(yàn)。

硬件:STM32F401RE-NUCLEO

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

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

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

生成代碼,并定義兩個(gè)數(shù)組如下圖所示:

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

在主函數(shù)中開啟Timer。

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

我們可以發(fā)現(xiàn),實(shí)驗(yàn)結(jié)果如客戶反饋的,TIM2輸出的PWM是不正確的,TIM3輸出的PWM是正確的。

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

03 分析

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

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

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

根本原因在于,對(duì)于大部分STM32系列,主設(shè)備基于AHB外設(shè)進(jìn)行尋址是不支持byte/half-word傳輸?shù)模偩€會(huì)強(qiáng)制將數(shù)據(jù)轉(zhuǎn)化為32bit傳送到總線上,這就是為什么我們看到CCR1的高半字和低半字的值是相同的原因。

當(dāng)我們將TIM2的DMA外設(shè)端修改為word長(zhǎng)度,并將內(nèi)存數(shù)組定義為32bit,再次實(shí)驗(yàn),可以發(fā)現(xiàn)PWM的波形就是正常的了:

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

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

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

04 小結(jié)

因?yàn)镕103上沒有32bit計(jì)數(shù)器的Timer,所以客戶在F103上并沒有出現(xiàn)類似的問題。在使用DMA訪問經(jīng)過AHB轉(zhuǎn)APB的橋接外設(shè)時(shí),我們要注意DMA對(duì)外設(shè)的訪問寬度配置問題。

完整內(nèi)容請(qǐng)點(diǎn)擊“閱讀原文”下載原文檔。


原文標(biāo)題:應(yīng)用筆記 | STM32使用DMA產(chǎn)生PWM時(shí)波形異常分析

文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


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

    關(guān)注

    6023

    文章

    44378

    瀏覽量

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

    關(guān)注

    114

    文章

    5059

    瀏覽量

    212258
  • STM32
    +關(guān)注

    關(guān)注

    2258

    文章

    10828

    瀏覽量

    352546

原文標(biāo)題:應(yīng)用筆記 | STM32使用DMA產(chǎn)生PWM時(shí)波形異常分析

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何通過DMA方式在任意GPIO引腳產(chǎn)生PWM波?

    用定時(shí)器2的通道1的PWM功能,但不產(chǎn)生CH1的實(shí)際輸出。而是在定時(shí)器2的更新回調(diào)函數(shù)和比較回調(diào)函數(shù)里分別置高/置低指定的GPIO引腳。 后來發(fā)現(xiàn),有can接收中斷時(shí),輸出的pwm波形
    發(fā)表于 04-19 06:09

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

    需要更新數(shù)據(jù)時(shí),啟動(dòng)一次dma傳輸 現(xiàn)象:pwm波的頻率,占空比沒有問題,但是在啟動(dòng)dma傳輸?shù)牡谝粋€(gè)或第二個(gè)波形,經(jīng)常會(huì) 出現(xiàn)一個(gè)三角形的奇怪
    發(fā)表于 04-09 07:45

    STM32G070CB TIM1使用DMA 方式來產(chǎn)生PWM不同duty的波形,無法進(jìn)入中斷的原因?

    TIM1使用DMA 方式來產(chǎn)生PWM不同duty 的波形,想監(jiān)控一下DMA 是否完成,但是無法進(jìn)入中斷。以下初始化的配置:(
    發(fā)表于 03-20 08:28

    STM32U575 pwmDMA輸出的波形少一段怎么處理?

    這是我的 DMA 的配置 這是我的PWM配置 上面的波形是F103輸出的波形。 下面的波形是U575輸出的
    發(fā)表于 03-13 06:10

    STM32F407上使用DMA給TIM2的CCR4寫值,高位出現(xiàn)0x64沒有波形產(chǎn)生怎么處理?

    STM32F407上使用DMA給TIM2的CCR4寫值,輸出固定個(gè)數(shù)PWM波個(gè)數(shù)時(shí),遇見了CCR4的高位與低位同時(shí)被寫入相同的值,如圖所示 在DEBUG時(shí)可以看見CCR4的高16位與低16位同時(shí)被賦值了,但是在內(nèi)存中,我只存
    發(fā)表于 03-11 08:04

    STM32U5系列TIMER+DMA+DAC應(yīng)用演示

    有人使用STM32U575芯片的DAC功能。他希望使用TIMER事件觸發(fā)DMA,并通過DMA傳輸內(nèi)存數(shù)據(jù)到DAC輸出寄存器,進(jìn)而產(chǎn)生相應(yīng)的DAC輸出
    的頭像 發(fā)表于 01-24 09:10 ?1333次閱讀
    <b class='flag-5'>STM32</b>U5系列TIMER+<b class='flag-5'>DMA</b>+DAC應(yīng)用演示

    LTC1624 TG、SW波形異常產(chǎn)生的原因?

    項(xiàng)目中使用LTC1624這個(gè)IC,用于24V to 5V@1A,原理圖如下 現(xiàn)在測(cè)試發(fā)現(xiàn) TG 以及 SW引腳的波形異常,黃色為TG、紫色為SW。但是輸出5V是正常的。 請(qǐng)幫忙分析一下為何會(huì)
    發(fā)表于 01-08 07:49

    STM32 DMA傳輸?shù)膯栴}分析

    用戶使用STM32G473RET6芯片,開發(fā)環(huán)境STM32CubeMX+Keil(LL庫(kù))。使用DMA1通道1,在半傳輸中斷和完全傳輸中斷里,拷貝ADC采集的數(shù)據(jù)。在應(yīng)用過程中發(fā)現(xiàn)DMA
    的頭像 發(fā)表于 12-01 09:19 ?2292次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>DMA</b>傳輸?shù)膯栴}<b class='flag-5'>分析</b>

    AT32 PWC應(yīng)用筆記

    AT32 PWC應(yīng)用筆記主要以低功耗為基礎(chǔ)進(jìn)行講解和案例解析。
    發(fā)表于 10-25 06:45

    STM32PWM波形輸出配置的大神總結(jié)

    STM32PWM波形輸出配置的大神總結(jié)
    的頭像 發(fā)表于 10-24 16:00 ?3365次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>PWM</b><b class='flag-5'>波形</b>輸出配置的大神總結(jié)

    【應(yīng)用筆記】觸摸按鍵設(shè)計(jì)要點(diǎn)

    【應(yīng)用筆記】觸摸按鍵設(shè)計(jì)要點(diǎn)
    的頭像 發(fā)表于 10-19 17:58 ?1726次閱讀
    【應(yīng)<b class='flag-5'>用筆記</b>】觸摸按鍵設(shè)計(jì)要點(diǎn)

    使用STM32F101xx和STM32F103xx的DMA控制器

    這篇應(yīng)用筆記描述了怎么使用STM32F101xx 和 STM32F103xx的直接存儲(chǔ)器訪問(DMA)控制器。STM32F101xx和
    發(fā)表于 10-10 08:20

    AN2784應(yīng)用筆記

    這個(gè)應(yīng)用筆記說明了如何使用大容量的STM32F10xxx的FSMC(靈活的靜態(tài)存儲(chǔ)器控制器)驅(qū)動(dòng)一組外部的存儲(chǔ)器。文中首先簡(jiǎn)要地介紹了STM32F10xxx的FSMC控制器,然后給出了包含典型
    發(fā)表于 10-10 07:45

    應(yīng)用筆記 | STM32U575/585 MCU 硬件開發(fā)入門

    應(yīng)用筆記 | STM32U575/585 MCU 硬件開發(fā)入門
    的頭像 發(fā)表于 09-28 18:13 ?3148次閱讀
    應(yīng)<b class='flag-5'>用筆記</b> | <b class='flag-5'>STM32</b>U575/585 MCU 硬件開發(fā)入門

    STM32 TIMER+DMA輸出PWM異常案例的問題解析

    有人使用STM32U575的TIMER加上DMAPWM輸出。具體就是利用某TIMER的一個(gè)通道的比較事件觸發(fā)DMA,通過DMA修改CCR值
    的頭像 發(fā)表于 09-28 09:04 ?6985次閱讀
    <b class='flag-5'>STM32</b> TIMER+<b class='flag-5'>DMA</b>輸出<b class='flag-5'>PWM</b><b class='flag-5'>異常</b>案例的問題解析