![]() |
MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
Files | |
file | fsl_spi_dma.h |
Data Structures | |
struct | spi_dma_handle_t |
SPI DMA transfer handle, users should not touch the content of the handle. More... | |
Typedefs | |
typedef void(* | spi_dma_callback_t )(SPI_Type *base, spi_dma_handle_t *handle, status_t status, void *userData) |
SPI DMA callback called at the end of transfer. More... | |
Driver version | |
#define | FSL_SPI_DMA_DRIVER_VERSION (MAKE_VERSION(2, 1, 1)) |
SPI DMA driver version 2.1.1. More... | |
DMA Transactional | |
status_t | SPI_MasterTransferCreateHandleDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_dma_callback_t callback, void *userData, dma_handle_t *txHandle, dma_handle_t *rxHandle) |
Initialize the SPI master DMA handle. More... | |
status_t | SPI_MasterTransferDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_transfer_t *xfer) |
Perform a non-blocking SPI transfer using DMA. More... | |
status_t | SPI_MasterHalfDuplexTransferDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_half_duplex_transfer_t *xfer) |
Transfers a block of data using a DMA method. More... | |
static status_t | SPI_SlaveTransferCreateHandleDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_dma_callback_t callback, void *userData, dma_handle_t *txHandle, dma_handle_t *rxHandle) |
Initialize the SPI slave DMA handle. More... | |
static status_t | SPI_SlaveTransferDMA (SPI_Type *base, spi_dma_handle_t *handle, spi_transfer_t *xfer) |
Perform a non-blocking SPI transfer using DMA. More... | |
void | SPI_MasterTransferAbortDMA (SPI_Type *base, spi_dma_handle_t *handle) |
Abort a SPI transfer using DMA. More... | |
status_t | SPI_MasterTransferGetCountDMA (SPI_Type *base, spi_dma_handle_t *handle, size_t *count) |
Gets the master DMA transfer remaining bytes. More... | |
static void | SPI_SlaveTransferAbortDMA (SPI_Type *base, spi_dma_handle_t *handle) |
Abort a SPI transfer using DMA. More... | |
static status_t | SPI_SlaveTransferGetCountDMA (SPI_Type *base, spi_dma_handle_t *handle, size_t *count) |
Gets the slave DMA transfer remaining bytes. More... | |
struct _spi_dma_handle |
Data Fields | |
volatile bool | txInProgress |
Send transfer finished. | |
volatile bool | rxInProgress |
Receive transfer finished. | |
dma_handle_t * | txHandle |
DMA handler for SPI send. | |
dma_handle_t * | rxHandle |
DMA handler for SPI receive. | |
uint8_t | bytesPerFrame |
Bytes in a frame for SPI transfer. | |
spi_dma_callback_t | callback |
Callback for SPI DMA transfer. | |
void * | userData |
User Data for SPI DMA callback. | |
uint32_t | state |
Internal state of SPI DMA transfer. | |
size_t | transferSize |
Bytes need to be transfer. | |
#define FSL_SPI_DMA_DRIVER_VERSION (MAKE_VERSION(2, 1, 1)) |
typedef void(* spi_dma_callback_t)(SPI_Type *base, spi_dma_handle_t *handle, status_t status, void *userData) |
status_t SPI_MasterTransferCreateHandleDMA | ( | SPI_Type * | base, |
spi_dma_handle_t * | handle, | ||
spi_dma_callback_t | callback, | ||
void * | userData, | ||
dma_handle_t * | txHandle, | ||
dma_handle_t * | rxHandle | ||
) |
This function initializes the SPI master DMA handle which can be used for other SPI master transactional APIs. Usually, for a specified SPI instance, user need only call this API once to get the initialized handle.
base | SPI peripheral base address. |
handle | SPI handle pointer. |
callback | User callback function called at the end of a transfer. |
userData | User data for callback. |
txHandle | DMA handle pointer for SPI Tx, the handle shall be static allocated by users. |
rxHandle | DMA handle pointer for SPI Rx, the handle shall be static allocated by users. |
status_t SPI_MasterTransferDMA | ( | SPI_Type * | base, |
spi_dma_handle_t * | handle, | ||
spi_transfer_t * | xfer | ||
) |
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
xfer | Pointer to dma transfer structure. |
kStatus_Success | Successfully start a transfer. |
kStatus_InvalidArgument | Input argument is invalid. |
kStatus_SPI_Busy | SPI is not idle, is running another transfer. |
status_t SPI_MasterHalfDuplexTransferDMA | ( | SPI_Type * | base, |
spi_dma_handle_t * | handle, | ||
spi_half_duplex_transfer_t * | xfer | ||
) |
This function using polling way to do the first half transimission and using DMA way to do the srcond half transimission, the transfer mechanism is half-duplex. When do the second half transimission, code will return right away. When all data is transferred, the callback function is called.
base | SPI base pointer |
handle | A pointer to the spi_master_dma_handle_t structure which stores the transfer state. |
xfer | A pointer to the spi_half_duplex_transfer_t structure. |
|
inlinestatic |
This function initializes the SPI slave DMA handle which can be used for other SPI master transactional APIs. Usually, for a specified SPI instance, user need only call this API once to get the initialized handle.
base | SPI peripheral base address. |
handle | SPI handle pointer. |
callback | User callback function called at the end of a transfer. |
userData | User data for callback. |
txHandle | DMA handle pointer for SPI Tx, the handle shall be static allocated by users. |
rxHandle | DMA handle pointer for SPI Rx, the handle shall be static allocated by users. |
|
inlinestatic |
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
xfer | Pointer to dma transfer structure. |
kStatus_Success | Successfully start a transfer. |
kStatus_InvalidArgument | Input argument is invalid. |
kStatus_SPI_Busy | SPI is not idle, is running another transfer. |
void SPI_MasterTransferAbortDMA | ( | SPI_Type * | base, |
spi_dma_handle_t * | handle | ||
) |
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
status_t SPI_MasterTransferGetCountDMA | ( | SPI_Type * | base, |
spi_dma_handle_t * | handle, | ||
size_t * | count | ||
) |
This function gets the master DMA transfer remaining bytes.
base | SPI peripheral base address. |
handle | A pointer to the spi_dma_handle_t structure which stores the transfer state. |
count | A number of bytes transferred by the non-blocking transaction. |
|
inlinestatic |
base | SPI peripheral base address. |
handle | SPI DMA handle pointer. |
|
inlinestatic |
This function gets the slave DMA transfer remaining bytes.
base | SPI peripheral base address. |
handle | A pointer to the spi_dma_handle_t structure which stores the transfer state. |
count | A number of bytes transferred by the non-blocking transaction. |