【江科協-STM32】5. 輸出比較

1. 輸出比較簡介

OC(Output Compare)輸出比較。

輸出比較可以通過CNT(CNT計數器)與CCR寄存器值的關系,來對輸出電平進行置1、置0或翻轉的操作,用于輸出一定頻率和占空比的PWM波形。

:::tip
CNT計數器是正向計數器。它只能正向累加。

CCR是捕獲/比較寄存器,通常是我們給的一個固定值,正如其名,捕獲數值后比較數值,這樣就可以捕獲CNT的數值并進行比較,看是大了、等于還是小了。

TIM輸出比較就是這樣來決定置1、置0或翻轉輸出電平。
:::

每個高級定時器和通用定時器都擁有4個輸出比較通道。

高級定時器的前三個通道額外擁有死區生成和互補輸出的功能。

2. 通用定時器

使用輸入捕獲時,CCR是作為捕獲寄存器;使用輸出比較時,CCR是作為比較寄存器。

請添加圖片描述

3. PWM簡介

PWM(Pulse Width Modulation)是脈沖寬度調制。

在具有慣性的系統中,可以通過對一系列脈沖的寬度進行調制,來等效地獲得所需要的模擬參量,常應用于電機控速等領域。

PWM參數:

  • 頻率 = 1 T s = \frac{1}{T_s} =Ts?1?
  • 占空比 = T o n T s \frac{T_{on}}{T_s} Ts?Ton??
  • 分辨率 = 占空比變化步距

當上面電平時間長一點,下面的短一點的時候,上面的模擬量占主導;反之則是下面的模擬量占主導。

請添加圖片描述

T o n T_{on} Ton?是高電平的時間, T S T_S TS?是一個時鐘周期的時間。 T o n T S \frac{T_on}{T_S} TS?To?n?為占空比,指的是高電平時間占整個周期的比例。用百分比表示。

占空比決定了等效的模擬電壓的大小。占空比越大,等效的模擬電壓就趨近于高電平;越小,等效的模擬電壓就趨近于低電平。
請添加圖片描述

電機工作也是一個慣性系統。所以直流電機也是可以用PWM調速的。

下圖是
請添加圖片描述

輸入是CNT(CNT計數器)與CCR寄存器值的關系,輸出是REF的高低電平。

4. 輸出比較模式

模式描述
凍結CNT=CCR時,REF保持為原狀態(可用于定速巡航)
匹配時置有效電平CNT=CCR時,REF置有效電平
匹配時置無效電平CNT=CCR時,REF置無效電平
匹配時電平翻轉CNT=CCR時,REF電平翻轉
強制為無效電平CNT與CCR無效,REF強制為無效電平(可用于暫停波形輸出)
強制為有效電平CNT與CCR無效,REF強制為有效電平(可用于暫停波形輸出)
PWM模式1向上計數:CNT<CCR時,REF置有效電平, CN>=CCR時,REF置無效電平;向下計數:CNT>CCR時,REF置無效電平, CN<=CCR時,REF置有效電平
PWM模式2向下計數:CNT<CCR時,REF置無效電平, CN>=CCR時,REF置有效電平;向下計數:CNT>CCR時,REF置有效電平, CN<=CCR時,REF置無效電平

改變PWM模式1和2,只是改變了REF電平的極性。使用PWM1的正極性和PWM2的反極性是一樣的效果。

5. PWM基本結構

請添加圖片描述

藍色線是CNT的值,黃色線是ARR的值,藍色線從0開始自增,一直增到ARR,也就是99,之后清零繼續自增。

紅色線就是CCR,是我們預設的值。綠色線是電平大小。

當CNT<CCR時,置高電平;CNT>=CCR時,置低電平。CNT溢出時,清零,重新置高電平。

進一步分析,我們發現,電平的占空比是受CCR的值影響的。如果我們的CCR設置的低一些,占空比就小一些;如果CCR設置的高一些,占空比就大一些。

