Embedded Solutions Page 24
Interrupts
All IP Module interrupts are vectored. The vector from the IP-429 comes from a vector
register loaded as part of the initialization process. The vector register can be
programmed to any 8 bit value. The default value is $FF which is sometimes not a valid
user vector. Software is responsible for choosing a valid user vector.
Although the IP specification calls for vectored interrupts many modern systems are
auto-vectored and do not require a vector to be read. This will be an automatic part of
your system – with vectored interrupts the INT space is accessed to read the vector and
in an auto-vectored system the status register is read to determine what the cause or
causes are.
The IP-429 interface logic will generate an interrupt request when a transmission or
reception is complete and the INTEN bits in the control registers are set. The interrupt
is mapped to interrupt request 0. The CPU will respond by asserting INT. The hardware
will automatically supply the appropriate interrupt vector and clear the request when
accessed by the CPU. The source of the interrupt is obtained by reading the status
registers. The status remains valid until the interrupt is cleared. The interrupt is cleared
by accessing the individual 429 interface devices for Receiver interrupts and toggling
the enable for Transmitter interrupts.
The interrupt level seen by the CPU is determined by the IP Carrier board being used.
If operating in a polled mode and making use of the interrupts for status the interrupt
enables should be disabled and the status register polled to determine which interrupt is
active.
Power on initialization will provide a cleared interrupt request, interrupts disabled, and
interrupt vector of $FF.