目錄預(yù)覽
1、問(wèn)題背景
2、產(chǎn)生PWM
3、PWM濾波輸出
4、小結(jié)
01
問(wèn)題背景
客戶(hù)需要使用 MCU 輸出正弦波,但受限于 MCU DAC 數(shù)量不足,建議嘗試使用 PWM加濾波方式產(chǎn)生正弦波。同時(shí)要求正弦波與固定電平交替輸出。因此可用一個(gè) TIM 輸出PWM,同時(shí)用另一個(gè) TIM 來(lái)定時(shí)切換輸出正弦波或固定電平。
使用 TIM 輸出 PWM 產(chǎn)生正弦波形時(shí),需要結(jié)合 GPDMA 來(lái)實(shí)現(xiàn)。在 STM32U5 系列中,GPDMA 共有 16 個(gè)獨(dú)立通道,其中 12-15 通道還具有 2D addressing/ repeat 功能。因此也可以使用一個(gè) TIM 加 GPDMA 的一個(gè) 2D 通道實(shí)現(xiàn) PWM 波形切換功能。
02
產(chǎn)生PWM
本文按以下配置產(chǎn)生 PWM,在 U575 NUCLEO 板測(cè)試:
(1)MCU 主頻:100MHz
(2)PWM 頻率 2MHz(周期 500ns),脈寬可調(diào)范圍 0~50 個(gè)計(jì)數(shù)時(shí)鐘,
(3)每個(gè)正弦波周期(10us)對(duì)應(yīng) 20 個(gè) PWM 脈沖,各 PWM 脈寬用計(jì)數(shù)時(shí)鐘表示分別為:25, 33, 40, 45, 49, 50, 49, 45, 40, 33, 25, 17, 10, 5 , 1 , 0 , 1 , 5 , 10, 17
(4)將步驟 3 中的正弦波重復(fù) 1000 次,對(duì)應(yīng) 10ms 的連續(xù)正弦波形
2.1. STM32CubeMX 生成測(cè)試工程
2.1.1. TIM1 CH1 PWM 配置

圖1. TIM1 CH1 PWM
2.1.2. GPDMA CH12 配置
選用 GPDMA 通道 12,并配置為循環(huán)模式:

圖2. GPDMA CH12
2.1.3. GPDMA Linked List 配置
創(chuàng)建 Linked List Queue,并配置為搭配 GPDMA 2D 功能通道使用。創(chuàng)建兩個(gè)節(jié)點(diǎn),TN1, TN2,并使用循環(huán)模式,指定首個(gè)循環(huán)節(jié)點(diǎn)為 TN1。

圖3. Linked List
TN1 節(jié)點(diǎn)配置,由此節(jié)點(diǎn)結(jié)合 TIM 來(lái)產(chǎn)生 PWM,并濾波成正弦信號(hào):
(1)TIM1 更新事件作為 DMA 請(qǐng)求
(2)使能 2D 功能,一個(gè) block 傳輸完成后,回退到數(shù)組起點(diǎn),重新傳輸
(3)使能 Repeat 功能,重復(fù) block 傳輸 1000 次
首先使能了 TrustZone 架構(gòu),然后將 LPGPIO 映射到了非安全區(qū),并且配置了 DMA 鏈表功能,使用 LPTimer 作為觸發(fā),自動(dòng)地修改 LPGPIO 的寄存器,從而達(dá)到在低功耗模式下,GPIO自動(dòng)切換的功能。但遇到了 LPDMA 的配置問(wèn)題,并且程序無(wú)法跳轉(zhuǎn)到 Non-Secure 工程。

圖4. Linked List Node1
TN2 節(jié)點(diǎn)配置,與 TN1 節(jié)點(diǎn)類(lèi)似,用于切換到第二組數(shù)據(jù)產(chǎn)生第二種波形

圖5. Linked List Node2
2.2. 測(cè)試代碼

GPDMA Linked List 模式執(zhí)行流程

圖6. Linked List 執(zhí)行過(guò)程及期望輸
03
PWM濾波輸出
在 U575 NUCLEO 板上測(cè)試,結(jié)果如下:

圖7. 實(shí)際輸出
從實(shí)測(cè)結(jié)果來(lái)看,濾波后的正弦波頻率,波形持續(xù)時(shí)長(zhǎng)都符合預(yù)期。另外,與通過(guò)額外 TIM 計(jì)時(shí)來(lái)切換 PWM 輸出的方式相比,使用 Linked List repeat 這種方式,正弦波與固定電平輸出之間切換更平滑。

圖8. 額外 TIM 計(jì)時(shí)來(lái)切換 PWM 輸出
04
小結(jié)
通過(guò)使用 GPDMA Linked List 模式,使用 2D addressing repeat 功能,能方便實(shí)現(xiàn)這種多種波形切換的應(yīng)用場(chǎng)景。如 Node1 與 Node2 使用不同的數(shù)據(jù)長(zhǎng)度和重復(fù)次數(shù),則可得到不同時(shí)長(zhǎng)的兩種波形;通過(guò)增加更多 Node,則可得到多種不同波形。
完整內(nèi)容請(qǐng)點(diǎn)擊“閱讀原文”下載原文檔。
原文標(biāo)題:實(shí)戰(zhàn)經(jīng)驗(yàn) | Timer 結(jié)合 DMA 2D 通道實(shí)現(xiàn)不同波形輸出
文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
單片機(jī)
+關(guān)注
關(guān)注
6061文章
44910瀏覽量
646459 -
STM32
+關(guān)注
關(guān)注
2289文章
11010瀏覽量
362165
發(fā)布評(píng)論請(qǐng)先 登錄
移動(dòng)電源EMC整改:認(rèn)證失敗到一次通過(guò)的實(shí)戰(zhàn)經(jīng)驗(yàn)

HT 可視化監(jiān)控頁(yè)面的 2D 與 3D 連線效果

TechWiz LCD 2D應(yīng)用:半透反射式顯示模式仿真
億源通科技OFC 2025展示2D光纖陣列,助力OCS技術(shù)創(chuàng)新
stm32同一個(gè)定時(shí)器不同的通道,可以不同時(shí)的輸出pwm波形嗎?
STM8/STM32 products有2D marking和沒(méi)有2D marking的工藝有差別嗎?
TechWiz LCD 2D應(yīng)用:不同結(jié)構(gòu)下的VT曲線
提升開(kāi)關(guān)電源效率的理論分析與實(shí)戰(zhàn)經(jīng)驗(yàn)

AN-1249:使用ADV8003評(píng)估板將3D圖像轉(zhuǎn)換成2D圖像

利用Sitara AM57x處理器上的處理器SDK實(shí)現(xiàn)工業(yè)機(jī)器視覺(jué)的2D物體識(shí)別

Allegro推出2D霍爾效應(yīng)速度和方向鎖存器
TMAG511x 2D鎖扣的優(yōu)點(diǎn)

2D多鰭FETs的高密度集成,搭臺(tái)引導(dǎo)外延的科技突破!

TMAG511x-Q1 2D 雙通道、高靈敏度、霍爾效應(yīng)鎖存器數(shù)據(jù)表

TMAG511x 2D 雙通道、高靈敏度、霍爾效應(yīng)鎖存器數(shù)據(jù)表

評(píng)論