67
Watchdog modalities
The watchdog function resets the board at the end of the countdown.
There are two ways to program the watchdog:
•Using BIOS INT 52h
•Using direct Super I/O registers programming
BIOS INT 52h - functions 0Ch, 0Dh, 0Eh
This method can be used under DOS or under Operating Systems using the board BIOS (i.e. not under Linux which erases the BIOS after the boot and autonomously manage the module hardware).
The functions implemented from the BIOS are:
INT 52h, function 0Ch: watchdog enabling with a fixed time of 2 seconds. This function programs and starts immediately the watchdog counter.
INT 52h, function 0Dh: watchdog erasing. Counting is interrupted and watchdog disabled.
INT 52h, function 0Eh: watchdog refresh. Every call to this function restarts the counting from the initial value.
When the watchdog is activated, the countdown starts immediately. If no refresh occurs, when the default timeout expires, the board reset is executed. So the watchdog must be enabled and continuously refreshed, avoiding in this way the board reset.
Example: |
|
|
... |
|
|
MOV | AH, 0Ch |
|
INT | 52h | ; Enable the watchdog (fixed timeout = 2 seconds) |
... |
|
|
Super I/O registers programming
This method must be used when the OS doesn’t manage the BIOS (i.e. Linux) or when a personalized watchdog programming is required.
The following example shows how to change the Super I/O (SPIO) FDC 37B782 watchdog registers:
; SPIO: enter in configuration mode ...
MOV DX, 03F0h | ; SPIO Index Port |
67