
4551 Group User’s Manual
APPENDIX
3-17
3.4 Notes on noise
3.4.4 Setup for I/O ports
Setup I/O ports using hardware and software as
follows:
<Hardware>
Connect a resistor of 100
or more to an I/O port
in series.
<Software>
As for an input port, read data several times by
a program for checking whether input levels are
equal or not.
As for an output port or an I/O port, since the
output data may reverse because of noise, rewrite
data to its output latch at fixed periods.
Rewrite data to pull-up control registers at fixed
periods.
3.4.5 Providing of watchdog timer function by
software
If a microcomputer runs away because of noise or
others, it can be detected by a software watchdog
timer and the microcomputer can be reset to normal
operation. This is equal to or more effective than
program runaway detection by a hardware watchdog
timer. The following shows an example of a watchdog
timer provided by software.
In the following example, to reset a microcomputer
to normal operation, the main routine detects errors
of the interrupt processing routine and the interrupt
processing routine detects errors of the main routine.
This example assumes that interrupt processing is
repeated multiple times in a single main routine
processing.
<The main routine>
Assigns a single byte of RAM to a software
watchdog timer (SWDT) and writes the initial value
N in the SWDT once at each execution of the
main routine. The initial value N should satisfy
the following condition:
N+1
≥
As the main routine execution cycle may change
because of an interrupt processing or others, the
initial value N should have a margin.
Watches the operation of the interrupt processing
routine by comparing the SWDT contents with
counts of interrupt processing after the initial value
N has been set.
Detects that the interrupt processing routine has
failed and determines to branch to the program
initialization routine for recovery processing in the
following case:
If the SWDT contents do not change after interrupt
processing.
<The interrupt processing routine>
Decrements the SWDT contents by 1 at each
interrupt processing.
Determines that the main routine operates normally
when the SWDT contents are reset to the initial
value N at almost fixed cycles (at the fixed interrupt
processing count).
Detects that the main routine has failed and
determines to branch to the program initialization
routine for recovery processing in the following
case:
If the SWDT contents are not initialized to the
initial value N but continued to decrement and if
they reach 0 or less.
(Counts of interrupt processing executed in
each main routine)
Fig. 3.4.10 Watchdog timer by software
Main routine
(SWDT)
← N
EI
Main processing
(SWDT)
Interrupt processing
routine errors
N
Interrupt processing routine
(SWDT)
← (SWDT)—1
Interrupt processing
(SWDT)
Main routine
errors
>0
≤0
RTI
Return
=N?
≤0?
≠N