Kinetis SDK v.2.0 API Reference Manual
Rev. 0
Freescale Semiconductor, Inc.
|
This section describes the programming interface of the DSPI Peripheral driver. The DSPI driver configures DSPI module, provides the functional and transactional interfaces to build the DSPI application.
Files | |
file | fsl_dspi_dma.h |
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 |
Desired number of bits per frame. More... | |
volatile uint32_t | command |
Desired data command. More... | |
volatile uint32_t | lastCommand |
Desired last data command. More... | |
uint8_t | fifoSize |
FIFO dataSize. More... | |
volatile bool | isPcsActiveAfterTransfer |
Is PCS signal keep active after the last frame transfer. More... | |
volatile bool | isThereExtraByte |
Is there extra byte. More... | |
uint8_t *volatile | txData |
Send buffer. More... | |
uint8_t *volatile | rxData |
Receive buffer. More... | |
volatile size_t | remainingSendByteCount |
Number of bytes remaining to send. More... | |
volatile size_t | remainingReceiveByteCount |
Number of bytes remaining to receive. More... | |
size_t | totalByteCount |
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 , _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 |
Is there extra byte. More... | |
uint8_t *volatile | txData |
Send buffer. More... | |
uint8_t *volatile | rxData |
Receive buffer. More... | |
volatile size_t | remainingSendByteCount |
Number of bytes remaining to send. More... | |
volatile size_t | remainingReceiveByteCount |
Number of bytes remaining to receive. More... | |
size_t | totalByteCount |
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 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 | 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 master DMA transfer cannot support the transfer_size of 1 when the bitsPerFrame is greater than 8.
base | DSPI peripheral base address. |
handle | pointer to dspi_master_dma_handle_t structure which stores the transfer state. |
transfer | pointer to 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 | pointer to 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 | pointer to dspi_master_dma_handle_t structure which stores the transfer state. |
count | number point of bytes transferred so far 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 one time 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 | 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 cannot support the transfer_size of 1 when the bitsPerFrame is greater than 8.
base | DSPI peripheral base address. |
handle | pointer to dspi_slave_dma_handle_t structure which stores the transfer state. |
transfer | pointer to 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 | pointer to 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 | pointer to dspi_slave_dma_handle_t structure which stores the transfer state. |
count | number point of bytes transferred so far by the non-blocking transaction. |