實驗目的
本節(jié)視頻的目的是熟悉定時器的基本結(jié)構(gòu),學習看門狗定時器的功能和控制方法,并實現(xiàn)基于定時器中斷方式控制程序。
實驗原理
定時器
TMS320C6748有4個定時器/計數(shù)器,均可配置為64位計數(shù)器、兩個獨立32位計數(shù)器及自動重裝32位計數(shù)器,可以產(chǎn)生周期中斷DMA事件及外部事件。定時器/計數(shù)器還可以用于捕獲外部輸入信號邊緣并計數(shù)。此外,定時器1還可以用作64位看門狗計數(shù)器。
本實驗使用的是定時器1。
定時器的功能
(1)定時
時鐘源一般來源于DSP內(nèi)部,當然也可以選擇來自于外部。
(2)計數(shù)
可以利用它的功能來計算外部脈沖在一段時間內(nèi)到來的次數(shù),所以叫做計數(shù)器(記錄外部脈沖的次數(shù))。因為內(nèi)部有一個計數(shù)的count,如果用作定時就是先輸入一個數(shù)字,然后在來了一個時鐘之后count自動減一。如果用成計數(shù)就是在一個脈沖到來之后count自動加一。
(3)看門狗
一些定時器設(shè)計有信號連接到內(nèi)部器件的復位,因此可用于看門狗定時器模式。
定時器的特性
(1)64 位自增計數(shù)器
(2)定時器模式:
64 位通用定時器模式(低32位定時器叫Timer12,高32位定時器叫Timer34)
雙 32 位非鏈式通用定時器模式模式
雙 32 位鏈式定時器模式
看門狗定時器模式
(3)2種時鐘源:
內(nèi)部時鐘
外部時鐘/事件輸入定時器的相連引腳
(4)3種工作模式:
一次工作 (定時器運行一個周期然后停止)
持續(xù)工作 (定時器在每個周期結(jié)束自動清零并繼續(xù)工作)
持續(xù)工作周期性重載(定時器在每個周期自動獲取重載寄存器的值并繼續(xù)工作)
(5)產(chǎn)生 CPU 中斷
(6)產(chǎn)生輸出事件讓設(shè)備復位(僅看門狗模式)
(7)產(chǎn)生 DMA 同步事件
(8)產(chǎn)生輸出事件到定時器輸出引腳(如果引腳可用)
(9)外部事件捕獲相連的定時器引腳(如果引腳可用)
看門狗
看門狗,又叫watchdog timer,是一個定時器電路,由于芯片的工作常常會受到來自外界電磁場的干擾,造成各種寄存器和內(nèi)存的數(shù)據(jù)混亂,會導致程序指針錯誤、不在程序區(qū)、取出錯誤的程序指令等,都會陷入死循環(huán),程序的正常運行被打斷,由DSP控制的系統(tǒng)無法繼續(xù)正常工作,會造成整個系統(tǒng)的陷入停滯狀態(tài),發(fā)生不可預料的后果。
看門狗就是定期的查看芯片內(nèi)部的情況,一旦發(fā)生錯誤就向芯片發(fā)出重啟信號的電路??撮T狗命令在程序的中斷中擁有最高的優(yōu)先級。
工作原理:在系統(tǒng)運行以后也就啟動了看門狗的計數(shù)器,看門狗就開始自動計數(shù),如果到了一定的時間還不去清看門狗,那么看門狗計數(shù)器就會溢出從而引起看門狗中斷,造成系統(tǒng)復位,所以在使用看門狗時要注意清看門狗。
定時器的時鐘源
時鐘信號可分為內(nèi)部時鐘和外部時鐘輸入,定時器0和定時器1的時鐘為PLL0_AUXCK(旁路時鐘,24MHz),定時器2和定時器3默認狀態(tài)下使用的時鐘為PLL0_SYSCLK2(為系統(tǒng)頻率的二分之一,228MHz),可通過定時器配置將其時鐘設(shè)置為PLL1_SYSCLK2(可以避免因CPU主頻變化對設(shè)備產(chǎn)生的不利影響)。
定時器時鐘源由定時器控制寄存器 (TCR) 時鐘源 (CLKSRC12) 位選擇。復位后,時鐘源為內(nèi)部時鐘。兩個時鐘源都可以驅(qū)動定時器時鐘:
? 設(shè)置 CLKSRC12 = 0 為內(nèi)部時鐘。
? 設(shè)置 CLKSRC12 = 1 為輸入引腳 TM64P_IN12 外部時鐘。
實驗使用的是定時器1,定時器1時鐘來源于PLL旁路時鐘, 即晶體振蕩器時鐘24MHz。
所以看門狗時間間隔:T=計數(shù)周期*(1/24MHz) =0x07270E00/24000000s=5s
0x07270E00 是程序中設(shè)定的計數(shù)周期。在main.c的宏定義中設(shè)定。
程序流程設(shè)計中首先要初始化串口終端,接著進行定時器初始化,然后在串口終端輸出打印信息,在主循環(huán)中等待等待輸入字符,并復位看門狗定時器。
定時器配置源碼
配置定時器的函數(shù)源碼和函數(shù)使用說明可以查看timer.c。其中,第一個參數(shù)是定時器模塊寄存器的基地址,第二個參數(shù)是用于配置定時器模塊。
周期配置源碼
配置定時器周期的函數(shù)源碼和函數(shù)使用說明可以查看timer.c。其中,第一個參數(shù)是定時器模塊寄存器的基地址,第二個參數(shù)是要設(shè)置周期的定時器,第三個參數(shù)是設(shè)置的周期大小。
看門狗定時器使能源碼
配置使能看門狗定時器的函數(shù)源碼和函數(shù)使用說明可以查看timer.c,參數(shù)是定時器模塊寄存器的基地址。
定時器使能源碼
配置復位看門狗定時器的函數(shù)源碼和函數(shù)使用說明可以查看timer.c,參數(shù)是定時器模塊寄存器的基地址。
操作現(xiàn)象
實驗設(shè)備
本實驗使用的硬件接口為UART2 RS232接口,所需硬件為實驗板、仿真器、RS232 交叉串口母母線、USB轉(zhuǎn)RS232串口線和電源。
硬件連接
(1)使用 RS232 交叉串口母母線和 USB 轉(zhuǎn) RS232 串口線連接實驗板的UART2串口和電腦的 USB
口。
(2)連接仿真器和電腦的USB接口,
(3)將撥碼開關(guān)撥到DEBUG模式01111,連接實驗箱電源,撥動電源開關(guān)上電。
軟件操作
設(shè)置串口調(diào)試工具:
(1)先在設(shè)備管理器查看串口的端口號;
(2)再設(shè)置串口調(diào)試工具,波特率設(shè)置為115200。
CCS操作:
導入工程,選擇Demo文件夾下的對應工程
編譯工程
將CCS連接實驗箱并加載程序
點擊運行程序,串口調(diào)試終端會打印提示信息,若在 5s 內(nèi)無任何信息輸入將復位系統(tǒng)。
由于在仿真加載模式下,復位后程序不會自動運行,故只會打印一次信息。若將程序燒寫到NANDFLASH后,并在NANDFLASH檔位啟動系統(tǒng),系統(tǒng)復位后程序會再次運行,將會持續(xù)打印提示信息。
審核編輯:湯梓紅
-
dsp
+關(guān)注
關(guān)注
552文章
7959瀏覽量
347933 -
嵌入式
+關(guān)注
關(guān)注
5059文章
18975瀏覽量
302086 -
看門狗
+關(guān)注
關(guān)注
10文章
558瀏覽量
70710 -
中斷
+關(guān)注
關(guān)注
5文章
895瀏覽量
41350 -
定時器
+關(guān)注
關(guān)注
23文章
3232瀏覽量
114334
發(fā)布評論請先 登錄
相關(guān)推薦
評論