7542 Group
Rev.3.03
Jul 11, 2008
Page 72 of 117
REJ03B0006-0303
5. 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, since the output data may reverse because
of noise, rewrite data to its port latch at fixed periods.
Rewrite data to direction registers and pull-up control registers at
fixed periods.
Fig. 95 Setup for I/O ports
6. 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 op-
eration, 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 mul-
tiple times in a single main routine processing.
Fig. 96 Watchdog timer by software
<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 ≥ (Counts of interrupt processing executed in each main
routine)
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 process-
ing after the initial value N has been set.
Detects that the interrupt processing routine has failed and de-
termines 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 process-
ing.
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 process-
ing 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.
Main routine
(SWDT)← N
CLI
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
Direction register
Port latch
Data bus
I/O port
pins
Noise
N.G.
O.K.