REF是一個頻率可調,占空比也可調的PWM波形。最終經過極性選擇、輸出使能,通向GPIO口。

6. 參數計算

我們回到節5的圖。

  • PWM頻率: F r e q = C K P S C / ( P S C + 1 ) / ( A R R + 1 ) Freq = CK_PSC / (PSC+1) / (ARR+1) Freq=CKP?SC/(PSC+1)/(ARR+1)
  • 占空比: D u t y = C C R / ( A R R + 1 ) Duty = CCR / (ARR+1) Duty=CCR/(ARR+1)
  • 占空比變化步距: D u t y S t e p = 1 / ( A R R + 1 ) DutyStep = 1 / (ARR+1) DutyStep=1/(ARR+1)

我們按高電平第一次回落的點算,此時占空比為 $30 /(99+1) \times 100 % = 30% $

CCR的范圍取決于ARR,因為CCR去到和ARR差不多甚至相等的時候,占空比就是百分之百,這樣便失去了意義。所以CCR需要始終小于ARR。

變化步距是越小越好的,CCR越大越好。這樣代表其變化越細膩。

7. 輸出比較通道(高級)

為了更好地切換MOS管開關狀態,有了死區生成電路。

請添加圖片描述

8. 舵機簡介

舵機是一種根據輸入PWM信號占空比來控制輸出角度的裝置。

輸入PWM信號要求:周期為20ms,高電平寬度為0.5ms-2.5ms。

請添加圖片描述

PWM在此圖中是當一個通信協議來用。

9. 舵機硬件電路

請添加圖片描述

PWM信號線直接接到STM32引腳上就可以,比如PA0。舵機內部有驅動電路。

10. 直流電機及驅動簡介

直流電機是一種將電能轉換為機械能的裝置,有兩個電極,當電極正接時,電機正轉,當電極反接時,電機反轉。

直流電機屬于大功率器件,GPIO口無法直接驅動,需要配合電機驅動電路來操作。

TB6612是一款雙路H橋(一路四個開關管)型的直流電機驅動芯片,可以驅動兩個直流電機并且控制其轉速及方向。

請添加圖片描述

ULN2003則一路只有一個開關管,只能控制電機在一個方向轉。

右邊的電路即是H橋電路的基本結構,它是由兩路推挽電路組成的。上管導通,下管斷開,左邊輸出就是接在VM的電機電源正極。下管導通,上管斷開,那就是PGND的電源負極。

如果有兩路推挽電路,中間O1和O2接一個電機,左上右下導通,電流就是從左流向右邊;右上和左下導通,電流方向就反過來,從右流向左。H橋可以控制電流流過的方向,從而控制電機正反轉。

11. 電機硬件電路

左邊就是這個電機驅動模塊的硬件電路。

右下角的表中,輸入是IN1、IN2、PWM和STBY。STBY低電平就待機,高電平就正常工作。右邊是輸出,O1、O2和模式狀態。有電壓差電機才會轉,否則就是制動狀態。此外還有正反轉狀態之分,取決于O1和O2的高低電平相對狀態。

請添加圖片描述

要接一個可以輸出大電流的電源.

VM是驅動電壓輸入端,輸入電壓一般和額定電壓保持一致。

VCC不需要大功率,可以和控制器共用一個電源。

GND接系統的負極。隨便一個GND就可以。

AO1和AO2是A路的兩個輸出,其控制端是上面的PWMA、AIN2、AIN1。

PWMA引腳接PWM的信號輸出端,其他兩個引腳可以任意接兩個普通的GPIO口。

三個引腳給一個低功率的控制信號,驅動電路就會從VM汲取電流,輸出到電機。從而就能完成低功率控制大功率電路的目的。

BO1和BO2是B路的兩個輸出,其控制端是上面的PWMB、BIN2、BIN1。

STBY如果不需要待機模式的話,可以直接接VCC(3.3V)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70729.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70729.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70729.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ Primer 再探迭代器

