MPC555
/
MPC556
QUEUED SERIAL MULTI-CHANNEL MODULE
MOTOROLA
USER’S MANUAL
Rev. 15 October 2000
14-40
above. Note that PCS[0]/SS does not necessarily have to be negated between trans-
fers.
Once the proper number of bits (designated by BITS) are transferred, the QSPI stores
the received data in the receive data segment, stores the internal working queue point-
er value in CPTQP, increments the internal working queue pointer, and loads the new
transmit data from the transmit data segment into the data serializer. The internal
working queue pointer address is used the next time PCS[0]/SS is asserted, unless
the CPU writes to the NEWQP first.
The DT and DSCK command control bits are not used in slave mode. As a slave, the
QSPI does not drive the clock line nor the chip-select lines and, therefore, does not
generate a delay.
In slave mode, the QSPI shifts out the data in the transmit data segment. The trans-
mit data is loaded into the data serializer (refer to
Figure
) for transmission. When
the PCS[0]/SS pin is pulled low the MISO pin becomes active and the serializer then
shifts the 16 bits of data out in sequence, most significant bit first, as clocked by the
incoming SCK signal. The QSPI uses CPHA and CPOL to determine which incoming
SCK edge the MOSI pin uses to latch incoming data, and which edge the MISO pin
uses to drive the data out.
The QSPI transmits and receives data until reaching the end of the queue (defined as
a match with the address in ENDQP), regardless of whether PCS[0]/SS remains se-
lected or is toggled between serial transfers. Receiving the proper number of bits caus-
es the received data to be stored. The QSPI always transmits as many bits as it
receives at each queue address, until the BITS value is reached or PCS[0]/SS is ne-
gated.
14.7.7 Slave Wraparound Mode
When the QSPI reaches the end of the queue, it always sets the SPIF flag, whether
wraparound mode is enabled or disabled. An optional interrupt to the CPU is gen-er-
ated when SPIF is asserted. At this point, the QSPI clears SPE and stops unless wrap-
around mode is enabled. A description of SPIFIE bit can be found in 4.3.3 QSPI
Control Register 2 (SPCR2).
In wraparound mode, the QSPI cycles through the queue continuously. Each time the
end of the queue is reached, the SPIF flag is set. If the CPU fails to clear SPIF, it re-
mains set, and the QSPI continues to send interrupt requests to the CPU (assuming
SPIFIE is set). The user may avoid causing CPU interrupts by clearing SPIFIE.
As SPIFIE is buffered, clearing it after the SPIF flag is asserted does not immediately
stop the CPU interrupts, but only prevents future interrupts from this source. To clear
the current interrupt, the CPU must read QSPI register SPSR with SPIF asserted, fol-
lowed by a write to SPSR with zero in SPIF (clear SPIF). Execution continues in wrap-
around mode even while the QSPI is requesting interrupt service from the CPU. The
internal working queue pointer is incremented to the next address and the commands
are executed again. SPE is not cleared by the QSPI. New receive data overwrites pre-
viously received data located in the receive data segment.
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
.
..