
Interrupt Controller
MOTOROLA
MC68EZ328 USERS MANUAL
6-5
The MC68EZ328s RESET signal should be held low for at least 100ms after the VDD and
32.768kHz/38.4kHz clocks are steady. After reset, all peripheral function signals and
parallel I/O signals will appear as inputs with pull-up resistors turned on, unless otherwise
specified. The muxed parallel I/O D[7:0]/PA[7:0] data bus will serve as the data bus if the
BUSW signal is high during the rising edge of RESET. If BUSW is low during the rising edge
of RESET, the D[7:0]/PA[7:0] pins will be input with a pulled high resistor.
Since the MC68EZ328 supports normal mode, emulation mode, and bootstrap mode and
these operation modes are controlled by the EMUIRQ, EMUBRK and HIZ signals during
system reset, you should pay special attention when using these signals. Refer to
for more
information.
6.3.1 DATA BUS WIDTH FOR BOOT DEVICE OPERATION
The word size of the boot device (ROM/EPROM/FLASH) is determined by the BUSW signal.
If it is high during the rising edge of the RESET signal, the 16-bit boot device will be
configured. Otherwise, it will be configured as an 8-bit boot device.
6.4 INTERRUPT CONTROLLER OPERATION
When interrupts are received by the controller, they are prioritized and the highest enabled
pending interrupt is posted to the core. Before the CPU responds to this interrupt, the status
register is copied internally. Then the supervisor bit of the CPU status register is set, which
puts the processor into supervisor mode. The CPU then responds with an interrupt
acknowledge cycle, in which the lower 3 bits of the address bus reflect the level of the
current interrupt. The interrupt controller generates a vector number during the interrupt
acknowledge cycle and the CPU uses this vector number to generate a vector address.
Except for the reset exception, the CPU saves the current processor status, including the
program counter value (which points to the next instruction to be executed after the
interrupt), and the saved copy of the interrupt status register. The new program counter is
updated to the content of the interrupt vector, which points to the interrupt service routine.
The CPU then resumes instruction execution to execute the interrupt service routine.
Interrupt priority is based on the interrupt level. If the CPU is currently processing an
interrupt service routine and a higher priority interrupt is posted, the process described
above repeats, and the higher priority interrupt is serviced. If the priority of the newer
interrupt is lower than or equal to the priority of the current interrupt, execution of the current
interrupt handler continues. This newer interrupt is postponed until its priority becomes the
highest. Interrupts within a same level should be prioritized in software by the interrupt
handler. The interrupt service routine should end with the rte instruction, which restores the
processing state prior to the interrupt.
The MC68EZ328 provides one interrupt vector for each of the seven user interrupt levels.
These interrupt vectors form the user interrupt vector section of
Table 6-1. The user interrupt
vectors can be located anywhere within the 0x100 to 0x400 address range. You can
program the five most-significant bits of the interrupt vector number, but the lower three bits
reflect the interrupt level that is being serviced. All interrupts are maskable by the interrupt
controller. If an interrupt is masked, its status can still be accessed in the interrupt pending
register (IPR).