MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
This section describes the programming interface of the DSPI Peripheral driver. The DSPI driver configures DSPI module and provides the functional and transactional interfaces to build the DSPI application.
Data Structures | |
struct | dspi_master_dma_handle_t |
DSPI master DMA transfer handle structure used for transactional API. More... | |
struct | dspi_slave_dma_handle_t |
DSPI slave DMA transfer handle structure used for transactional API. More... | |
Typedefs | |
typedef void(* | dspi_master_dma_transfer_callback_t )(SPI_Type *base, dspi_master_dma_handle_t *handle, status_t status, void *userData) |
Completion callback function pointer type. More... | |
typedef void(* | dspi_slave_dma_transfer_callback_t )(SPI_Type *base, dspi_slave_dma_handle_t *handle, status_t status, void *userData) |
Completion callback function pointer type. More... | |
Functions | |
void | DSPI_MasterTransferCreateHandleDMA (SPI_Type *base, dspi_master_dma_handle_t *handle, dspi_master_dma_transfer_callback_t callback, void *userData, dma_handle_t *dmaRxRegToRxDataHandle, dma_handle_t *dmaTxDataToIntermediaryHandle, dma_handle_t *dmaIntermediaryToTxRegHandle) |
Initializes the DSPI master DMA handle. More... | |
status_t | DSPI_MasterTransferDMA (SPI_Type *base, dspi_master_dma_handle_t *handle, dspi_transfer_t *transfer) |
DSPI master transfers data using DMA. More... | |
void | DSPI_MasterTransferAbortDMA (SPI_Type *base, dspi_master_dma_handle_t *handle) |
DSPI master aborts a transfer which is using DMA. More... | |
status_t | DSPI_MasterTransferGetCountDMA (SPI_Type *base, dspi_master_dma_handle_t *handle, size_t *count) |
Gets the master DMA transfer remaining bytes. More... | |
void | DSPI_SlaveTransferCreateHandleDMA (SPI_Type *base, dspi_slave_dma_handle_t *handle, dspi_slave_dma_transfer_callback_t callback, void *userData, dma_handle_t *dmaRxRegToRxDataHandle, dma_handle_t *dmaTxDataToTxRegHandle) |
Initializes the DSPI slave DMA handle. More... | |
status_t | DSPI_SlaveTransferDMA (SPI_Type *base, dspi_slave_dma_handle_t *handle, dspi_transfer_t *transfer) |
DSPI slave transfers data using DMA. More... | |
void | DSPI_SlaveTransferAbortDMA (SPI_Type *base, dspi_slave_dma_handle_t *handle) |
DSPI slave aborts a transfer which is using DMA. More... | |
status_t | DSPI_SlaveTransferGetCountDMA (SPI_Type *base, dspi_slave_dma_handle_t *handle, size_t *count) |
Gets the slave DMA transfer remaining bytes. More... | |
struct _dspi_master_dma_handle |
Forward declaration of the DSPI DMA master handle typedefs.
Data Fields | |
uint32_t | bitsPerFrame |
The desired number of bits per frame. More... | |
volatile uint32_t | command |
The desired data command. More... | |
volatile uint32_t | lastCommand |
The desired last data command. More... | |
uint8_t | fifoSize |
FIFO dataSize. More... | |
volatile bool | isPcsActiveAfterTransfer |
Indicates whether the PCS signal keeps active after the last frame transfer. More... | |
volatile bool | isThereExtraByte |
Indicates whether there is an extra byte. More... | |
uint8_t *volatile | txData |
Send buffer. More... | |
uint8_t *volatile | rxData |
Receive buffer. More... | |
volatile size_t | remainingSendByteCount |
A number of bytes remaining to send. More... | |
volatile size_t | remainingReceiveByteCount |
A number of bytes remaining to receive. More... | |
size_t | totalByteCount |
A number of transfer bytes. | |
uint32_t | rxBuffIfNull |
Used if there is not rxData for DMA purpose. More... | |
uint32_t | txBuffIfNull |
Used if there is not txData for DMA purpose. More... | |
volatile uint8_t | state |
DSPI transfer state, see _dspi_transfer_state. More... | |
dspi_master_dma_transfer_callback_t | callback |
Completion callback. More... | |
void * | userData |
Callback user data. More... | |
dma_handle_t * | dmaRxRegToRxDataHandle |
dma_handle_t handle point used for RxReg to RxData buff | |
dma_handle_t * | dmaTxDataToIntermediaryHandle |
dma_handle_t handle point used for TxData to Intermediary | |
dma_handle_t * | dmaIntermediaryToTxRegHandle |
dma_handle_t handle point used for Intermediary to TxReg | |
uint32_t dspi_master_dma_handle_t::bitsPerFrame |
volatile uint32_t dspi_master_dma_handle_t::command |
volatile uint32_t dspi_master_dma_handle_t::lastCommand |
uint8_t dspi_master_dma_handle_t::fifoSize |
volatile bool dspi_master_dma_handle_t::isPcsActiveAfterTransfer |
volatile bool dspi_master_dma_handle_t::isThereExtraByte |
uint8_t* volatile dspi_master_dma_handle_t::txData |
uint8_t* volatile dspi_master_dma_handle_t::rxData |
volatile size_t dspi_master_dma_handle_t::remainingSendByteCount |
volatile size_t dspi_master_dma_handle_t::remainingReceiveByteCount |
uint32_t dspi_master_dma_handle_t::rxBuffIfNull |
uint32_t dspi_master_dma_handle_t::txBuffIfNull |
volatile uint8_t dspi_master_dma_handle_t::state |
dspi_master_dma_transfer_callback_t dspi_master_dma_handle_t::callback |
void* dspi_master_dma_handle_t::userData |
struct _dspi_slave_dma_handle |
Forward declaration of the DSPI DMA slave handle typedefs.
Data Fields | |
uint32_t | bitsPerFrame |
Desired number of bits per frame. More... | |
volatile bool | isThereExtraByte |
Indicates whether there is an extra byte. More... | |
uint8_t *volatile | txData |
A send buffer. More... | |
uint8_t *volatile | rxData |
A receive buffer. More... | |
volatile size_t | remainingSendByteCount |
A number of bytes remaining to send. More... | |
volatile size_t | remainingReceiveByteCount |
A number of bytes remaining to receive. More... | |
size_t | totalByteCount |
A number of transfer bytes. | |
uint32_t | rxBuffIfNull |
Used if there is not rxData for DMA purpose. More... | |
uint32_t | txBuffIfNull |
Used if there is not txData for DMA purpose. More... | |
uint32_t | txLastData |
Used if there is an extra byte when 16 bits per frame for DMA purpose. More... | |
volatile uint8_t | state |
DSPI transfer state. More... | |
uint32_t | errorCount |
Error count for the slave transfer. More... | |
dspi_slave_dma_transfer_callback_t | callback |
Completion callback. More... | |
void * | userData |
Callback user data. More... | |
dma_handle_t * | dmaRxRegToRxDataHandle |
dma_handle_t handle point used for RxReg to RxData buff | |
dma_handle_t * | dmaTxDataToTxRegHandle |
dma_handle_t handle point used for TxData to TxReg | |
uint32_t dspi_slave_dma_handle_t::bitsPerFrame |
volatile bool dspi_slave_dma_handle_t::isThereExtraByte |
uint8_t* volatile dspi_slave_dma_handle_t::txData |
uint8_t* volatile dspi_slave_dma_handle_t::rxData |
volatile size_t dspi_slave_dma_handle_t::remainingSendByteCount |
volatile size_t dspi_slave_dma_handle_t::remainingReceiveByteCount |
uint32_t dspi_slave_dma_handle_t::rxBuffIfNull |
uint32_t dspi_slave_dma_handle_t::txBuffIfNull |
uint32_t dspi_slave_dma_handle_t::txLastData |
volatile uint8_t dspi_slave_dma_handle_t::state |
uint32_t dspi_slave_dma_handle_t::errorCount |
dspi_slave_dma_transfer_callback_t dspi_slave_dma_handle_t::callback |
void* dspi_slave_dma_handle_t::userData |
typedef void(* dspi_master_dma_transfer_callback_t)(SPI_Type *base, dspi_master_dma_handle_t *handle, status_t status, void *userData) |
base | DSPI peripheral base address. |
handle | Pointer to the handle for the DSPI master. |
status | Success or error code describing whether the transfer completed. |
userData | Arbitrary pointer-dataSized value passed from the application. |
typedef void(* dspi_slave_dma_transfer_callback_t)(SPI_Type *base, dspi_slave_dma_handle_t *handle, status_t status, void *userData) |
base | DSPI peripheral base address. |
handle | Pointer to the handle for the DSPI slave. |
status | Success or error code describing whether the transfer completed. |
userData | Arbitrary pointer-dataSized value passed from the application. |
void DSPI_MasterTransferCreateHandleDMA | ( | SPI_Type * | base, |
dspi_master_dma_handle_t * | handle, | ||
dspi_master_dma_transfer_callback_t | callback, | ||
void * | userData, | ||
dma_handle_t * | dmaRxRegToRxDataHandle, | ||
dma_handle_t * | dmaTxDataToIntermediaryHandle, | ||
dma_handle_t * | dmaIntermediaryToTxRegHandle | ||
) |
This function initializes the DSPI DMA handle which can be used for other DSPI transactional APIs. Usually, for a specified DSPI instance, call this API once to get the initialized handle.
Note that DSPI DMA has a separated (Rx and Tx as two sources) or shared (Rx and Tx is the same source) DMA request source. (1) For a separated DMA request source, enable and set the Rx DMAMUX source for dmaRxRegToRxDataHandle and Tx DMAMUX source for dmaIntermediaryToTxRegHandle. (2) For a shared DMA request source, enable and set the Rx/Rx DMAMUX source for dmaRxRegToRxDataHandle.
base | DSPI peripheral base address. |
handle | DSPI handle pointer to dspi_master_dma_handle_t. |
callback | DSPI callback. |
userData | A callback function parameter. |
dmaRxRegToRxDataHandle | dmaRxRegToRxDataHandle pointer to dma_handle_t. |
dmaTxDataToIntermediaryHandle | dmaTxDataToIntermediaryHandle pointer to dma_handle_t. |
dmaIntermediaryToTxRegHandle | dmaIntermediaryToTxRegHandle pointer to dma_handle_t. |
status_t DSPI_MasterTransferDMA | ( | SPI_Type * | base, |
dspi_master_dma_handle_t * | handle, | ||
dspi_transfer_t * | transfer | ||
) |
This function transfers data using DMA. This is a non-blocking function, which returns right away. When all data is transferred, the callback function is called.
Note that the master DMA transfer does not support the transfer_size of 1 when the bitsPerFrame is greater than 8.
base | DSPI peripheral base address. |
handle | A pointer to the dspi_master_dma_handle_t structure which stores the transfer state. |
transfer | A pointer to the dspi_transfer_t structure. |
void DSPI_MasterTransferAbortDMA | ( | SPI_Type * | base, |
dspi_master_dma_handle_t * | handle | ||
) |
This function aborts a transfer which is using DMA.
base | DSPI peripheral base address. |
handle | A pointer to the dspi_master_dma_handle_t structure which stores the transfer state. |
status_t DSPI_MasterTransferGetCountDMA | ( | SPI_Type * | base, |
dspi_master_dma_handle_t * | handle, | ||
size_t * | count | ||
) |
This function gets the master DMA transfer remaining bytes.
base | DSPI peripheral base address. |
handle | A pointer to the dspi_master_dma_handle_t structure which stores the transfer state. |
count | A number of bytes transferred by the non-blocking transaction. |
void DSPI_SlaveTransferCreateHandleDMA | ( | SPI_Type * | base, |
dspi_slave_dma_handle_t * | handle, | ||
dspi_slave_dma_transfer_callback_t | callback, | ||
void * | userData, | ||
dma_handle_t * | dmaRxRegToRxDataHandle, | ||
dma_handle_t * | dmaTxDataToTxRegHandle | ||
) |
This function initializes the DSPI DMA handle which can be used for other DSPI transactional APIs. Usually, for a specified DSPI instance, call this API once to get the initialized handle.
Note that DSPI DMA has a separated (Rx and Tx as two sources) or shared (Rx and Tx is the same source) DMA request source. (1) For a separated DMA request source, enable and set the Rx DMAMUX source for dmaRxRegToRxDataHandle and Tx DMAMUX source for dmaTxDataToTxRegHandle. (2) For a shared DMA request source, enable and set the Rx/Rx DMAMUX source for dmaRxRegToRxDataHandle.
base | DSPI peripheral base address. |
handle | DSPI handle pointer to dspi_slave_dma_handle_t. |
callback | DSPI callback. |
userData | A callback function parameter. |
dmaRxRegToRxDataHandle | dmaRxRegToRxDataHandle pointer to dma_handle_t. |
dmaTxDataToTxRegHandle | dmaTxDataToTxRegHandle pointer to dma_handle_t. |
status_t DSPI_SlaveTransferDMA | ( | SPI_Type * | base, |
dspi_slave_dma_handle_t * | handle, | ||
dspi_transfer_t * | transfer | ||
) |
This function transfers data using DMA. This is a non-blocking function, which returns right away. When all data is transferred, the callback function is called.
Note that the slave DMA transfer does not support the transfer_size of 1 when the bitsPerFrame is greater than eight.
base | DSPI peripheral base address. |
handle | A pointer to the dspi_slave_dma_handle_t structure which stores the transfer state. |
transfer | A pointer to the dspi_transfer_t structure. |
void DSPI_SlaveTransferAbortDMA | ( | SPI_Type * | base, |
dspi_slave_dma_handle_t * | handle | ||
) |
This function aborts a transfer which is using DMA.
base | DSPI peripheral base address. |
handle | A pointer to the dspi_slave_dma_handle_t structure which stores the transfer state. |
status_t DSPI_SlaveTransferGetCountDMA | ( | SPI_Type * | base, |
dspi_slave_dma_handle_t * | handle, | ||
size_t * | count | ||
) |
This function gets the slave DMA transfer remaining bytes.
base | DSPI peripheral base address. |
handle | A pointer to the dspi_slave_dma_handle_t structure which stores the transfer state. |
count | A number of bytes transferred by the non-blocking transaction. |