歡迎閱讀我的 【CPrimer】專欄 專欄簡介&#xff1a;本專欄主要面向C初學者&#xff0c;解釋C的一些基本概念和基礎語言特性&#xff0c;涉及C標準庫的用法&#xff0c;面向對象特性&#xff0c;泛型特性高級用法。通過使用標準庫中定義的抽象設施&#xff0c;使你更加適應高級…

排查和解決線程池瓶頸問題案例

在分布式系統中&#xff0c;線程池的使用非常普遍&#xff0c;尤其是在處理異步任務時。然而&#xff0c;線程池的配置不當可能會導致性能瓶頸&#xff0c;進而影響系統的整體性能。本文將分享一個實際案例&#xff0c;介紹如何通過日志分析和線程池優化來解決系統中的性能瓶頸…

影響板材的熱導率有哪些因素?

板材熱導率受多種因素左右&#xff0c;可劃分為內部材料特性與外部環境條件兩大方面 內部材料特性 化學構成&#xff1a;不同化學元素及化合物組合形成的板材&#xff0c;熱導率表現大相徑庭&#xff1b;金屬板材&#xff0c;像銅與鋁&#xff0c;熱導率優異&#xff0c;這是…

給字符串加密解密

加密規則&#xff1a;輸入1a2b3c 輸出 abbccc 解密&#xff1a;輸入abbccc 輸出 1a2b3c 代碼&#xff1a; using System;namespace 加密解密 {class Program{static void Main(string[] args){Encryption("4b2a8p");Decryption("ppppppoovvv");Console.…

人工智能中的特征是什么?

什么是人工智能中的特征&#xff1f; 在人工智能中&#xff0c;特征&#xff08;feature&#xff09;是指從原始數據中提取出的、能夠代表數據關鍵信息并用于模型訓練的屬性或變量。特征通常是對原始數據的抽象或轉換&#xff0c;目的是捕捉數據中的模式、結構或相關性&#x…

20250226-代碼筆記05-class CVRP_Decoder

文章目錄 前言一、class CVRP_Decoder(nn.Module):__init__(self, **model_params)函數功能函數代碼 二、class CVRP_Decoder(nn.Module):set_kv(self, encoded_nodes)函數功能函數代碼 三、class CVRP_Decoder(nn.Module):set_q1(self, encoded_q1)函數功能函數代碼 四、class…

洛谷 P3628/SPOJ 15648 APIO2010 特別行動隊 Commando

題意 你有一支由 n n n 名預備役士兵組成的部隊&#xff0c;士兵從 1 1 1 到 n n n 編號&#xff0c;你要將他們拆分成若干特別行動隊調入戰場。出于默契的考慮&#xff0c;同一支特別行動隊中隊員的編號應該連續&#xff0c;即為形如 i , i 1 , ? , i k i, i 1, \cdo…

PCL源碼分析:曲面法向量采樣

文章目錄 一、簡介二、源碼分析三、實現效果參考資料一、簡介 曲面法向量點云采樣,整個過程如下所述: 1、空間劃分:使用遞歸方法將點云劃分為更小的區域, 每次劃分選擇一個維度(X、Y 或 Z),將點云分為兩部分,直到劃分區域內的點少于我們指定的數量,開始進行區域隨機采…

Go語言--語法基礎2--下載安裝

2、下載安裝 1、下載源碼包&#xff1a; go1.18.4.linux-amd64.tar.gz。 官方地址&#xff1a;https://golang.google.cn/dl/ 云盤地址&#xff1a;鏈接&#xff1a; https://pan.baidu.com/s/1N2jrRHaPibvmmNFep3VYag 提 取碼&#xff1a; zkc3 2、將下載的源碼包解壓…

lowagie(itext)老版本手繪PDF,包含頁碼、水印、圖片、復選框、復雜行列合并等。

入口類&#xff1a;exportPdf ? package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowa…

3-2 WPS JS宏 工作簿的打開與保存(模板批量另存為工作)學習筆記

