STM32高速脈衝發波方案

2021-10-03 01:27:50 字數 936 閱讀 5022

對於步進電機,脈衝頻率一般在幾千hz到幾十千hz左右,但是對於伺服電機,由於其轉速高,解析度高,其要求的脈衝頻率可以高達幾百千hz甚至高到幾兆hz。此外對於多軸運動控制器,還需要同時發出多路高頻率的脈衝波形。如何讓微控制器發出高頻率的高速脈衝,有以下幾種方法:

1)使用定時器溢位中斷,定時中斷裡翻轉io口電平來產生方波。

優點:實現簡單,對硬體要求不高。

缺點:不適合高速脈衝波形,而且脈衝解析度也不高。

2)使用pwm方式,通過改變pwm週期暫存器的值來改變週期,從而發出頻率可變的方波。

優點:可以輸出高速脈衝。

缺點:乙個定時器只能輸出一路脈衝,而且脈衝數量不可控制。

3)使用定時器的輸出比較模式,設定輸出比較匹配時翻轉

io口,並開啟輸出比較中斷,

在中斷中裝載下一次比較值。

優點:可以輸出高速脈衝,並且脈衝數量可以控制。

缺點:進入中斷頻繁,增加

cpu負擔,一旦電機多,這種方法消耗

mcu資源嚴重。

由於上述幾種方法都不適合用來產生多路高速脈衝,故本方案使用

dma+pwm

結合的方式來產生多路高速脈衝。對於

stm32

系列mcu

,存在多路

dma通道。

dma允許外設和記憶體之間直接進行資料訪問而不需要

cpu的干預。在記憶體陣列裡配置一串設定好的頻率值,然後設定相應的

dma通道,將對應的定時器設定成

pwm模式,然後將

dma通道和定時器通道進行關聯。則使能

dma和定時器通道以後,記憶體陣列中的這串頻率值會傳送給定時器通道,控制定時器通道自動產生頻率可變的

pwm波形。這個發波原理用程式流程圖如下所示。

stm32 定製PWM脈衝個數

stm32 hal庫有兩個pwm中斷 函式 void hal tim pwm pulsefinishedcallback tim handletypedef htim pwm脈衝在非阻塞模式下完成 void hal tim pwm pulsefinishedhalfcpltcallback tim ...

STM32的單脈衝模式實現精確個數脈衝

我們在做嵌入式產品的開發過程中,有時需要輸出指定數目的脈衝。實現它的方法較多,這裡介紹一種利用 stm32定時器的單脈衝模式來實現的方法。stm32定時器的單脈衝輸出功能,其實是定時器輸出比較功能的乙個特殊應用。即讓定時器在某個事件觸發後的一段時間產生指定脈寬的單脈衝訊號。計數器的啟動通常可由從模式...

stm32採集脈衝訊號 隨機脈衝訊號採集卡的設計

在雷達 聲納及工業控制領域中的故障監測系統中,往往需要採集雷達 聲納的回波訊號或故障監測系統中的故障訊號。由於這些訊號是隨機出現的,並且這些訊號的幅度 脈寬及形狀相差較大。有些訊號脈寬可能很窄,有的可能較寬,且占空比不均勻。若採用傳統的固定取樣速率採集方式則不能滿足實時處理要求。因為,對窄脈衝取樣,...