1.問題背景
客戶需要 MCU 輸出一組變頻的 PWM 波形來控制外圍器件,并且不同頻率脈沖的個數(shù)也不同。STM32U5 芯片擁有 TIM1/TIM8 高級定時器,還有通用定時器TIM2/TIM3/TIM4/TIM5 以及 TIM15/TIM16/TIM17。
TIM 模塊中,可通過修改 ARR 寄存器的值來修改 PWM 的頻率。如果使用 TIM1/TIM8 或者 TIM15/TIM16/TIM17,則可以通過修改 RCR 與 CCR 寄存器,來控制脈沖個數(shù)及占空比。由于要同時修改多個 TIM 寄存器,需要使用 TIM 的 DMA burst 功能來實現(xiàn)此需求。
2.TIM DMA burst
STM32 片內(nèi)部分 TIMER 在產(chǎn)生單個定時器事件情況下可以基于特定硬件機(jī)制觸發(fā)多個 DMA 請求,這樣產(chǎn)生多個連續(xù)的 DMA 傳輸來實現(xiàn)對多個 TIMER 寄存器的批量訪問。
這就是所謂的 TIM DMA burst 功能,這里有兩個專用寄存器:
TIMx_DCR :DBSS : 觸發(fā) DMA burst 的事件源DBL : DMA burst 傳輸個數(shù) DBA : DMA burst 傳輸?shù)?TIM 寄存器基地址索引
TIMx_DMAR :TIM DMA Burst 時,DMA 訪問此寄存
3.產(chǎn)生 PWM
本文使用 TIM1 來產(chǎn)生 PWM,在 U575 NECLEO 板上測試,MCU 主頻為 100MHz。
使用兩個頻率分別對應(yīng) TIM 寄存器組的值如下:ARR/ RCR/ CCR1
uint32_t pulse1[3] = {1000, 2, 500} ;
uint32_t pulse2[3] = {5000, 1, 2500} ;
即輸出 3 個 pulse1 的脈沖后,再輸出 2 個 pulse2 脈沖,這樣交替輸出。
3.1.1. TIM1 配置
TIM1 配置如下,使能寄存器預(yù)裝載功能。
3.1.2. GPDMA 配置
使用 GPDMA 通道 12 的 linked list 模式,并配置為循環(huán)模式:
Linked List 配置中,創(chuàng)建一個 list queue,并添加兩個 list node,選擇 GPDMA 來執(zhí)行此 list queue,同樣配置為循環(huán)模式,指定循環(huán)起始節(jié)點(diǎn)為 TN1,如下圖。
Linked List 節(jié)點(diǎn)配置中,使用 TIM1 update 事件來產(chǎn)生 DMA 請求,指定 DMA 目的地址為 TIMx_DMAR 寄存器,源地址為 pulse1 數(shù)組地址。TN2 只需將 pulse1 修改為 pulse2即可。
3.1.3. TIM DMA burst
在 CubeMX 生成代碼后,添加以下代碼,將 TIM 與 DMA 通道綁定,并配置TIMx_DCR 寄存器:
3.1.4. 測試結(jié)果
測試結(jié)果如下圖,可以看到兩個頻率的 PWM 波形交替輸出,且脈沖個數(shù)也符合需求:
本篇工程師筆記主要通過在TIM 模塊中,修改 ARR 寄存器的值來修改 PWM 的頻率滿足客戶需要 MCU 輸出一組變頻的 PWM 波形控制外圍器件的需求。
上一篇:基于Gokit3微信寵物屋與機(jī)智云的物聯(lián)網(wǎng)智能家居
下一篇:STM單片機(jī)中的按鍵消抖和FPGA消抖
推薦閱讀最新更新時間:2025-04-23 20:14




