Motorola MPC860 PowerQUICC User Manual page 844

Table of Contents

Advertisement

Part V. The Communications Processor Module
31.9 SPI Slave Programming Example
The following is an example initialization sequence to follow when the SPI is in slave
mode. It is very similar to the SPI master example, except that SPISEL is used instead of a
general-purpose I/O signal (as shown in Figure 31-2).
1. Set PBPAR[28Ð31] and PBDIR[28Ð31] to enable SPIMISO, SPIMOSI, SPICLK,
and SPISEL, then clear PBODR[28Ð31].
2. Assuming one RxBD at the beginning of the dual-port RAM followed by one TxBD,
write RBASE with 0x0000 and TBASE with 0x0008 in the SPI parameter RAM.
3. Write RFCR and TFCR with 0x10 for normal operation.
4. Execute the
INIT RX AND TX PARAMETERS
5. Write 0x0001 to SDCR.
6. Set MRBLR = 0x0010 for 16 bytes, the maximum number of bytes per buffer.
7. Initialize the RxBD. Assume the Rx buffer is at 0x0000_1000 in main memory.
Write 0xB000 to RxBD[Status and Control], 0x0000 to RxBD[Data Length]
(optional), and 0x0000_1000 to RxBD[Buffer Pointer].
8. Initialize the TxBD. Assume the Tx buffer is at 0x0000_2000 in main memory and
contains Þve 8-bit characters. Write 0xB800 to TxBD[Status and Control], 0x0005
to TxBD[Data Length], and 0x0000_2000 to TxBD[Buffer Pointer].
9. Write 0xFF to SPIE to clear any previous events.
10. Write 0x37 to SPIM to enable all SPI interrupts.
11. Write 0x0000_0020 to CIMR (that is, set CIMR[SPI]) to allow the SPI to generate
a system interrupt. The CICR should also be initialized.
12. Set SPMODE to 0x0170 to enable normal operation (not loopback), slave mode, SPI
enabled, and 8-bit characters. Baud-rate generator speed is ignored in slave mode.
13. Set SPCOM[STR] to enable the SPI to be ready once the master begins the transfer.
Note that if the master sends 3 bytes and negates SPISEL, the RxBD is closed but the TxBD
remains open. If the master sends 5 or more bytes, the TxBD is closed after the Þfth byte.
If the master sends 16 bytes and negates SPISEL, the RxBD is closed without triggering a
busy error (SPIE[BSY]). If the master sends more than 16 bytes, the RxBD is closed (full)
and an SPIE[BSY] event occurs after the 17th byte is received.
31-18
MPC860 PowerQUICC UserÕs Manual
command by writing 0x0051 to CPCR.
MOTOROLA

Advertisement

Table of Contents
loading

Table of Contents