M68HC16 Z SERIES
QUEUED SERIAL MODULE
USER’S MANUAL
9-3
9.2.1.2 Freeze Operation
The freeze FRZ[1:0] bits in QSMCR are used to determine what action is taken by the
QSM when the IMB FREEZE signal is asserted. FREEZE is asserted when the CPU16
enters background debug mode. At the present time, FRZ0 has no effect; setting
FRZ1 causes the QSPI to halt on the first transfer boundary following FREEZE asser-
tion. Refer to
for more information about back-
ground debug mode.
9.2.1.3 QSM Interrupts
Both the QSPI and SCI can generate interrupt requests. Each has a separate interrupt
request priority register. A single vector register is used to generate exception vector
numbers.
The values of the ILQSPI and ILSCI fields in QILR determine the priority of QSPI and
SCI interrupt requests. The values in these fields correspond to internal interrupt re-
quest signals IRQ[7:1]. A value of %111 causes IRQ7 to be asserted when a QSM in-
terrupt request is made. Lower field values cause correspondingly lower-numbered
interrupt request signals to be asserted. Setting the ILQSPI or ILSCI field values to
%000 disables interrupts for the QSPI and the SCI respectively. If ILQSPI and ILSCI
have the same non-zero value, and the QSPI and SCI make simultaneous interrupt
requests, the QSPI has priority.
When the CPU16 acknowledges an interrupt request, it places the value in the condi-
tion code register interrupt priority (IP) mask on ADDR[3:1]. The QSM compares the
IP mask value to the priority of the interrupt request to determine whether it should
contend for arbitration. QSM arbitration priority is determined by the value of the IARB
field in QSMCR. Each module that can generate interrupt requests must have a non-
zero IARB value, otherwise the CPU16 will identify any such interrupt requests as spu-
rious and take a spurious interrupt exception. Arbitration is performed by means of se-
rial contention between values stored in individual module IARB fields.
When the QSM wins interrupt arbitration, it responds to the CPU16 interrupt acknowl-
edge cycle by placing an interrupt vector number on the data bus. The vector number
is used to calculate displacement into the CPU16 exception vector table. SCI and
QSPI vector numbers are generated from the value in the QIVR INTV field. The values
of bits INTV[7:1] are the same for both the QSPI and the SCI. The value of INTV0 is
supplied by the QSM when an interrupt request is made. INTV0 = 0 for SCI interrupt
requests; INTV0 = 1 for QSPI interrupt requests.
At reset, INTV[7:0] is initialized to $0F, the uninitialized interrupt vector number. To en-
able interrupt-driven serial communication, a user-defined vector number must be writ-
ten to QIVR, and interrupt handler routines must be located at the addresses pointed
to by the corresponding vector. Writes to INTV0 have no effect. Reads of INTV0 return
a value of one.
Refer to
SECTION 4 CENTRAL PROCESSOR UNIT
and
for more information about exceptions and interrupts.
F
re
e
sc
a
le
S
e
m
ic
o
n
d
u
c
to
r,
I
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
c
.
..