新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > S3C2410中脈寬調(diào)制定時(shí)器

        S3C2410中脈寬調(diào)制定時(shí)器

        作者: 時(shí)間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
        S3C2410有5個(gè)16bit定時(shí)器。定時(shí)器0-3有脈寬調(diào)制功能(Pulse Width Modulation,PWM),定時(shí)器4是內(nèi)部定時(shí)器,沒有輸出引腳。定時(shí)器0有Dead-zone發(fā)生器,可以保證一對反向信號不會(huì)同時(shí)改變狀態(tài),常用于大電流設(shè)備中。

        定時(shí)器0-1共用一個(gè)8bit prescaler,定時(shí)器2-4共用另外一個(gè)。每個(gè)定時(shí)器有一個(gè)時(shí)鐘分頻器,可以選擇5種分頻方法。每個(gè)定時(shí)器從各自的時(shí)鐘分頻器獲取時(shí)鐘信號。prescaler是可編程的,并依據(jù)TCFG0-1寄存器數(shù)值對PCLK進(jìn)行分頻。

        本文引用地址:http://www.104case.com/article/201611/318021.htm

        當(dāng)定時(shí)器被使能之后,定時(shí)器計(jì)數(shù)緩沖寄存器(TCNTBn)中初始的數(shù)值就被加載到遞減計(jì)數(shù)器中。定時(shí)器比較緩沖寄存器(TCMPBn)中的初始數(shù)值被加載到比較寄存器中,以備與遞減計(jì)數(shù)器數(shù)值進(jìn)行比較。這種雙緩沖特點(diǎn)可以讓定時(shí)器在頻率和占空比變化時(shí)輸出的信號更加穩(wěn)定。

        每個(gè)定時(shí)器都有一個(gè)各自時(shí)鐘驅(qū)動(dòng)的16bit遞減計(jì)數(shù)器,當(dāng)計(jì)數(shù)器數(shù)值為0時(shí),產(chǎn)生一個(gè)定時(shí)中斷,同時(shí)TCNTBn中的數(shù)值被再次載入遞減計(jì)數(shù)器中再次開始計(jì)數(shù)。只有關(guān)閉定時(shí)器才不會(huì)重載。TCMPBn的數(shù)值用于PWM,當(dāng)遞減計(jì)數(shù)器的數(shù)值和比較寄存器數(shù)值一樣時(shí),定時(shí)器改變輸出電平,因此,比較寄存器決定了PWM輸出的開啟和關(guān)閉。

        S3C2410的PWM定時(shí)器采用雙buffer機(jī)制,可以不停止當(dāng)前定時(shí)器的情況下設(shè)置下一輪定時(shí)操作。定時(shí)器值可以寫到TCNTBn,而當(dāng)前定時(shí)的計(jì)數(shù)值可以從TCNTOn獲得,即,從TCNTBn獲得的不是當(dāng)前數(shù)值而是下一次計(jì)數(shù)的初始值。

        自動(dòng)加載功能被打開后,當(dāng)TCNTn數(shù)值遞減到0時(shí),芯片自動(dòng)將TCNTBn的數(shù)值拷貝到TCNTn,從而開始下一次循環(huán),若TCNTBn數(shù)值為0,則不會(huì)有遞減操作,定時(shí)器停止。

        第一次啟動(dòng)定時(shí)器的過程如下:(1)初始化TCNTBn和TCMPBn的數(shù)值;(2)設(shè)置定時(shí)器的人工加載位,不管是否使用極性轉(zhuǎn)換功能,都將極性轉(zhuǎn)換位打開;(3)設(shè)置定時(shí)器的啟動(dòng)位來啟動(dòng)定時(shí)器,同時(shí)清除人工加載位。

        若定時(shí)器在計(jì)數(shù)過程中被停止,則TCNTn保持計(jì)數(shù)值,若需要設(shè)置新的數(shù)值需要人工加載。定時(shí)器的工作過程可以用附圖表示。



        1,使能自動(dòng)加載功能,設(shè)置TCNTBn=160,TCMPBn=110,設(shè)置人工加載位并配置極性轉(zhuǎn)換位,人工加載位將時(shí)TCNTBn、TCMPBn的數(shù)值加載到TCNTn、TCMPn。然后,設(shè)置TCNTBn、TCMPBn為80和40,作為下一次定時(shí)的參數(shù)。

        2,設(shè)置啟動(dòng)位,若人工加載位為0,極性轉(zhuǎn)換關(guān)閉,自動(dòng)加載開啟,則定時(shí)器開始遞減計(jì)數(shù)(計(jì)數(shù)前有一個(gè)設(shè)定時(shí)間,可以理解為與setup time類似)。

        3,當(dāng)TCNTn的數(shù)值和TCMPn一致時(shí),TOUTn從低變?yōu)楦摺?/p>

        4,當(dāng)TCNTn計(jì)數(shù)至0,定時(shí)器產(chǎn)生中斷請求,同時(shí)TCNTBn、TCMPBn的數(shù)值被自動(dòng)加載到TCNTn、TCMPn,前者為80,后者為40。

        5,中斷服務(wù)向量(ISR)將TCNTBn、TCMPBn設(shè)置為80和60。

        6,與3相似。

        7,與4相似,TCNTn、TCMPn,前者為80,后者為60。

        8,ISR服務(wù)程序中,將自動(dòng)加載和中斷請求關(guān)閉。

        9,與6、3相似。

        10,TCNTn為0,TCNTn不會(huì)自動(dòng)加載新的數(shù)值,定時(shí)器被關(guān)閉。

        11,沒有新的中斷發(fā)生。

        同時(shí),由上面的工作過錯(cuò)可以看出,通過ISR或別的方法寫入不同的TCMPBn的數(shù)值,就可以調(diào)節(jié)輸出信號的占空比,實(shí)現(xiàn)脈寬調(diào)制(PWM)。

        Dead Zone主要用在控制外設(shè)的使能,其功能主要是在關(guān)閉一個(gè)設(shè)備和開啟另一個(gè)設(shè)備之間,插入一個(gè)時(shí)間間隙,以防止兩個(gè)設(shè)備同時(shí)改變狀態(tài)。(有利于減小系統(tǒng)干擾?)

        定時(shí)器可以通過TCFG1寄存器的DMA模式位配置為DMA請求源信號(nDMA_REQ)發(fā)生器,當(dāng)定時(shí)器被這樣配置后,它將nDMA_REQ信號一直置低,直到接收到ACK信號。當(dāng)定時(shí)器收到ACK信號,它將nDMA_REQ信號置高(無效)。當(dāng)定時(shí)器被設(shè)置為DMA請求模式時(shí),不會(huì)產(chǎn)生中斷請求。只能有一個(gè)定時(shí)器被配置為DMA請求源。


        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 泰兴市| 格尔木市| 霍邱县| 晋城| 营口市| 即墨市| 井冈山市| 巴塘县| 盱眙县| 双牌县| 贞丰县| 称多县| 蕲春县| 罗田县| 闽侯县| 蓬莱市| 祁东县| 宣汉县| 清远市| 溧阳市| 阜平县| 金昌市| 永福县| 巴林左旗| 喀喇沁旗| 梅河口市| 德令哈市| 郧西县| 晋中市| 神农架林区| 古蔺县| 新河县| 桂阳县| 探索| 铜鼓县| 平安县| 涡阳县| 新乡县| 陆丰市| 华坪县| 芦山县|