找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 12273|回復(fù): 3
收起左側(cè)

STM32定時(shí)器輸出比較應(yīng)用中的幾個(gè)話題

[復(fù)制鏈接]
ID:98618 發(fā)表于 2015-12-8 04:05 | 顯示全部樓層 |閱讀模式
本文作者是milershao
不論STM8還是STM32的定時(shí)器它們的結(jié)構(gòu)大體差不多,都分為三類。高級(jí)定時(shí)器、通用定時(shí)器、基本時(shí)基時(shí)鐘。其中高級(jí)定時(shí)器與通用定時(shí)器相比,主要多了馬達(dá)控制方面的互補(bǔ)輸出通道,帶剎車功能和死區(qū)控制,有HALL接口。那基本時(shí)基時(shí)鐘就是單純的一個(gè)定時(shí)器,沒(méi)那些IC、OC通道等。

這里以stm32 MCU為例,跟大家分享下有關(guān)通用或高級(jí)定時(shí)器的輸出比較應(yīng)用中如下幾個(gè)常見(jiàn)話題。


1、OCxREF與OCx關(guān)系問(wèn)題

2、OCx極性選擇問(wèn)題

3、帶互補(bǔ)輸出時(shí)的幾個(gè)概念及相關(guān)寄存器介紹

4、帶剎車功能的互補(bǔ)通道的控制位及輸出對(duì)照表的解讀


一、OCxREF與OCx關(guān)系的話題

OCxREF信號(hào)就是在選定輸出比較模式后,在某種條件下輸出模式控制器產(chǎn)生的一個(gè)中間參考信號(hào)。說(shuō)它屬于中間參考,是因?yàn)樵撔盘?hào)跟對(duì)應(yīng)的OCx通道輸出信號(hào)之間存在一個(gè)極性選擇器,即下方紅色方框部分。經(jīng)過(guò)極性選擇后的信號(hào)最終輸出還得受輸出使能電路的控制。


上面提到輸出比較模式指如下幾種模式【以某定時(shí)器通道1為例】:


前面提到的“某種條件”在上面的幾種模式中都提到,無(wú)須多解釋了。

其中凍結(jié)模式就是CCRxTimx_CNT寄存器的值對(duì)輸出沒(méi)影響,此時(shí)可以一般作普通計(jì)數(shù)器來(lái)用。其它幾種模式可以劃分為強(qiáng)制輸出、比較輸出、PWM輸出三類。

要注意的是,這里的輸出比較結(jié)果只說(shuō)到OCxREF信號(hào),至于OCx端的信號(hào),還取決于極性選擇。另外,這里有個(gè)重要約定ORxREF信號(hào)為高電平時(shí)稱為有效電平,反之為無(wú)效電平。


順帶提下,經(jīng)常有人在使用PWM輸出模式或切換模式時(shí),希望讓輸出通道OCx端的電平在某時(shí)刻或某時(shí)段臨時(shí)切換為想要的電平。一般有兩種辦法,一種是使用上面提到的強(qiáng)制輸出模式;如果是PWM輸出模式,可以通過(guò)修改CCR的值等于0或大于等于ARR來(lái)實(shí)現(xiàn)。具體怎么配置要結(jié)合你的模式選擇、極性選擇及OCx端所期望的電平。當(dāng)采用修改CCR值方式時(shí),如果希望立即生效的話,記得將相應(yīng)通道的預(yù)裝載使能功能禁用掉。


二、OCx極性選擇問(wèn)題

從上面第一幅圖可以直觀的看出OCxREF跟后面的OCx信號(hào)可能是同相或者反相關(guān)系,由寄存器TIMx_CCER CCxP位確定。下面是高級(jí)定時(shí)器有關(guān)極性配置的文字截圖。


當(dāng)CCxP=0時(shí),OCx輸出高電平有效,為1時(shí)OCx低電平有效。

如果單獨(dú)看這個(gè)地方,多少顯得有些突兀。對(duì)于一個(gè)電平高低本無(wú)所謂,這里硬加上個(gè)有效無(wú)效,有些讓人費(fèi)解。我們基于上面第一幅圖和關(guān)于OCxREF電平重要約定來(lái)探討下。

當(dāng)CCxP=0時(shí),OCxREF直達(dá)OCx端。因約定OCxREF為高時(shí)算有效電平,那OCx信號(hào)的高電平也就對(duì)應(yīng)著ORxREF的有效電平。所以約定OCx端的高電平為有效電平。

而當(dāng)CCxP=1時(shí),OCxREF反相后到達(dá)OCx端。有效高電平OCxREF經(jīng)極性選擇器反相到達(dá)OCx端變?yōu)榈碗娖,此時(shí)OCx信號(hào)的低電平就對(duì)應(yīng)著OCxREF的有效電平。所以約定此時(shí)的OCx端的低電平為有效電平。

做極性選擇的實(shí)質(zhì)其實(shí)是做OCx/OCxN端有效電平的選擇。至于如何選擇有效電平,那得結(jié)合具體外部驅(qū)動(dòng)需要。當(dāng)OCx或OCxN端輸出無(wú)效電平時(shí)的狀態(tài)為無(wú)效狀態(tài)。

