關(guān)于STM32定時(shí)器16位拓展32位的探討
STM32的通用定時(shí)器可以實(shí)現(xiàn)很多功能,例如:定時(shí)計(jì)數(shù)、測量外部信號(hào)脈沖寬度、產(chǎn)生PWM波形、測量輸入的PWM波形等。在所有這些操作中,定時(shí)器的位數(shù)主要影響兩個(gè)參數(shù),一個(gè)是定時(shí)或測量的精度,另一個(gè)是定時(shí)的時(shí)間長度。下面我們以一個(gè)列表看一下定時(shí)的精度和定時(shí)的長度有多少:
本文引用地址:http://m.butianyuan.cn/article/201610/311527.htm
關(guān)于各個(gè)預(yù)分頻器的作用請(qǐng)參考下圖的右半部分:
從表中可以看出,在最高精度下(14ns)定時(shí)長度只有0.91ms,在精度為250ns(即4MHz)時(shí)定時(shí)長度可達(dá)16.38ms。這是僅使用了定時(shí)器的獨(dú)立工作模式的情況。
對(duì)于需要高精度并且長延時(shí)的應(yīng)用,16位的定時(shí)(上述精度和時(shí)間長度)就不夠了,這個(gè)問題可以有兩種解決辦法;第一個(gè)辦法是通過軟件的接力完成,這個(gè)方法的可行性在于定時(shí)時(shí)間較長,允許軟件有足夠的時(shí)間介入計(jì)數(shù),這種辦法非常方便,多數(shù)情況都可使用。第二種辦法是使用STM32特有的定時(shí)器級(jí)聯(lián)功能,實(shí)現(xiàn)32位的計(jì)數(shù)效果,因?yàn)榧?jí)聯(lián)是由硬件觸發(fā)的,當(dāng)設(shè)置好各項(xiàng)寄存器后,軟件不必中途干預(yù),可以達(dá)到高精度長延時(shí)的要求。進(jìn)一步地,STM32最多有四個(gè)定時(shí)器,如果串聯(lián)起來,甚至可以實(shí)現(xiàn)4*16=64位的計(jì)數(shù)效果。
簡單地說級(jí)聯(lián)功能,即是一個(gè)定時(shí)器的定時(shí)條件滿足后,可以產(chǎn)生一個(gè)觸發(fā)信號(hào)啟動(dòng)另一個(gè)定時(shí)器的定時(shí)操作。
在ST的網(wǎng)站上有一個(gè)應(yīng)用筆記和對(duì)應(yīng)的例子程序,詳細(xì)說明和演示了如何使用STM32的級(jí)聯(lián)功能實(shí)現(xiàn)32位的輸入捕獲和32位的輸出比較功能,各位可以研究一下:
應(yīng)用筆記下載地址:http://www.st.com/stonline/products/literature/an/13711.pdf
演示程序下載地址:http://www.st.com/stonline/products/support/micro/files/an2592.zip
這是該應(yīng)用筆記的摘要:
【AN2592 如何使用STM32F101xx和STM32F103xx的時(shí)鐘鏈接功能實(shí)現(xiàn)定時(shí)器的32位精度】 (2007年8月)
許多應(yīng)用需要32位的精度,用于測量超過幾百秒的外部信號(hào)的周期并產(chǎn)生延遲或較大間隔的周期信號(hào)。
STM32F101xx和STM32F103xx提供了鏈接兩個(gè)16位定時(shí)器借以獲得32位精度的能力,這是使用了定時(shí)器的一種特殊配置和鏈接機(jī)制。
本文給出了模擬一個(gè)32位定時(shí)器的基本原則;介紹了兩個(gè)基本的操作模式:輸入捕獲模式和輸出比較模式。每個(gè)模式都是單獨(dú)介紹并附有實(shí)例。
最后希望各位朋友能夠幫助我們更加深入地了解應(yīng)用的需求,對(duì)于以工業(yè)控制和嵌入式控制儀器而言,因?yàn)槲覀兘佑|的應(yīng)用有限,不是很清楚哪里需要這樣的高精度定時(shí),如果方便我們可以做幾個(gè)實(shí)例分析,這樣更有利于我們對(duì)今后產(chǎn)品的升級(jí)和定位。
轉(zhuǎn)帖后記:真是一個(gè)認(rèn)真負(fù)責(zé)的版主,提供的資料非常的齊全。STM32的TIM比較多,相信也會(huì)在PWM電機(jī)控制等場合展現(xiàn)自己的威力,在特定的設(shè)計(jì)要求下,將16位拓展為32位也是非常重要的技巧。
評(píng)論