S3C2440定時(shí)器原理概述
s3c2440有5個(gè)16位定時(shí)器,定時(shí)器0、1、2和3有脈沖寬度調(diào)制(PWM)功能,因此這4個(gè)定時(shí)器也被稱為PWM定時(shí)器。定時(shí)器4是一個(gè)內(nèi)部的定時(shí)器,沒有外部輸出引腳。
定時(shí)器的時(shí)鐘源是PCLK,定時(shí)器工作所需頻率并不等于PCLK,還要進(jìn)一步將PCLK通過內(nèi)部的分頻器分頻才能得到。這里也可以看出外部設(shè)備所需的工作頻率不一定等于它的時(shí)鐘源。其中,定時(shí)器0、1公用一個(gè)分頻器,另外3個(gè)定時(shí)器公用一個(gè)分頻器。分頻器輸入信號(hào)經(jīng)過第2級(jí)分頻器進(jìn)一步降低時(shí)鐘頻率,然后輸出作為定時(shí)器工作的時(shí)鐘。下圖為由PCLK得到定時(shí)器工作時(shí)鐘的框圖:
雖然S3C2440定時(shí)器有5個(gè),但是它們的工作原理都是相同的,只需要理解一個(gè)定時(shí)器的工作原理即可。對(duì)于某一個(gè)定時(shí)器,其內(nèi)部結(jié)構(gòu)原理如圖2所示。寄存器TCMPBn和TCNTBn用于緩存定時(shí)器n的比較值和初始值;TCON用于控制定時(shí)器的開啟與關(guān)閉;可以通過讀取寄存器TCNTOn得到定時(shí)器的當(dāng)前計(jì)數(shù)值。注意圖2所示的是PWM定時(shí)器,也就是定時(shí)器0-3,不包含定時(shí)器4,定時(shí)器4也沒有外部輸出引腳。
定時(shí)器工作原理概述:
● 首先,將定時(shí)器的比較值和初始值裝入寄存器TCMPBn和TCNTBn中
● 然后,設(shè)置定時(shí)器控制寄存器TCON,啟動(dòng)定時(shí)器。此時(shí),TCMPBn和TCNTBn中的值會(huì)加載到寄存器TCMPn和TCNTn中
● 此時(shí),定時(shí)器會(huì)減1計(jì)數(shù),即TCNTn進(jìn)行減1計(jì)數(shù),當(dāng)TCMPn=TCNTn時(shí),TOUTn引腳輸出取反。
S3C2440定時(shí)器相關(guān)寄存器
● 定時(shí)器控制寄存器TCON
由于各個(gè)定時(shí)器的工作原理相似,下面以定時(shí)器0為例進(jìn)行講解。在定時(shí)器控制寄存器TCON中,位[3:0]用于控制定時(shí)器0,其含義如表1所示:
● 定時(shí)器比較值緩存寄存器TCMPBn、計(jì)數(shù)值緩存寄存器TCNTBn
這兩個(gè)寄存器用于存儲(chǔ)定時(shí)器的比較值初始值和計(jì)數(shù)值初始值。
● 定時(shí)器比較值寄存器TCMPn、計(jì)數(shù)值寄存器TCNTn
這兩個(gè)寄存器是定時(shí)器內(nèi)部寄存器,用戶無需對(duì)其進(jìn)行寫操作。
● 定時(shí)器觀察值寄存器TCNTOn
在定時(shí)器減1計(jì)數(shù)過程中,TCNTn的值可以通過TCNTOn寄存器得到。
● 定時(shí)器配置寄存器TCFG0、TCFG1
這兩個(gè)寄存器很重要啊。本節(jié)開頭講過,PCLK經(jīng)過兩級(jí)分頻器,輸出頻率作為定時(shí)器的工作頻率,如圖1所示。因此,一定要有寄存器來設(shè)置分頻系數(shù)。
①定時(shí)器配置寄存器TCFG0用于控制第1級(jí)分頻器的分頻系數(shù),分頻器輸出頻率為:PCLK/(prescaler value+1),其中prescaler value=0~255。
②定時(shí)器配置寄存器TCFG1用于控制多路開關(guān)。divider value=2,4,8,16
定制器的輸入時(shí)鐘=PCLK/(prescaler value+1)/(divider value)。下圖3為定時(shí)器0的輸入時(shí)鐘產(chǎn)生過程:
從圖1和圖3可以看出,定時(shí)器0、1公用一個(gè)第1級(jí)分頻器,第1級(jí)分頻器的分頻系數(shù)由TCFG0的位[7:0]控制;定時(shí)器2、3、4公用另一個(gè)第1級(jí)分頻器,該分頻器的分頻系數(shù)由TCFG0的位[15:8]控制。同時(shí),從圖3可以看到,第2級(jí)分頻器的分頻系數(shù)是確定的,只有5種類型:2分頻、4分頻、8分頻、16分頻和外接時(shí)鐘TCLKn(n=0或1),定時(shí)器配置寄存器TCFG1用于控制多路開關(guān),每個(gè)定時(shí)器都由其中的連續(xù)4位控制。以定時(shí)器0為例,TCFG1的位[3:0]用于控制定時(shí)器0。下圖為S3C2440數(shù)據(jù)手冊(cè)上關(guān)于TCFG1的說明:
下面以定時(shí)器0舉例子說明定時(shí)器的配置過程。
例:設(shè)置適當(dāng)?shù)姆诸l系數(shù),是定時(shí)器0的輸入時(shí)鐘為62.5KHz。
因?yàn)镻CLK為50MHz,則50MHz/62.5KHz=800,即需要對(duì)PCLK進(jìn)行800分頻。所以使第1級(jí)的分頻系數(shù)為100,第2級(jí)的分頻系數(shù)為8即可滿足要求。最后,只需要將分頻系數(shù)寫入定時(shí)器控制寄存器中相應(yīng)的位即可,代碼如下:
TCFG0&=~(0xff); //設(shè)置第1級(jí)分頻系數(shù),分頻系數(shù)為99
TCFG0|=99;
TCFG1&=~(0xf); //設(shè)置第2級(jí)分頻系數(shù),分頻系數(shù)為8
TCFG1|=0x02; //62.5KHz=50MHz/(99+1)/8
下一節(jié)介紹兩個(gè)關(guān)于定時(shí)器0的實(shí)驗(yàn),在這里貼出關(guān)于定時(shí)器0的初始化代碼,相信大家會(huì)理解的更好一些的。
/***************************************************************
* 函數(shù)名稱:void Timer0_Init(void)
* 參數(shù)說明:無
* 全局變量:無
* 返 回 值:無
* 功 能:對(duì)于50MHz的PCLK,經(jīng)過分頻獲得62.5KHz的定時(shí)器0
* 的輸入時(shí)鐘。
***************************************************************/
void Timer0_Init(void)
{
TCFG0&=~(0xff); //設(shè)置第1級(jí)分頻系數(shù),分頻系數(shù)為99
TCFG0|=99;
TCFG1&=~(0xf); //設(shè)置第2級(jí)分頻系數(shù),分頻系數(shù)為8
TCFG1|=0x02; //62.5KHz=50MHz/(99+1)/8
TCNTB0=62500; //1s中斷一次。經(jīng)過上述分頻器得到定時(shí)器0的輸入時(shí)鐘頻率為62.5kHz,即定時(shí)器
//每秒鐘計(jì)數(shù)62500次。因此,初始化時(shí),定時(shí)器0計(jì)數(shù)值初始值為62500
//在這里我們可以看出TCMPBn沒有設(shè)置,因?yàn)樵蹅冇盟哪J(rèn)值0,所以就不需要設(shè)置
TCON|=(1<<1); //開啟手動(dòng)更新位,即當(dāng)定時(shí)器開啟后,TCMPB0和TCNTB0中的值會(huì)加載到寄存器TCMP0和TCNT0中
TCON=0x09; //關(guān)閉手動(dòng)更新位,設(shè)置自動(dòng)加載位,同時(shí)開啟定時(shí)器,這樣,TCNT0進(jìn)行減1計(jì)數(shù),當(dāng)TCNT0中的計(jì)
//數(shù)值減到0時(shí),TCNTB0、TCMPB0中的數(shù)據(jù)分別會(huì)自動(dòng)加載到TCNT0、TCMP0中并進(jìn)行新一輪的減1計(jì)數(shù)
}
上一篇:一起學(xué)mini2440裸機(jī)開發(fā)(七)--UART高級(jí)實(shí)驗(yàn),可變參函數(shù)
下一篇:基于s3c2440的簡(jiǎn)易bootloader實(shí)現(xiàn)
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 阿里黑科技落地!夸克AI眼鏡全球首發(fā),高德、淘寶、支付寶都能用
- 化繁為簡(jiǎn), 適配復(fù)雜磁場(chǎng)環(huán)境,MT73xx 3D雙路輸出霍爾鎖存器賦能車規(guī)電機(jī)精準(zhǔn)控制
- 9.5億美元收購恩智浦MEMS傳感器業(yè)務(wù),意法半導(dǎo)體 在傳感器領(lǐng)域的地位再升級(jí)
- 高性能電動(dòng)滑板車 BLDC 電機(jī)驅(qū)動(dòng)器:技術(shù)解析與應(yīng)用展望
- 5G工業(yè)網(wǎng)關(guān)的“邊緣計(jì)算+AI推理”一體化設(shè)計(jì),PLC協(xié)議解析與缺陷檢測(cè)的實(shí)時(shí)聯(lián)動(dòng)
- AR眼鏡的“工業(yè)指令投射”系統(tǒng),SLAM的空間定位、PLC數(shù)據(jù)實(shí)時(shí)疊加顯示
- 多光譜氣體傳感器的抗交叉干擾設(shè)計(jì)
- 多模態(tài)融合感知的“語義-幾何”聯(lián)合建模
- 工業(yè)觸摸屏的“壓感-手勢(shì)”多模態(tài)交互設(shè)計(jì)
- 工業(yè)機(jī)器人高精度力控的“雙模融合”傳感器設(shè)計(jì)
- 這么有顏值的機(jī)器人跟你成家,你愿意嗎
- IOTA基金會(huì)與意法半導(dǎo)體聯(lián)手加速物聯(lián)網(wǎng)技術(shù)整合
- 物聯(lián)網(wǎng)標(biāo)準(zhǔn)化仍有很長(zhǎng)的路要走
- Diodes Incorporated推出汽車線性LED驅(qū)動(dòng)控制器
- 大陸集團(tuán)提升智能玻璃控制技術(shù)
- 基于51單片機(jī)產(chǎn)生占空比和頻率可調(diào)的方波信號(hào)發(fā)生器
- 用51單片機(jī)做一個(gè)簡(jiǎn)易呼吸燈
- 51單片機(jī)定時(shí)器初值怎么精確計(jì)算?
- 51單片機(jī)信號(hào)發(fā)生器例子程序包括Proteus仿真
- 單片機(jī)壓力傳感器的實(shí)時(shí)監(jiān)測(cè)和報(bào)警程序