結(jié)合極性選擇的配置和有效電平的定義,我們可以得出兩個(gè)推論

1、對(duì)于某OCx通道,當(dāng)OCx端的電平與其極性選擇位【0或者1】一致時(shí),該電平一定是無(wú)效電平。

2、對(duì)于某正常運(yùn)行的OCx通道,OCx端電平可看作極性選擇位【0或者1】跟OCxREF電平異或后的結(jié)果。即 OCx=OCxREF xor CCxP【這里沒(méi)考慮死區(qū)】

理解上面2個(gè)推論很重要,不然在看那張“帶剎車功能的互補(bǔ)通道的控制位及輸出對(duì)照表”的相關(guān)描述時(shí)可能就很費(fèi)解。

對(duì)于通用定時(shí)器,是沒(méi)有互補(bǔ)輸出功能的。通用定時(shí)器的標(biāo)準(zhǔn)OCx輸出通道的電平輸出狀態(tài)相對(duì)比較簡(jiǎn)單。


當(dāng)OCx通道的輸出使能被禁止時(shí),其輸出固定為0,當(dāng)開(kāi)啟后OCx端電平由OCxREF與極性選擇器共同確定。如果是高級(jí)定時(shí)器啟用互補(bǔ)輸出通道時(shí),OCX/OCXN端的電平確認(rèn)要比通用定時(shí)器復(fù)雜,它往往跟多個(gè)控制位有關(guān)。


三、帶互補(bǔ)輸出時(shí)的幾個(gè)概念及相關(guān)寄存器介紹

ST MCU里面只有高級(jí)定時(shí)器帶互補(bǔ)輸出。高級(jí)定時(shí)器里有幾個(gè)概念和專有的寄存器需要了解下。一般來(lái)說(shuō),定時(shí)器做互補(bǔ)輸出使用驅(qū)動(dòng)馬達(dá)設(shè)備,為安全起見(jiàn),控制電路往往配有死區(qū)控制、剎車控制。在高級(jí)定時(shí)器里有個(gè)關(guān)于剎車及死區(qū)控制的寄存器。


其中有三個(gè)位MOE,OSSR,OSSI需要特別了解下。

MOE:當(dāng)發(fā)生剎車時(shí),該位被硬件清零。OCxOCxN將呈無(wú)效狀態(tài)或空閑狀態(tài)或輸出禁止狀態(tài)。


OSSR:運(yùn)行模式【run mode】下關(guān)閉狀態(tài)的輸出選擇位。

此時(shí)MOE=1。針對(duì)開(kāi)啟了互通輸出通道但其中某一通道的輸出使能被禁止的情形,比方雖然TimX_CH1TimX_CH1N的比較輸出模式都開(kāi)啟了,而CH1的輸出使能被禁止了。該位決定OC1運(yùn)行模式下的最后輸出狀態(tài)。

強(qiáng)調(diào):OSSR針對(duì)運(yùn)行模式下互補(bǔ)輸出通道才有效。


這里提醒下:

對(duì)于一對(duì)互補(bǔ)通道OCx/OCxN,如果同時(shí)輸出使能并均為高電平有效極性選擇時(shí),OCxOCxREF是同相的,OCxNOCxREF是反相的。如果說(shuō)只使能其中一個(gè)通道,并做高電平有效極性選擇,不論OCX還是OCXN都跟OCXREF同相。

OSSI:空閑模式【idle mode】下關(guān)閉狀態(tài)【off state】的輸出選擇。

空閑模式是相對(duì)運(yùn)行模式而言,發(fā)生剎車事件時(shí)MOE=0。對(duì)于已經(jīng)配置為比較輸出模式而其輸出使能被禁止的通道,該位決定OCxOCxN空閑模式下的最后輸出狀態(tài)。

強(qiáng)調(diào):OSSI針對(duì)空閑模式下的輸出通道有效。


***上面提到的“inactive理解為某通道的輸出控制使能被禁用的情形。

還有兩個(gè)寄存器位OISx、OISxN需要了解下,是有關(guān)空閑狀態(tài)【MOE=0】下OCx/OCxN端的空閑電平的選擇問(wèn)題。


四、帶剎車功能的互補(bǔ)通道的控制位及輸出對(duì)照表的解讀

STM32各系列參考手冊(cè)的定時(shí)器介紹部分都有一張表格,即帶剎車功能的互補(bǔ)通道的控制位及輸出對(duì)照表。說(shuō)實(shí)話咋看這個(gè)表真不太好懂。

為了便于介紹,我把那張表截成了兩部分,一部分是運(yùn)行模式下【MOE=1】各控制位與通道輸出情況的對(duì)應(yīng)關(guān)系表;另一部分是空閑模式下【MOE=0】各控制位與通道輸出狀態(tài)的對(duì)應(yīng)表。

表格里多處標(biāo)注Output DisabledOff-state,這里簡(jiǎn)單說(shuō)明下。

