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