找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4091|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32 PWM輸出總結(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:59583 發(fā)表于 2014-3-26 14:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
   學(xué)習(xí)后發(fā)現(xiàn)stm32的定時器功能確實很強大,小總結(jié)一下方便以后使用的時候做參考。Stm32定時器一共分為三種:tim1tim8是高級定時器,67是基本定時器,25是通用定時器。從名字就可以看得出來主要功能上的差異。今天我主要是用定時器做pwm輸出,所以總結(jié)也主要是針對pwm方面的。

       先大致說下通用和高級定時器的區(qū)別。通用的可以輸出四路pwm信號互不影響。高級定時器可以輸出三對互補pwm信號外加ch4通道,也就是一共七路。
所以這樣算下來stm32一共可以生成4*5+7*2=30pwm信號。接下來還有功能上的區(qū)別:通用定時器的pwm信號比較簡單,就是普通的調(diào)節(jié)占空比調(diào)節(jié)頻率(別的不常用到的沒去深究);高級定時器的還帶有互補輸出功能,同時互補信號可以插入死區(qū),也可以使能剎車功能,從這些看來高級定時器的pwm天生就是用來控制電機的。

Pwm
輸出最基本的調(diào)節(jié)就是頻率和占空比。頻率當(dāng)然又和時鐘信號扯上了關(guān)系。高級定時器是掛接到APB2上,而通用定時器是掛接到APB1上的。APB1APB2的區(qū)別就要在于時鐘頻率不同。APB2最高頻率允許72MH,而APB1最高頻率為36MHZ。這樣是不是通用定時器只最高36MHZ頻率呢,不是的;通用定時器時鐘信號完整的路線應(yīng)該是下面這樣的:

AHB72mhz)→APB1分頻器(默認(rèn)2APB1時鐘信號(36mhz)→倍頻器(*2倍)→通用定時器時鐘信號(72mhz)。
APB1和定時器中間的倍頻器起到了巨大的作用,假如紅色字體的“APB1分頻器”假如不為1(默認(rèn)是2),倍頻器會自動將APB1時鐘頻率擴大2倍后作為定時器信號源,這個它內(nèi)部自動控制的不用配置。設(shè)置這個倍頻器的目的很簡單就是在APB136mhz的情況下通用定時器的頻率同樣能達(dá)到72mhz。我用的庫函數(shù)直接調(diào)用函數(shù)SystemInit(); 這個函數(shù)之后時鐘配置好了:通用定時器和高級定時器的時鐘現(xiàn)在都是72mhz(你也可以自己再配置一下RCC讓他的頻率更低,但是不能再高了)。定時器接下來還有一個分頻寄存器:TIMX_PSC經(jīng)過他的分頻后,才是定時器計數(shù)的頻率。所以真正的時鐘頻率應(yīng)該是72mhz/(TIMX_PSC-1),我們設(shè)為tim_frepuency下面還會用到。
stm32的時鐘頻率弄得確實是很饒人的,所以關(guān)鍵就是先要把思路理清楚。時鐘的頻率弄好了下面終于可以開說重點PWM了。當(dāng)然還少不了頻率:pwm主要就是控制頻率和占空比的:這兩個因素分別通過兩個寄存器控制:TIMX_ARRTIMX_CCRX。ARR寄存器就是自動重裝寄存器,也就是計數(shù)器記到這個數(shù)以后清零再開始計,這樣pwm的頻率就是tim_frequency/TIMX_ARR-1)。在計數(shù)時會不停的和CCRX寄存器中的數(shù)據(jù)進(jìn)行比較,如果小于的話是高電平或者低電平,計數(shù)值大于CCRX值的話電平極性反相。所以這也就控制了占空比。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表