• 資料介紹
    • 問(wèn)題背景
    • TIM DMA burst
    • 產(chǎn)生 PWM
    • 小結(jié)
  • 資料預(yù)覽
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

LAT1202 TIM DMA burst 輸出變頻 PWM 波形

03/26 09:52
528
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

LAT1202 TIM DMA burst 輸出變頻 PWM 波形

1.02 MB

問(wèn)題背景

客戶需要 MCU 輸出一組變頻的 PWM 波形來(lái)控制外圍器件,并且不同頻率脈沖的個(gè)數(shù)也不同。STM32U5 芯片擁有 TIM1/TIM8 高級(jí)定時(shí)器,還有通用定時(shí)器TIM2/TIM3/TIM4/TIM5 以及 TIM15/TIM16/TIM17。TIM 模塊中,可通過(guò)修改 ARR 寄存器的值來(lái)修改 PWM 的頻率。如果使用 TIM1/TIM8 或者 TIM15/TIM16/TIM17,則可以通過(guò)修改 RCR 與 CCR 寄存器,來(lái)控制脈沖個(gè)數(shù)及占空比。由于要同時(shí)修改多個(gè) TIM 寄存器,需要使用 TIM 的 DMA burst 功能來(lái)實(shí)現(xiàn)此需求。

TIM DMA burst

STM32 片內(nèi)部分 TIMER 在產(chǎn)生單個(gè)定時(shí)器事件情況下可以基于特定硬件機(jī)制觸發(fā)多個(gè) DMA 請(qǐng)求,這樣產(chǎn)生多個(gè)連續(xù)的 DMA 傳輸來(lái)實(shí)現(xiàn)對(duì)多個(gè) TIMER 寄存器的批量訪問(wèn)。這就是所謂的 TIM DMA burst 功能,這里有兩個(gè)專用寄存器:

TIMx_DCR :

DBSS : 觸發(fā) DMA burst 的事件源

DBL : DMA burst 傳輸個(gè)數(shù)

DBA : DMA burst 傳輸?shù)?TIM 寄存器基地址索引

TIMx_DMAR :

TIM DMA Burst 時(shí),DMA 訪問(wèn)此寄存器

產(chǎn)生 PWM

本文使用 TIM1 來(lái)產(chǎn)生 PWM,在 U575 NECLEO 板上測(cè)試,MCU 主頻為 100MHz。

使用兩個(gè)頻率分別對(duì)應(yīng) TIM 寄存器組的值如下:ARR/ RCR/ CCR1

uint32_t pulse1[3] = {1000, 2, 500} ;

uint32_t pulse2[3] = {5000, 1, 2500} ;

即輸出 3 個(gè) pulse1 的脈沖后,再輸出 2 個(gè) pulse2 脈沖,這樣交替輸出。

小結(jié)

使用 TIM DMA burst 功能,結(jié)合 STM32U5 的 GPDMA Linked list 模式及 2D 尋址特性,能靈活的輸出 PWM 波形滿足客戶需求。

資料預(yù)覽

相關(guān)推薦