English
Language : 

COP8AME9_14 Datasheet, PDF (73/102 Pages) Texas Instruments – COP8AME9 8-Bit CMOS Flash Microcontroller with 8k Memory, Dual Op Amps, Virtual EEPROM, Temperature Sensor, 10-Bit A/D and Brownout Reset
COP8AME9, COP8ANE9
www.ti.com
NON-MASKABLE INTERRUPT
SNOS930F – MARCH 2001 – REVISED MARCH 2013
Pending Flag
There is a pending flag bit associated with the non-maskable Software Trap interrupt, called STPND. This
pending flag is not memory-mapped and cannot be accessed directly by the software.
The pending flag is reset to zero when a device Reset occurs. When the non-maskable interrupt occurs, the
associated pending bit is set to 1. The interrupt service routine should contain an RPND instruction to reset the
pending flag to zero. The RPND instruction always resets the STPND flag.
Software Trap
The Software Trap is a special kind of non-maskable interrupt which occurs when the INTR instruction (used to
acknowledge interrupts) is fetched from program memory and placed in the instruction register. This can happen
in a variety of ways, usually because of an error condition. Some examples of causes are listed below.
If the program counter incorrectly points to a memory location beyond the programmed Flash memory space, the
unused memory location returns zeros which is interpreted as the INTR instruction.
If the stack is popped beyond the allowed limit (address 06F Hex), a 7FFF will be loaded into the PC. Since the
Option Register resides at this location, and to maintain the integrity of the stack overpop protection, the Flash
memory will return a zero on an instruction fetch and a software trap will be triggered.
A Software Trap can be triggered by a temporary hardware condition such as a brownout or power supply glitch.
The Software Trap has the highest priority of all interrupts. When a Software Trap occurs, the STPND bit is set.
The GIE bit is not affected and the pending bit (not accessible by the user) is used to inhibit other interrupts and
to direct the program to the ST service routine with the VIS instruction. Nothing can interrupt a Software Trap
service routine except for another Software Trap. The STPND can be reset only by the RPND instruction or a
chip Reset.
The Software Trap indicates an unusual or unknown error condition. Generally, returning to normal execution at
the point where the Software Trap occurred cannot be done reliably. Therefore, the Software Trap service routine
should re-initialize the stack pointer and perform a recovery procedure that re-starts the software at some known
point, similar to a device Reset, but not necessarily performing all the same functions as a device Reset. The
routine must also execute the RPND instruction to reset the STPND flag. Otherwise, all other interrupts will be
locked out. To the extent possible, the interrupt routine should record or indicate the context of the device so that
the cause of the Software Trap can be determined.
If the user wishes to return to normal execution from the point at which the Software Trap was triggered, the user
must first execute RPND, followed by RETSK rather than RETI or RET. This is because the return address
stored on the stack is the address of the INTR instruction that triggered the interrupt. The program must skip that
instruction in order to proceed with the next one. Otherwise, an infinite loop of Software Traps and returns will
occur.
Programming a return to normal execution requires careful consideration. If the Software Trap routine is
interrupted by another Software Trap, the RPND instruction in the service routine for the second Software Trap
will reset the STPND flag; upon return to the first Software Trap routine, the STPND flag will have the wrong
state. This will allow maskable interrupts to be acknowledged during the servicing of the first Software Trap. To
avoid problems such as this, the user program should contain the Software Trap routine to perform a recovery
procedure rather than a return to normal execution.
Under normal conditions, the STPND flag is reset by a RPND instruction in the Software Trap service routine. If a
programming error or hardware condition (brownout, power supply glitch, etc.) sets the STPND flag without
providing a way for it to be cleared, all other interrupts will be locked out. To alleviate this condition, the user can
use extra RPND instructions in the main program and in the Watchdog service routine (if present). There is no
harm in executing extra RPND instructions in these parts of the program.
Copyright © 2001–2013, Texas Instruments Incorporated
Submit Documentation Feedback
73
Product Folder Links: COP8AME9 COP8ANE9