設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機(jī)載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實時處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計與實現(xiàn)
- 應(yīng)對機(jī)器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動機(jī)械透射式煙度計研究與實現(xiàn)
- 基于STM32F103的角磨機(jī)開關(guān)磁阻電機(jī)控制器的設(shè)計
- C843592_MSOP-8通用音頻功率放大器驗證板
- 樹莓派pico
- CN0326
- SPX-14570,基于 BME680 的環(huán)境傳感器 (Qwiic) 開發(fā)套件
- 具有 I2C 兼容接口的 LTC4240 緊湊型 PCI 熱插拔控制器的典型應(yīng)用
- MIC23451 的典型應(yīng)用:具有超輕負(fù)載和電源良好的 3MHz、2A 三重同步降壓穩(wěn)壓器
- 使用 ROHM Semiconductor 的 BD49E42G-TR 的參考設(shè)計
- AD8362-EVALZL,基于 AD8362 的評估板,50 Hz 至 3.8 GHz TruPwr 檢測器
- 【美巖電子制作】DC-DC降壓數(shù)字電源設(shè)計
- NCV8130BMX100TCGEVB:NCV8130BMX100TCG 偏置軌 LDO 穩(wěn)壓器演示板
- ST 向大眾市場推出ST4SIM M2M用兼容GSMA的eSIM卡芯片
- STM8S003 上升沿進(jìn)不去外部中斷問題
- 奧托立夫為Nuro的自動駕駛汽車搭載外部安全氣囊 保護(hù)弱勢道路使用者
- 消息稱AMD Threadripper PRO 5000工作站處理器3月發(fā)布
- 三安光電:公司Mini LED芯片已批量供貨客戶
- 2025年中國AI芯片市場規(guī)或達(dá)1740億元,芯片制造環(huán)節(jié)瓶頸突出
- stc89c52引腳圖及引腳功能說明
- OTC2900頻譜分析儀模塊的主要功能及應(yīng)用范圍
- 基于恩智浦MPC5744P的CAN驅(qū)動開發(fā)和測試
- 大眾汽車宣布明年起其所有電動車型全面轉(zhuǎn)向磷酸鐵鋰電池,升級至MEB Plus平臺
- 總產(chǎn)值破2000億,深圳要做“機(jī)器人第一城”?
- 鴻道Intewell操作系統(tǒng) 人形機(jī)器人底層操作系統(tǒng)
- 如何定位國產(chǎn)智駕芯片的終局價值?
- 新一代車規(guī)級數(shù)字功放電感VSAD-T系列 為汽車音響注入高保真基因
- 蜂巢能源快充電池突破:15分鐘充至滿電,提升30%效率
- 整車操作系統(tǒng)何以躋身智能汽車三大件?
- 人形機(jī)器人如何做到“手眼”協(xié)同+“大小腦”協(xié)同?
- 中國電池公司獲英國政府10億英鎊支持!
- 從游戲到智能駕駛,英偉達(dá)有哪些技術(shù)升級?
- Digi-Key KOL視頻來襲~歡迎進(jìn)入MicroPython的奇妙世界
- 福祿克明星款熱像儀全新來襲,搶先免費(fèi)體驗贏好禮
- Mouser 新用戶大禮包:你購物,我5折返E金幣!
- 商業(yè)航空解決方案,賦能互聯(lián)飛行
- 直播已結(jié)束【使用 TI 低成本 MSPM0 MCU 快速開發(fā) – 生態(tài)詳解系列之二】(9:45開始入場)
- 有獎直播:現(xiàn)代電動工具的設(shè)計挑戰(zhàn)與英飛凌解決之道
- 希望一月 愛上EEWORLD——論壇推廣月
- 電機(jī)小課堂 | 單相無刷電機(jī)無感控制,小功率電機(jī)驅(qū)動應(yīng)用中的最佳解決方案
- P7的自動泊車入位有用嗎?
- 意法半導(dǎo)體在功率與控制方面遇到的挑戰(zhàn)
- TUV南德發(fā)布《新能源汽車電池系統(tǒng)全球市場準(zhǔn)入白皮書》
- BSI全新發(fā)布汽車網(wǎng)絡(luò)安全洞察報告
- 人口普查之后,服務(wù)機(jī)器人的應(yīng)用與思考
- 鋰離子電池快充技術(shù)是如何實現(xiàn)的
- 斥資390億,寧德時代一口氣建三個鋰離子電池生產(chǎn)基地
- 128核心+16通道DDR5,飛騰新一代服務(wù)器騰云CPU問市
- 工信部:2021年計劃新建5G基站60萬個以上
- 2020年無晶圓廠全球市場銷售額占比創(chuàng)新高,達(dá)32.9%;
- wince 2440 usb mass storage問題請教!
- WPF程序移植到WINCE的可能性???
- mini 2440學(xué)習(xí),ads1.2調(diào)試到底多重要。
- DSP技術(shù)在汽車定位防盜系統(tǒng)的應(yīng)用及體系結(jié)構(gòu)研究
- 求WDM驅(qū)動開發(fā)學(xué)習(xí)方向
- 關(guān)于micropython uart 通訊
- 請問下2440的啟動問題,網(wǎng)上資料很多,暫時沒找到想要的,麻煩過來幫幫忙,呵呵
- CC1101接收其他433mhz芯片發(fā)射數(shù)據(jù)收不到
- SD卡
- VxWorks下有沒有閱讀pdf或者doc的軟件啊?