Deserial Serial Peripheral Interface (DSPI)
MPC5510 Microcontroller Family Reference Manual, Rev. 1
Freescale Semiconductor
23-33
Preliminary
entry. In slave mode the DSPI only responds to transfers initiated by a bus master external to the DSPI and
the SPI command field of the TX FIFO entry is ignored.
23.4.3.1
SPI Master Mode
In SPI master mode the DSPI initiates the serial transfers by controlling the serial communications clock
(SCK
x
) and the peripheral chip select (PCS
x
) signals. The SPI command field in the executing TX FIFO
entry determines which CTARs will be used to set the transfer attributes and which PCS
x
signal to assert.
The command field also contains various bits that help with queue management and transfer protocol. See
Section 23.3.2.6, “DSPI PUSH TX FIFO Register (DSPI_PUSHR)
,” for details on the SPI command
fields. The data field in the executing TX FIFO entry is loaded into the shift register and shifted out on the
serial out (SOUT
x
) pin. In SPI master mode, each SPI frame to be transmitted has a command associated
with it allowing for transfer attribute control on a frame by frame basis.
23.4.3.2
SPI Slave Mode
In SPI slave mode the DSPI responds to transfers initiated by an SPI bus master. The DSPI does not initiate
transfers. Certain transfer attributes such as clock polarity, clock phase and frame size must be set for
successful communication with an SPI master. The SPI slave mode transfer attributes are set in the
DSPI
x
_CTAR0.
23.4.3.3
FIFO Disable Operation
The FIFO disable mechanisms allow SPI transfers without using the TX FIFO or RX FIFO. The DSPI
operates as a double-buffered simplified SPI when the FIFOs are disabled. The TX and RX FIFOs are
disabled separately. The TX FIFO is disabled by writing a 1 to the DIS_TXF bit in the DSPI
x
_MCR. The
RX FIFO is disabled by writing a 1 to the DIS_RXF bit in the DSPI
x
_MCR.
The FIFO disable mechanisms are transparent to the user and to host software; transmit data and
commands are written to the DSPI
x
_PUSHR and received data is read from the DSPI
x
_POPR. When the
TX FIFO is disabled, the TFFF, TFUF, and TXCTR fields in DSPI
x
_SR behave as if there is a one-entry
FIFO but the contents of the DSPI
x
_TXFRs and TXNXTPTR are undefined. When the RX FIFO is
disabled, the RFDF, RFOF, and RXCTR fields in the DSPI
x
_SR behave as if there is a one-entry FIFO but
the contents of the DSPI
x
_RXFRs and POPNXTPTR are undefined.
The TX and RX FIFOs must be disabled only if the application's operating mode requires the FIFO to be
disabled. A FIFO must be disabled before it is accessed. Failure to disable a FIFO prior to a first FIFO
access is not supported, and may result in incorrect results.
23.4.3.4
Transmit First-In First-Out (TX FIFO) Buffering Mechanism
The TX FIFO functions as a buffer of SPI data and SPI commands for transmission. The TX FIFO holds
four entries, each consisting of a command field and a data field. SPI commands and data are added to the
TX FIFO by writing to the DSPI push TX FIFO register (DSPI
x
_PUSHR). For more information on
DSPI
x
_PUSHR, refer to
Section 23.3.2.6, “DSPI PUSH TX FIFO Register (DSPI_PUSHR)
.” TX FIFO
entries can be removed from the TX FIFO only by being shifted out or by flushing the TX FIFO.