************************************************************************************************************** 點擊進入 -我要自學網-國內領先的專業視頻教程學習網站 *******************************************************************************************…

Ubuntu20.04之VNC的安裝使用與常見問題

Ubuntu20.04之VNC的安裝與使用 安裝圖形桌面選擇安裝gnome桌面選擇安裝xface桌面 VNC-Server安裝配置開機自啟 VNC Clientroot用戶無法登入問題臨時方案永久方案 安裝圖形桌面 Ubuntu20.04主流的圖形桌面有gnome和xface兩種&#xff0c;兩種桌面的安裝方式我都會寫&#xff0c…

Day46 反轉字符串

I. 編寫一個函數&#xff0c;其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 s 的形式給出。 不要給另外的數組分配額外的空間&#xff0c;你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。 class Solution {public void reverseString(char[] s) {int i …

用FileZilla Server 1.9.4給Windows Server 2025搭建FTP服務端

FileZilla Server 是一款免費的開源 FTP 和 FTPS 服務器軟件&#xff0c;分為服務器版和客戶端版。服務器版原本只支持Windows操作系統&#xff0c;比如筆者曾長期使用過0.9.60版&#xff0c;那時候就只支持Windows操作系統。當時我們生產環境對FTP穩定性要求較高&#xff0c;比…

【愚公系列】《Python網絡爬蟲從入門到精通》033-DataFrame的數據排序

標題詳情作者簡介愚公搬代碼頭銜華為云特約編輯,華為云云享專家,華為開發者專家,華為產品云測專家,CSDN博客專家,CSDN商業化專家,阿里云專家博主,阿里云簽約作者,騰訊云優秀博主,騰訊云內容共創官,掘金優秀博主,亞馬遜技領云博主,51CTO博客專家等。近期榮譽2022年度…

營銷過程烏龜圖模版

營銷過程烏龜圖模版 輸入 公司現狀產品服務客戶問詢客戶期望電話、電腦系統品牌軟件硬件材料 售前 - 溝通 - 確定需求 - 滿足需求 - 售后 機料環 電話、電腦等設備軟件硬件、系統品牌等工具材料 人 責任人協助者生產者客戶 法 訂單由誰評審控制程序營銷過程控制程序顧客滿意度…

Kubernetes (K8S) 高效使用技巧與實踐指南

Kubernetes&#xff08;K8S&#xff09;作為容器編排領域的核心工具&#xff0c;其靈活性和復雜性并存。本文結合實戰經驗&#xff0c;從運維效率提升、生產環境避坑、核心功能應用等維度&#xff0c;總結高頻使用技巧與最佳實踐&#xff0c;分享如何快速掌握 K8S。 一、kubect…

Idea java項目結構介紹

一般來說&#xff0c;一個典型的 IntelliJ IDEA Java 項目具有特定的結構&#xff0c;以下是對其主要部分的介紹&#xff1a; 項目根目錄 項目的最頂層目錄&#xff0c;包含了整個項目的所有文件和文件夾&#xff0c;通常以項目名稱命名。在這個目錄下可以找到.idea文件夾、.g…

C++大整數類的設計與實現

1. 簡介 我們知道現代的計算機大多數都是64位的&#xff0c;因此能處理最大整數為 2 64 ? 1 2^{64}-1 264?1。那如果是超過了這個數怎么辦呢&#xff0c;那就需要我們自己手動模擬數的加減乘除了。 2. 思路 我們可以用一個數組來存儲大數&#xff0c;數組中的每一個位置表…

2024年第十五屆藍橋杯大賽軟件賽省賽Python大學A組真題解析

文章目錄 試題A: 拼正方形(本題總分:5 分)解析答案試題B: 召喚數學精靈(本題總分:5 分)解析答案試題C: 數字詩意解析答案試題A: 拼正方形(本題總分:5 分) 【問題描述】 小藍正在玩拼圖游戲,他有7385137888721 個2 2 的方塊和10470245 個1 1 的方塊,他需要從中挑出一些…