Programming Examples
W[P0] = R0.l;
Kick_Off_Next:
P0.H = hi(SPI_RDBR);
P0.L = lo(SPI_RDBR);
R0 = W[P0] (z);
next transfer) */
W[P2++] = R0;
RTI;
Stopping
In order for a data transfer to end after the user has transferred all data,
the following code can be used to stop the SPI. Note that this is typically
done in the interrupt handler to ensure the final data has been sent in its
entirety.
Listing 18-4. Stopping SPI
Stopping_SPI:
P0.H = hi(SPI_CTL);
P0.L = lo(SPI_CTL);
R0 = W[P0];
BITCLR(R0, 14);
W[P0] = R0.L; ssync;
DMA-Based Transfer
The following DMA-driven master-mode SPI autobuffer example shows
how to initialize DMA, initialize SPI, signal the start of a transfer, and
generate a stop condition.
18-48
/* Write that data to SPI_TDBR */
/* SPI receive register */
/* Read SPI receive register (also kicks off
/* Store received data to memory */
/* Exit interrupt handler */
/* Clear SPI enable bit */
/* Disable SPI */
ADSP-BF50x Blackfin Processor Hardware Reference
Need help?
Do you have a question about the ADSP-BF506F and is the answer not in the manual?
Questions and answers