![]() |
MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
Data Structures | |
| struct | sai_sdma_handle_t |
| SAI DMA transfer handle, users should not touch the content of the handle. More... | |
Typedefs | |
| typedef void(* | sai_sdma_callback_t )(I2S_Type *base, sai_sdma_handle_t *handle, status_t status, void *userData) |
| SAI SDMA transfer callback function for finish and error. | |
Driver version | |
| #define | FSL_SAI_SDMA_DRIVER_VERSION (MAKE_VERSION(2, 2, 0)) |
| Version 2.2.0. | |
SDMA Transactional | |
| void | SAI_TransferTxCreateHandleSDMA (I2S_Type *base, sai_sdma_handle_t *handle, sai_sdma_callback_t callback, void *userData, sdma_handle_t *dmaHandle, uint32_t eventSource) |
| Initializes the SAI SDMA handle. More... | |
| void | SAI_TransferRxCreateHandleSDMA (I2S_Type *base, sai_sdma_handle_t *handle, sai_sdma_callback_t callback, void *userData, sdma_handle_t *dmaHandle, uint32_t eventSource) |
| Initializes the SAI Rx SDMA handle. More... | |
| void | SAI_TransferTxSetFormatSDMA (I2S_Type *base, sai_sdma_handle_t *handle, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
| Configures the SAI Tx audio format. More... | |
| void | SAI_TransferRxSetFormatSDMA (I2S_Type *base, sai_sdma_handle_t *handle, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
| Configures the SAI Rx audio format. More... | |
| status_t | SAI_TransferSendSDMA (I2S_Type *base, sai_sdma_handle_t *handle, sai_transfer_t *xfer) |
| Performs a non-blocking SAI transfer using DMA. More... | |
| status_t | SAI_TransferReceiveSDMA (I2S_Type *base, sai_sdma_handle_t *handle, sai_transfer_t *xfer) |
| Performs a non-blocking SAI receive using SDMA. More... | |
| void | SAI_TransferAbortSendSDMA (I2S_Type *base, sai_sdma_handle_t *handle) |
| Aborts a SAI transfer using SDMA. More... | |
| void | SAI_TransferAbortReceiveSDMA (I2S_Type *base, sai_sdma_handle_t *handle) |
| Aborts a SAI receive using SDMA. More... | |
| void | SAI_TransferRxSetConfigSDMA (I2S_Type *base, sai_sdma_handle_t *handle, sai_transceiver_t *saiConfig) |
| brief Configures the SAI RX. More... | |
| void | SAI_TransferTxSetConfigSDMA (I2S_Type *base, sai_sdma_handle_t *handle, sai_transceiver_t *saiConfig) |
| brief Configures the SAI Tx. More... | |
| struct _sai_sdma_handle |
Data Fields | |
| sdma_handle_t * | dmaHandle |
| DMA handler for SAI send. | |
| uint8_t | bytesPerFrame |
| Bytes in a frame. | |
| uint8_t | channel |
| start data channel | |
| uint8_t | channelNums |
| total transfer channel numbers, used for multififo | |
| uint8_t | channelMask |
| enabled channel mask value, refernece _sai_channel_mask | |
| uint8_t | fifoOffset |
| fifo address offset between multifo | |
| uint8_t | count |
| The transfer data count in a DMA request. | |
| uint32_t | state |
| Internal state for SAI SDMA transfer. | |
| uint32_t | eventSource |
| SAI event source number. | |
| sai_sdma_callback_t | callback |
| Callback for users while transfer finish or error occurs. | |
| void * | userData |
| User callback parameter. | |
| sdma_buffer_descriptor_t | bdPool [SAI_XFER_QUEUE_SIZE] |
| BD pool for SDMA transfer. More... | |
| sai_transfer_t | saiQueue [SAI_XFER_QUEUE_SIZE] |
| Transfer queue storing queued transfer. More... | |
| size_t | transferSize [SAI_XFER_QUEUE_SIZE] |
| Data bytes need to transfer. | |
| volatile uint8_t | queueUser |
| Index for user to queue transfer. More... | |
| volatile uint8_t | queueDriver |
| Index for driver to get the transfer data and size. | |
| sdma_buffer_descriptor_t sai_sdma_handle_t::bdPool[SAI_XFER_QUEUE_SIZE] |
| sai_transfer_t sai_sdma_handle_t::saiQueue[SAI_XFER_QUEUE_SIZE] |
| volatile uint8_t sai_sdma_handle_t::queueUser |
| void SAI_TransferTxCreateHandleSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle, | ||
| sai_sdma_callback_t | callback, | ||
| void * | userData, | ||
| sdma_handle_t * | dmaHandle, | ||
| uint32_t | eventSource | ||
| ) |
This function initializes the SAI master DMA handle, which can be used for other SAI master transactional APIs. Usually, for a specified SAI instance, call this API once to get the initialized handle.
| base | SAI base pointer. |
| handle | SAI SDMA handle pointer. |
| base | SAI peripheral base address. |
| callback | Pointer to user callback function. |
| userData | User parameter passed to the callback function. |
| dmaHandle | SDMA handle pointer, this handle shall be static allocated by users. |
| void SAI_TransferRxCreateHandleSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle, | ||
| sai_sdma_callback_t | callback, | ||
| void * | userData, | ||
| sdma_handle_t * | dmaHandle, | ||
| uint32_t | eventSource | ||
| ) |
This function initializes the SAI slave DMA handle, which can be used for other SAI master transactional APIs. Usually, for a specified SAI instance, call this API once to get the initialized handle.
| base | SAI base pointer. |
| handle | SAI SDMA handle pointer. |
| base | SAI peripheral base address. |
| callback | Pointer to user callback function. |
| userData | User parameter passed to the callback function. |
| dmaHandle | SDMA handle pointer, this handle shall be static allocated by users. |
| void SAI_TransferTxSetFormatSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle, | ||
| sai_transfer_format_t * | format, | ||
| uint32_t | mclkSourceClockHz, | ||
| uint32_t | bclkSourceClockHz | ||
| ) |
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred. This function also sets the SDMA parameter according to formatting requirements.
| base | SAI base pointer. |
| handle | SAI SDMA handle pointer. |
| format | Pointer to SAI audio data format structure. |
| mclkSourceClockHz | SAI master clock source frequency in Hz. |
| bclkSourceClockHz | SAI bit clock source frequency in Hz. If bit clock source is master clock, this value should equals to masterClockHz in format. |
| kStatus_Success | Audio format set successfully. |
| kStatus_InvalidArgument | The input argument is invalid. |
| void SAI_TransferRxSetFormatSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle, | ||
| sai_transfer_format_t * | format, | ||
| uint32_t | mclkSourceClockHz, | ||
| uint32_t | bclkSourceClockHz | ||
| ) |
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred. This function also sets the SDMA parameter according to formatting requirements.
| base | SAI base pointer. |
| handle | SAI SDMA handle pointer. |
| format | Pointer to SAI audio data format structure. |
| mclkSourceClockHz | SAI master clock source frequency in Hz. |
| bclkSourceClockHz | SAI bit clock source frequency in Hz. If a bit clock source is the master clock, this value should equal to masterClockHz in format. |
| kStatus_Success | Audio format set successfully. |
| kStatus_InvalidArgument | The input argument is invalid. |
| status_t SAI_TransferSendSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle, | ||
| sai_transfer_t * | xfer | ||
| ) |
| base | SAI base pointer. |
| handle | SAI SDMA handle pointer. |
| xfer | Pointer to the DMA transfer structure. |
| kStatus_Success | Start a SAI SDMA send successfully. |
| kStatus_InvalidArgument | The input argument is invalid. |
| kStatus_TxBusy | SAI is busy sending data. |
| status_t SAI_TransferReceiveSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle, | ||
| sai_transfer_t * | xfer | ||
| ) |
| base | SAI base pointer |
| handle | SAI SDMA handle pointer. |
| xfer | Pointer to DMA transfer structure. |
| kStatus_Success | Start a SAI SDMA receive successfully. |
| kStatus_InvalidArgument | The input argument is invalid. |
| kStatus_RxBusy | SAI is busy receiving data. |
| void SAI_TransferAbortSendSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle | ||
| ) |
| base | SAI base pointer. |
| handle | SAI SDMA handle pointer. |
| void SAI_TransferAbortReceiveSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle | ||
| ) |
| base | SAI base pointer |
| handle | SAI SDMA handle pointer. |
| void SAI_TransferRxSetConfigSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle, | ||
| sai_transceiver_t * | saiConfig | ||
| ) |
param base SAI base pointer. param handle SAI SDMA handle pointer. param saiConig sai configurations.
| void SAI_TransferTxSetConfigSDMA | ( | I2S_Type * | base, |
| sai_sdma_handle_t * | handle, | ||
| sai_transceiver_t * | saiConfig | ||
| ) |
param base SAI base pointer. param handle SAI SDMA handle pointer. param saiConig sai configurations.