177
3. APPENDIX
3819 Group USER’S MANUAL
MITSUBISHI MICROCOMPUTER
3819 Group
3.2 Countermeasures against noise
3.2.5 Setup for I/O ports
Setup I/O ports using hardware and software as follows:
<Hardware>
qConnect a resistor of 100
or more to an I/O port in
series.
<Software>
qAs for an input port, read data several times by a
program for checking whether input levels are equal
or not.
qAs for an output port, since the output data may
reverse because of noise, rewrite data to its data
register at fixed periods.
qRewirte data to direction registers and pull-up control
registers (only the product having it) at fixed periods.
Fig. 3.2.8 Setup for I/O ports
When a direction register is set to input port again at fixed periods, a several-nanosecond short pulse may be output
from this port. If this is undesirable, connect a capacitor to this port to remove the noise pulse.
3.2.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 opera-
tion. 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 pro-
vided 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 process-
ing routine detects errors of the main routine.
This example assumes that interrupt processing is
repeated multiple times in a single main routine process-
ing.
<The main routine>
qAssigns 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:
Fig. 3.2.9 Watchdog timer by software
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.
qWatches the operation of the interrupt processing routine by comparing the SWDT contents with counts of interrupt
processing count after the initial value N has been set.
qDetects that the interrupt processing routine has failed and determines to branch to the program initialization routine
for recovery processing in the following cases:
x If the SWDT contents do not change after interrupt processing
If the changed SWDT contents are abnormal
(In Figure 3.2.9, the main routine determines that the interrupt processing routine has failed only if the SWDT
contents do not change).
Direction register
Data register
Data bus
I/O port
pins
Noise
Main routine
(SWDT)
← N
CLI
Main processing
(SWDT)
Interrupt processing
routine errors
≠N
= N
Interrupt processing routine
(SWDT)
← (SWDT)—1
Interrupt processing
(SWDT)
Main routine
errors
>0
≤0
RTI
Return
= N?
≤0?