15-44
MPC561/MPC563 Reference Manual
MOTOROLA
Queued Serial Peripheral Interface
by BITS in the current receive data segment address, then increments the address and
continues storing as described above.
NOTE
PCS0/SS does not necessarily have to be negated between
transfers.
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 pointer 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 PCS0/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 15-1) for transmission. When the PCS0/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 PCS0/SS remains selected or is
toggled between serial transfers. Receiving the proper number of bits causes 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 PCS0/SS is negated.
15.6.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-erated
when SPIF is asserted. At this point, the QSPI clears SPE and stops unless wraparound
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 remains 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