1. 程式人生 > >s3c6410硬體WATCHDOG TIMER(看門狗定時器)

s3c6410硬體WATCHDOG TIMER(看門狗定時器)

  先簡述看門狗的工作過程,看門狗實際是一個定時器,內部有個計數器,每當時鐘訊號到來時,計數器暫存器減一。如果減到0,則重新啟動系統;如果在減到0之前,系統又設定計數器為一個較大的值,則系統不會重啟。系統正常時,就不會重啟;當系統發生故障時,不能設定計數暫存器,系統重新啟動。

1、OVERVIEW  概述

The 6410 RISC microprocessor watchdog timer is used to resume the controller operation whenever it is disturbed by malfunctions such as noise and system errors. The watchdog timer generates the reset signal. It can beused as a normal 16-bit interval timer to request interrupt service.Advantage in using WDT instead of PWM timer is that WDT generates the reset signal.

當控制器操作被噪音或系統錯誤等故障打斷時,S3C6410 RISC 微處理器的看門狗定時器恢復控制器的操作。它可以產生復位訊號。它可以用於16位的間隔定時器來要求中斷服務。。用WDT 代替PWM 定時器的優點是WDT 產生復位訊號。

2、FEATURES  特性

The Watchdog Timer includes the following features:
• Normal interval timer mode with interrupt request.具有中斷請求的正常間隔定時器模式。
• Internal reset signal is activated when the timer count value reaches 0 (time-out).

當定時器計數值達到0(超時),內部復位訊號有效。
• Level-triggered Interrupt mechanism.電平觸發器中斷機制。

3、FUNCTIONAL DESCRIPTION 功能說明

3.1、WATCHDOG TIMER OPERATION 時鐘控制



The watchdog timer uses only PCLK as its source clock. The prescaler value and the frequency division factor are specified in the watchdog timer control (WTCON) register. Valid prescaler values range from 0 to 28-1. The frequency division factor can be selected as 16, 32, 64,or 128.

Use the following equation to calculate the watchdog timer clock frequency and the duration of each timer clock cycle:

t_watchdog = 1/( PCLK / (Prescaler value + 1) / Division_factor )

看門狗定時器用PCLK為時鐘源,通過一個8位預分頻器,預分頻係數有暫存器WTCON的(8~15)位決定。分頻後的頻率就相當於PCLK/(WTCON[8-15]+1)。然後,通過一個4項分頻器,分頻係數分別是16、32、64、128.通過WTCON[4-3]位控制。

控制暫存器的WTCON的第二位為1,則發出一箇中斷訊號;第0位為1,則發出一個復位訊號。

3.2、WTDAT & WTCNT

Once the watchdog timer is enabled, the value of watchdog timer data (WTDAT) register cannot be automatically reloaded into the timer counter (WTCNT). For this reason, an initial value must be written to the watchdog timer count (WTCNT) register, before the watchdog timer starts.

一旦看門狗定時器有效,看門狗定時器資料(WTDAT)暫存器的值將不能被自動重新載入定時器數(WTCNT)。在看門狗定時器開始前,一個初始值必須寫入看門狗定時器計數(WTDAT)暫存器。

3.3、CONSIDERATION OF DEBUGGING ENVIRONMENT

When the 6410 is in debug mode using Embedded ICE, the watchdog timer must not operate.

當S3C6410在除錯模式(使用嵌入的ICE)時,看門狗定時器不能進行操作。

4、暫存器:



(1)、WTCON 暫存器允許使用者啟動/禁止看門狗定時器,從四個不同的時鐘源選擇時鐘訊號,啟動/禁止看門狗定時器輸出。

(2)、WTDAT暫存器用於指定超時時間。當看門狗作為定時器使用時,當計數器WTCNT的值到0時,WTDAT暫存器的值會被自動裝入WTCNT,並不會發出復位訊號。

(3)、正常操作情況下,WTCNT 暫存器包含看門狗定時器的當前計數值。

(4)、WTCLRINT 暫存器用於清除中斷。中斷服務完成後,中斷服務程式清除相關中斷。

注:我的理解,其實看門狗定時器,包含兩個功能,一個是看門狗,另一個是定時器。

當不用於系統復位,只用於定時器功能,這時它的WTDAT暫存器才是有用的。

當它作為看門狗使用時,WTDAT暫存器沒意義,你想一下,當不能喂狗,系統復位時,以前設定的引數還有意義嗎?所以只有用於定時器時,發生中斷後,WTDAT暫存器的值自動裝入WTCNT,開始下一輪的定時。