定時(shí)器PWM輸出功能
1 PWM工作原理
脈沖寬度調(diào)制(PWM:Pulse Width Modulation)是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法。廣泛應(yīng)用于電機(jī)控制、燈光的亮度調(diào)節(jié)、功率控制等領(lǐng)域。
1.1 PWM信號(hào)的兩個(gè)基本參數(shù)
- 周期(Period): 一個(gè)完整PWM波形所持續(xù)的時(shí)間
- 占空比(Duty): 高電平持續(xù)時(shí)間(Ton)與周期時(shí)間(Period)的比值
1.2 PWM信號(hào)的電壓調(diào)節(jié)原理
- 不同占空比的PWM信號(hào)等效于不同的平均電壓
- 平均電壓 = 峰值 x 占空比
1.3 定時(shí)器通道結(jié)構(gòu)
- 時(shí)基單元工作于定時(shí)模式,預(yù)分頻時(shí)鐘CK_PSC等于定時(shí)器時(shí)鐘TIMx_CLK。
- 每個(gè)定時(shí)器具備1~4個(gè)獨(dú)立的通道,各個(gè)通道具有獨(dú)立的 輸入捕獲單元 、捕獲/比較寄存器和 輸出比較單元 ,但共享同一個(gè)時(shí)基單元。
- x表示定時(shí)器編號(hào),每個(gè)通道有對(duì)應(yīng)的GPIO引腳作為通道的輸入/輸出引腳,每個(gè)通道可以選擇作為輸入捕獲或者輸出比較功能,但是只能二選一。
1.4 功能單元的作用
- 輸入捕獲單元: 用于捕獲外部觸發(fā)信號(hào),捕獲方式為上升沿/下降沿/雙邊沿捕獲。發(fā)生捕獲事件時(shí),將此刻計(jì)數(shù)器的值鎖存到捕獲比較寄存器中,供用戶讀取,同時(shí)可以產(chǎn)生捕獲中斷。
- 捕獲/比較寄存器: TIMx_CCR寄存器在輸入捕獲模式下用于存放發(fā)生捕獲事件時(shí)的當(dāng)前計(jì)數(shù)值;在輸出比較模式下用于存放預(yù)設(shè)的比較值。該寄存器具備預(yù)裝載功能。
- 輸出比較單元: 用于信號(hào)輸出。定時(shí)器通過將預(yù)設(shè)的比較值與計(jì)數(shù)器的值做匹配比較,以實(shí)現(xiàn)各類輸出,如PWM輸出、單脈沖輸出等。預(yù)設(shè)的比較值存放在捕獲/比較寄存器中。
1.5 PWM輸出的工作原理
- 實(shí)例:假設(shè)預(yù)分頻時(shí)鐘CK_PSC為100MHz,產(chǎn)生周期為1ms,占空比為47.5%的PWM信號(hào)。Period = 1ms,可以設(shè)置 PSC = 99,ARR = 999,Duty = 47.5%,則 CRR = 475。
定時(shí)器的每個(gè)通道都可以輸出PWM信號(hào),對(duì)于同一個(gè)定時(shí)器而言,它的多個(gè)通道共享同一個(gè)自動(dòng)重載寄存器,因此可以輸出占空比不同,但周期相同的PWM信號(hào)。
2 PWM功能的數(shù)據(jù)類型和接口函數(shù)
2.1 輸出比較單元
成員變量:
輸出比較模式:成員變量OCMode的取值范圍
宏常量定義 | 含義 |
---|---|
IM_OCMODE_TIMING | 輸出比較凍結(jié)模式,匹配時(shí)無通道輸出 |
TIM_OCMODE_ACTIVE | 輸出比較凍結(jié)模式,匹配時(shí)無通道輸出 |
TIM_OCMODE_INACTIVE | 匹配時(shí)設(shè)置通道輸出為無效電平 |
TIM_OCMODE_TOGGLE | 匹配時(shí)設(shè)置通道輸出電平翻轉(zhuǎn) |
TIM_OCMODE_PWM1 | PWM輸出模式1 |
TIM_OCMODE_PWM2 | PWM輸出模式2 |
TIM_OCMODE_FORCED_ACTIVE | 不進(jìn)行匹配,強(qiáng)制通道輸出為有效電平 |
TIM_OCMODE_FORCED_INACTIVE | 不進(jìn)行匹配,強(qiáng)制通道輸出為無效電平 |
- PWM模式1:遞增計(jì)數(shù)時(shí),當(dāng)TIMx_CNT (當(dāng)前計(jì)數(shù)值)
- PWM模式2:遞增計(jì)數(shù)時(shí),當(dāng)TIMx_CNT (當(dāng)前計(jì)數(shù)值)
有效電平極性:成員變量OCPolarity的取值范圍
宏常量定義 | 含義 |
---|---|
TIM_OCPOLARITY_HIGH | 輸出有效電平為高電平 |
TIM_OCPOLARITY_LOW | 輸出有效電平為低電平 |
快速輸出使能:成員變量OCFastMode的取值范圍
宏常量定義 | 含義 |
---|---|
TIM_OCFAST_DISABLE | 不使能快速輸出模式 |
TIM_OCPOLARITY_LOWTIM_OCFAST_ENABLE | 使能快速輸出模式 |
可以加快觸發(fā)輸入事件對(duì)通道輸出的影響,默認(rèn)配置為不使能
接口函數(shù):
定時(shí)器PWM輸出啟動(dòng)函數(shù):
HAL_TIM_PWM_Start
函數(shù)原型 HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
功能描述 在輪詢方式下啟動(dòng)PWM信號(hào)輸出 入口參數(shù) htim:定時(shí)器句柄的地址 返回值 HAL狀態(tài)值 注意事項(xiàng) 1. 該函數(shù)在定時(shí)器初始化完成之后調(diào)用2. 函數(shù)需要由用戶調(diào)用,用于啟動(dòng)定時(shí)器的指定通道輸出PWM信號(hào) 定時(shí)器比較/捕獲寄存器設(shè)置函數(shù):
__HAL_TIM_SET_COMPARE
函數(shù)原型 __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__)
功能描述 設(shè)置捕獲/比較寄存器TIMx_CCR的值。在PWM輸出時(shí), 用于改變PWM 信號(hào)的占空比 入口參數(shù) HANDLE : 定時(shí)器句柄的地址__CHANNEL__: 定時(shí)器通道號(hào), 取值范圍是TIM_CHANNEL_1 ~TIM_CHANNEL_4__COMPARE__ :寫入捕獲/比較寄存器TIMx_CCR的值 返回值 無 注意事項(xiàng) 1. 該函數(shù)是宏函數(shù),進(jìn)行宏替換,不發(fā)生函數(shù)調(diào)用2. 函數(shù)需要由用戶調(diào)用,用于PWM輸出時(shí),改變PWM信號(hào)的占空比
任務(wù)實(shí)踐
用PWM信號(hào)控制發(fā)板上的指示燈LED1。設(shè)置PWM周期為 20 ms,占空比從0%開始,步進(jìn)為20%。遞增到100%后,又從0%開始,并重復(fù)整個(gè)過程。占空比修改的時(shí)間間隔為200ms。
經(jīng)過計(jì)算可得,可以取值:PSC=799,ARR=199,CRR從0到200,步進(jìn)值為40。
- 配置定時(shí)器2時(shí)鐘源為內(nèi)部時(shí)鐘 (8MHz),通道1配置為PWM輸出模式,設(shè)置PSC=799,ARR199,Pulse設(shè)置為0。
- 編寫代碼
在main.c
中/* USER CODE BEGIN PV */ uint16_t CCR = 0; uint16_t Step = 40; /* USER CODE END PV */ /* USER CODE BEGIN 2 */ HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1); /* USER CODE END 2 */ /* USER CODE BEGIN 3 */ for (CCR = 0; CCR <= 200; CCR = CCR + Step) { __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, CCR); HAL_Delay(200); } } /* USER CODE END 3 */
-
寄存器
+關(guān)注
關(guān)注
31文章
5433瀏覽量
124404 -
PWM
+關(guān)注
關(guān)注
116文章
5502瀏覽量
219311 -
STM32
+關(guān)注
關(guān)注
2293文章
11031瀏覽量
364671 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3298瀏覽量
118839 -
脈沖寬度調(diào)制
+關(guān)注
關(guān)注
7文章
81瀏覽量
13985
發(fā)布評(píng)論請(qǐng)先 登錄
電機(jī)控制基礎(chǔ)知識(shí)1—定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理

定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理
定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理
定時(shí)器基礎(chǔ)知識(shí)
定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理介紹
定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理是什么
stm32定時(shí)器中斷程序
淺談定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理

[STM32]通用定時(shí)器的使用
![[<b class='flag-5'>STM32</b>]通用<b class='flag-5'>定時(shí)器</b>的使用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32-通用定時(shí)器-PWM輸出

電機(jī)控制基礎(chǔ)——定時(shí)器基礎(chǔ)知識(shí)與PWM輸出原理

使用STM32定時(shí)器PWM功能時(shí)的小問題

STM32F03定時(shí)器基礎(chǔ)知識(shí)基本簡(jiǎn)介

評(píng)論