MC68HC16R1/916R1
USER’S MANUAL
SINGLE-CHIP INTEGRATION MODULE 2
MOTOROLA
5-59
WARNING
Do not assign the same arbitration priority to more than one module.
When two or more IARB fields have the same nonzero value, the
CPU16 interprets multiple vector numbers at the same time, with
unpredictable consequences.
Because the EBI manages external interrupt requests, the SCIM2 IARB value is used
for arbitration between internal and external interrupt requests. The reset value of
IARB for the SCIM2 is %1111, and the reset IARB value for all other modules is
%0000.
Although arbitration is intended to deal with simultaneous requests of the same
interrupt level, it always takes place, even when a single source is requesting service.
This is important for two reasons: the EBI does not transfer the interrupt acknowledge
read cycle to the external bus unless the SCIM2 wins contention, and failure to con-
tend causes the interrupt acknowledge bus cycle to be terminated early by a bus error.
When arbitration is complete, the module with both the highest asserted interrupt level
and the highest arbitration priority must terminate the bus cycle. Internal modules
place an interrupt vector number on the data bus and generate appropriate internal
cycle termination signals. In the case of an external interrupt request, after the interrupt
acknowledge cycle is transferred to the external bus, the appropriate external device
must respond with a vector number, then generate data size acknowledge (DSACK)
termination signals, or it must assert the autovector (AVEC) request signal. If the de-
vice does not respond in time, the SCIM2 bus monitor, if enabled, asserts the bus error
signal (BERR), and a spurious interrupt exception is taken.
Chip-select logic can also be used to generate internal AVEC or DSACK signals in
response to interrupt acknowledgement cycles. Refer to
5.9.3 Using Chip-Select Sig-
nals for Interrupt Acknowledge
for more information. Chip-select address match
logic functions only after the EBI transfers an interrupt acknowledge cycle to the exter-
nal bus following IARB contention. All interrupts from internal modules have their
associated IACK cycles terminated with an internal DSACK. Thus, user vectors
(instead of autovectors) must always be used for interrupts generated from internal
modules. If an internal module makes an interrupt request of a certain priority, and the
appropriate chip-select registers are programmed to generate AVEC or DSACK
signals in response to an interrupt acknowledge cycle for that priority level, chip-select
logic does not respond to the interrupt acknowledge cycle, and the internal module
supplies a vector number and generates internal cycle termination signals.
For periodic timer interrupts, the PIRQ[2:0] field in the periodic interrupt control register
(PICR) determines PIT priority level. A PIRQ[2:0] value of %000 means that PIT
interrupts are inactive. By hardware convention, when the CPU16 receives simulta-
neous interrupt requests of the same level from more than one SCIM2 source (includ-
ing external devices), the periodic interrupt timer is given the highest priority, followed
by the IRQ pins.