**Output Disabled:通道輸出禁止?fàn)顟B(tài)。此時(shí)該通道不受TIMER驅(qū)動(dòng)。相應(yīng)的OCXOCXN輸出使能禁止,輸出端的電平為0!緞e把輸出禁止?fàn)顟B(tài)跟通道的輸出使能控制混淆了】

下面兩幅圖中橢圓形紅色圓圈配置的地方,CCxECCxNE=0,OCxOCxN=0,都是輸出禁止?fàn)顟B(tài)的情形。

**Off-state:通道關(guān)閉狀態(tài)。相應(yīng)通道輸出使能,但輸出無(wú)效狀態(tài)。這個(gè)無(wú)效狀態(tài)是指某互補(bǔ)通道中的一路或兩路輸出無(wú)效電平時(shí)的狀態(tài)。

先看看運(yùn)行模式下【MOE=1】的情形:

運(yùn)行模式時(shí)下,當(dāng)OSSR=0時(shí),如果某通道的輸出使能禁止,即CCxECCxNE=0,則該通道輸出為輸出禁止?fàn)顟B(tài)。

運(yùn)行模式時(shí)下,當(dāng)OSSR=1時(shí)。如果互補(bǔ)通道中的某一路的輸出使能禁止,即CCxECCxNE=0,則該通道輸出無(wú)效電平,呈關(guān)閉狀態(tài),或者說(shuō)無(wú)效輸出狀態(tài)。

**關(guān)于下面表格有三地方需提醒下:


1、上面圖表中關(guān)閉狀態(tài)【off state】處有類似下面的描述:

OCx=CCxP , OCx_EN=1 或者 OCxN=CCxNP OCxN_EN=1;

前面講極性選擇時(shí)提過(guò),當(dāng)OCxOCxN端的輸出電平與其極性選擇位【CCxPCCxNP】一致時(shí),該電平一定為無(wú)效電平。這里就是表示輸出無(wú)效電平。


2、表格中有諸如 OCx = OCxREF xor CCxP的寫法,這點(diǎn)在前面也提過(guò),實(shí)際上就是OCxREF信號(hào)經(jīng)過(guò)極性選擇后在OCx端輸出的意思。


3、紅色三角形標(biāo)注的兩個(gè)地方,互補(bǔ)通道中只有1路輸出被使能,此時(shí)的OCxOCxN通道的輸出是基于OCxREF信號(hào)配合各自的極性選擇后輸出。再看看紅色箭頭標(biāo)注的兩個(gè)地方,因?yàn)榇藭r(shí)兩個(gè)互補(bǔ)通道同時(shí)被使能,OCx通道的輸出是基于OCxREF配合自己的極性選擇,而OCxN通道的輸出則是基于OCXREF的反相信號(hào)再結(jié)合其極性選擇后輸出。


最后來(lái)看看空閑模式下即MOE=0結(jié)合不同控制配置位的OCx/OCxN的輸出情形。


空閑模式下的OC輸出相對(duì)簡(jiǎn)單,OCx/OCxN輸出無(wú)非呈現(xiàn)2狀態(tài),一種是輸出禁止?fàn)顟B(tài),一種是無(wú)效輸出狀態(tài),即關(guān)閉狀態(tài)。

當(dāng)MOE=0, OSSI=0時(shí), OCxOCxN均呈輸出禁止?fàn)顟B(tài)。此時(shí)OC控制器不受TIMER驅(qū)動(dòng),相應(yīng)的OCxOCxN輸出使能禁止,輸出端的電平為0!旧蠄D中橢圓形標(biāo)注的地方】

當(dāng)MOE=0, OSSI=1,互補(bǔ)通道中至少1路輸出使能,OCxOCxN都呈關(guān)閉狀態(tài)。相應(yīng)的OCxOCxN輸出無(wú)效電平或空閑電平,【電平有效性依據(jù)極性選擇CCxP/CCxNP而定,空閑電平依據(jù)OSIx/OSxN而定】但至少1路輸出無(wú)效電平。

表格下方的那句注釋,當(dāng)某通道的兩互補(bǔ)通道都沒(méi)使用時(shí),即CCxE=CCxNE=0時(shí),

CCxP\CCxNP\OISx\OISxN都將被清零。這句有助于理解圖表中輸出禁止?fàn)顟B(tài)時(shí)的相關(guān)描述。

回復(fù)

使用道具 舉報(bào)

ID:120570 發(fā)表于 2016-5-13 16:54 | 顯示全部樓層
非常感謝,簡(jiǎn)直詳細(xì),但是還有不明白的地方,最后面,OSSI=1,輸出無(wú)效電平或是空閑電平,那到底輸出無(wú)效還是空閑電平?
回復(fù)

使用道具 舉報(bào)

ID:120570 發(fā)表于 2016-5-17 09:26 | 顯示全部樓層
如何聯(lián)系到milershao大師,想請(qǐng)教點(diǎn)問(wèn)題
回復(fù)

使用道具 舉報(bào)

ID:260269 發(fā)表于 2017-12-20 11:14 | 顯示全部樓層
想問(wèn)一下,最后的MOE=0,OSSI=0時(shí)。表格中的輸出不是CCxP嗎?為什么說(shuō)輸出端的電平為0呢?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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