問(wèn)題背景
客戶需要使用 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 波形切換功能。
產(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ù)正弦波形
PWM 濾波輸出
小結(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,則可得到多種不同波形。