System Installation
ROBO-8914VG2AR User’s Manual
3-9
3.5
WDT Function
The working algorithm of the WDT function can be simply described as a counting
process. The Time-Out Interval can be set through software programming. The
availability of the time-out interval settings by software or hardware varies from
boards to boards.
ROBO-8914VG2AR allows users control WDT through dynamic software
programming. The WDT starts counting when it is activated. It sends out a signal to
system reset or to non-maskable interrupt (NMI), when time-out interval ends. To
prevent the time-out interval from running out, a re-trigger signal will need to be
sent before the counting reaches its end. This action will restart the counting process.
A well-written WDT program should keep the counting process running under
normal condition. WDT should never generate a system reset or NMI signal unless
the system runs into troubles.
The related Control Registers of WDT are all included in the following sample
program that is written in C language. User can fill a non-zero value into the Time-
out Value
Register to enable/refresh WDT. System will be reset after the Time-out
Value to be counted down to zero. Or user can directly fill a zero value into Time-
out Value Register to disable WDT immediately. To ensure a successful accessing to
the content of desired Control Register, the sequence of following program codes
should be step-by-step run again when each register is accessed.
Additionally, there are maximum 2 seconds of counting tolerance that should be
considered into user’ application program. For more information about WDT, please
refer to Winbond W83627THG data sheet.
There are two PNP I/O port addresses that can be used to configure WDT,
1) 0x2E:EFIR (Extended Function Index Register, for identifying CR index number)
2) 0x2F:EFDR (Extended Function Data Register, for accessing desired CR)
Below are some example codes, which demonstrate the use of WDT.
//Step1. Enter W83627THG configuration registers mode:
outportb(0x2E, 0x87);
outportb(0x2E, 0x87);
//* Step2. Pin89 to be WDTO
outportb(0x2E, 0x2b);
outportb(0x2E + 1, 0x04);
//* Step3. Select logic device 8:
outportb(0x2E, 0x07);
outportb(0x2E + 1, 0x08);