Classes | |
struct | _sai_bit_clock |
sai bit clock configurations More... | |
struct | _sai_config |
SAI user configuration structure. More... | |
struct | _sai_frame_sync |
sai frame sync configurations More... | |
struct | _sai_handle |
SAI handle structure. More... | |
struct | _sai_serial_data |
sai serial data configurations More... | |
struct | _sai_transceiver |
sai transceiver configurations More... | |
struct | _sai_transfer |
SAI transfer structure. More... | |
struct | _sai_transfer_format |
sai transfer format More... | |
Initialization and deinitialization | |
void | SAI_TxInit (I2S_Type *base, const sai_config_t *config) |
Initializes the SAI Tx peripheral. More... | |
void | SAI_RxInit (I2S_Type *base, const sai_config_t *config) |
Initializes the SAI Rx peripheral. More... | |
void | SAI_TxGetDefaultConfig (sai_config_t *config) |
Sets the SAI Tx configuration structure to default values. More... | |
void | SAI_RxGetDefaultConfig (sai_config_t *config) |
Sets the SAI Rx configuration structure to default values. More... | |
void | SAI_Init (I2S_Type *base) |
Initializes the SAI peripheral. More... | |
void | SAI_Deinit (I2S_Type *base) |
De-initializes the SAI peripheral. More... | |
void | SAI_TxReset (I2S_Type *base) |
Resets the SAI Tx. More... | |
void | SAI_RxReset (I2S_Type *base) |
Resets the SAI Rx. More... | |
void | SAI_TxEnable (I2S_Type *base, bool enable) |
Enables/disables the SAI Tx. More... | |
void | SAI_RxEnable (I2S_Type *base, bool enable) |
Enables/disables the SAI Rx. More... | |
static void | SAI_TxSetBitClockDirection (I2S_Type *base, sai_master_slave_t masterSlave) |
Set Rx bit clock direction. More... | |
static void | SAI_RxSetBitClockDirection (I2S_Type *base, sai_master_slave_t masterSlave) |
Set Rx bit clock direction. More... | |
static void | SAI_RxSetFrameSyncDirection (I2S_Type *base, sai_master_slave_t masterSlave) |
Set Rx frame sync direction. More... | |
static void | SAI_TxSetFrameSyncDirection (I2S_Type *base, sai_master_slave_t masterSlave) |
Set Tx frame sync direction. More... | |
void | SAI_TxSetBitClockRate (I2S_Type *base, uint32_t sourceClockHz, uint32_t sampleRate, uint32_t bitWidth, uint32_t channelNumbers) |
Transmitter bit clock rate configurations. More... | |
void | SAI_RxSetBitClockRate (I2S_Type *base, uint32_t sourceClockHz, uint32_t sampleRate, uint32_t bitWidth, uint32_t channelNumbers) |
Receiver bit clock rate configurations. More... | |
void | SAI_TxSetBitclockConfig (I2S_Type *base, sai_master_slave_t masterSlave, sai_bit_clock_t *config) |
Transmitter Bit clock configurations. More... | |
void | SAI_RxSetBitclockConfig (I2S_Type *base, sai_master_slave_t masterSlave, sai_bit_clock_t *config) |
Receiver Bit clock configurations. More... | |
void | SAI_TxSetFrameSyncConfig (I2S_Type *base, sai_master_slave_t masterSlave, sai_frame_sync_t *config) |
SAI transmitter Frame sync configurations. More... | |
void | SAI_RxSetFrameSyncConfig (I2S_Type *base, sai_master_slave_t masterSlave, sai_frame_sync_t *config) |
SAI receiver Frame sync configurations. More... | |
void | SAI_TxSetSerialDataConfig (I2S_Type *base, sai_serial_data_t *config) |
SAI transmitter Serial data configurations. More... | |
void | SAI_RxSetSerialDataConfig (I2S_Type *base, sai_serial_data_t *config) |
SAI receiver Serial data configurations. More... | |
void | SAI_TxSetConfig (I2S_Type *base, sai_transceiver_t *config) |
SAI transmitter configurations. More... | |
void | SAI_RxSetConfig (I2S_Type *base, sai_transceiver_t *config) |
SAI receiver configurations. More... | |
void | SAI_GetClassicI2SConfig (sai_transceiver_t *config, sai_word_width_t bitWidth, sai_mono_stereo_t mode, uint32_t saiChannelMask) |
Get classic I2S mode configurations. More... | |
void | SAI_GetLeftJustifiedConfig (sai_transceiver_t *config, sai_word_width_t bitWidth, sai_mono_stereo_t mode, uint32_t saiChannelMask) |
Get left justified mode configurations. More... | |
void | SAI_GetRightJustifiedConfig (sai_transceiver_t *config, sai_word_width_t bitWidth, sai_mono_stereo_t mode, uint32_t saiChannelMask) |
Get right justified mode configurations. More... | |
void | SAI_GetTDMConfig (sai_transceiver_t *config, sai_frame_sync_len_t frameSyncWidth, sai_word_width_t bitWidth, uint32_t dataWordNum, uint32_t saiChannelMask) |
Get TDM mode configurations. More... | |
void | SAI_GetDSPConfig (sai_transceiver_t *config, sai_frame_sync_len_t frameSyncWidth, sai_word_width_t bitWidth, sai_mono_stereo_t mode, uint32_t saiChannelMask) |
Get DSP mode configurations. More... | |
Status | |
static uint32_t | SAI_TxGetStatusFlag (I2S_Type *base) |
Gets the SAI Tx status flag state. More... | |
static void | SAI_TxClearStatusFlags (I2S_Type *base, uint32_t mask) |
Clears the SAI Tx status flag state. More... | |
static uint32_t | SAI_RxGetStatusFlag (I2S_Type *base) |
Gets the SAI Tx status flag state. More... | |
static void | SAI_RxClearStatusFlags (I2S_Type *base, uint32_t mask) |
Clears the SAI Rx status flag state. More... | |
void | SAI_TxSoftwareReset (I2S_Type *base, sai_reset_type_t type) |
Do software reset or FIFO reset . More... | |
void | SAI_RxSoftwareReset (I2S_Type *base, sai_reset_type_t type) |
Do software reset or FIFO reset . More... | |
void | SAI_TxSetChannelFIFOMask (I2S_Type *base, uint8_t mask) |
Set the Tx channel FIFO enable mask. More... | |
void | SAI_RxSetChannelFIFOMask (I2S_Type *base, uint8_t mask) |
Set the Rx channel FIFO enable mask. More... | |
void | SAI_TxSetDataOrder (I2S_Type *base, sai_data_order_t order) |
Set the Tx data order. More... | |
void | SAI_RxSetDataOrder (I2S_Type *base, sai_data_order_t order) |
Set the Rx data order. More... | |
void | SAI_TxSetBitClockPolarity (I2S_Type *base, sai_clock_polarity_t polarity) |
Set the Tx data order. More... | |
void | SAI_RxSetBitClockPolarity (I2S_Type *base, sai_clock_polarity_t polarity) |
Set the Rx data order. More... | |
void | SAI_TxSetFrameSyncPolarity (I2S_Type *base, sai_clock_polarity_t polarity) |
Set the Tx data order. More... | |
void | SAI_RxSetFrameSyncPolarity (I2S_Type *base, sai_clock_polarity_t polarity) |
Set the Rx data order. More... | |
Interrupts | |
static void | SAI_TxEnableInterrupts (I2S_Type *base, uint32_t mask) |
Enables the SAI Tx interrupt requests. More... | |
static void | SAI_RxEnableInterrupts (I2S_Type *base, uint32_t mask) |
Enables the SAI Rx interrupt requests. More... | |
static void | SAI_TxDisableInterrupts (I2S_Type *base, uint32_t mask) |
Disables the SAI Tx interrupt requests. More... | |
static void | SAI_RxDisableInterrupts (I2S_Type *base, uint32_t mask) |
Disables the SAI Rx interrupt requests. More... | |
DMA Control | |
static void | SAI_TxEnableDMA (I2S_Type *base, uint32_t mask, bool enable) |
Enables/disables the SAI Tx DMA requests. More... | |
static void | SAI_RxEnableDMA (I2S_Type *base, uint32_t mask, bool enable) |
Enables/disables the SAI Rx DMA requests. More... | |
static uint32_t | SAI_TxGetDataRegisterAddress (I2S_Type *base, uint32_t channel) |
Gets the SAI Tx data register address. More... | |
static uint32_t | SAI_RxGetDataRegisterAddress (I2S_Type *base, uint32_t channel) |
Gets the SAI Rx data register address. More... | |
Bus Operations | |
void | SAI_TxSetFormat (I2S_Type *base, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
Configures the SAI Tx audio format. More... | |
void | SAI_RxSetFormat (I2S_Type *base, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
Configures the SAI Rx audio format. More... | |
void | SAI_WriteBlocking (I2S_Type *base, uint32_t channel, uint32_t bitWidth, uint8_t *buffer, uint32_t size) |
Sends data using a blocking method. More... | |
void | SAI_WriteMultiChannelBlocking (I2S_Type *base, uint32_t channel, uint32_t channelMask, uint32_t bitWidth, uint8_t *buffer, uint32_t size) |
Sends data to multi channel using a blocking method. More... | |
static void | SAI_WriteData (I2S_Type *base, uint32_t channel, uint32_t data) |
Writes data into SAI FIFO. More... | |
void | SAI_ReadBlocking (I2S_Type *base, uint32_t channel, uint32_t bitWidth, uint8_t *buffer, uint32_t size) |
Receives data using a blocking method. More... | |
void | SAI_ReadMultiChannelBlocking (I2S_Type *base, uint32_t channel, uint32_t channelMask, uint32_t bitWidth, uint8_t *buffer, uint32_t size) |
Receives multi channel data using a blocking method. More... | |
static uint32_t | SAI_ReadData (I2S_Type *base, uint32_t channel) |
Reads data from the SAI FIFO. More... | |
Transactional | |
void | SAI_TransferTxCreateHandle (I2S_Type *base, sai_handle_t *handle, sai_transfer_callback_t callback, void *userData) |
Initializes the SAI Tx handle. More... | |
void | SAI_TransferRxCreateHandle (I2S_Type *base, sai_handle_t *handle, sai_transfer_callback_t callback, void *userData) |
Initializes the SAI Rx handle. More... | |
void | SAI_TransferTxSetConfig (I2S_Type *base, sai_handle_t *handle, sai_transceiver_t *config) |
SAI transmitter transfer configurations. More... | |
void | SAI_TransferRxSetConfig (I2S_Type *base, sai_handle_t *handle, sai_transceiver_t *config) |
SAI receiver transfer configurations. More... | |
status_t | SAI_TransferTxSetFormat (I2S_Type *base, sai_handle_t *handle, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
Configures the SAI Tx audio format. More... | |
status_t | SAI_TransferRxSetFormat (I2S_Type *base, sai_handle_t *handle, sai_transfer_format_t *format, uint32_t mclkSourceClockHz, uint32_t bclkSourceClockHz) |
Configures the SAI Rx audio format. More... | |
status_t | SAI_TransferSendNonBlocking (I2S_Type *base, sai_handle_t *handle, sai_transfer_t *xfer) |
Performs an interrupt non-blocking send transfer on SAI. More... | |
status_t | SAI_TransferReceiveNonBlocking (I2S_Type *base, sai_handle_t *handle, sai_transfer_t *xfer) |
Performs an interrupt non-blocking receive transfer on SAI. More... | |
status_t | SAI_TransferGetSendCount (I2S_Type *base, sai_handle_t *handle, size_t *count) |
Gets a set byte count. More... | |
status_t | SAI_TransferGetReceiveCount (I2S_Type *base, sai_handle_t *handle, size_t *count) |
Gets a received byte count. More... | |
void | SAI_TransferAbortSend (I2S_Type *base, sai_handle_t *handle) |
Aborts the current send. More... | |
void | SAI_TransferAbortReceive (I2S_Type *base, sai_handle_t *handle) |
Aborts the current IRQ receive. More... | |
void | SAI_TransferTerminateSend (I2S_Type *base, sai_handle_t *handle) |
Terminate all SAI send. More... | |
void | SAI_TransferTerminateReceive (I2S_Type *base, sai_handle_t *handle) |
Terminate all SAI receive. More... | |
void | SAI_TransferTxHandleIRQ (I2S_Type *base, sai_handle_t *handle) |
Tx interrupt handler. More... | |
void | SAI_TransferRxHandleIRQ (I2S_Type *base, sai_handle_t *handle) |
Tx interrupt handler. More... | |
#define FSL_SAI_DRIVER_VERSION (MAKE_VERSION(2, 3, 1)) |
#define FSL_SAI_HAS_FIFO_EXTEND_FEATURE 0 |
#define SAI_XFER_QUEUE_SIZE (4U) |
typedef enum _sai_bclk_source sai_bclk_source_t |
Bit clock source.
typedef struct _sai_bit_clock sai_bit_clock_t |
sai bit clock configurations
typedef enum _sai_clock_polarity sai_clock_polarity_t |
SAI clock polarity, active high or low.
typedef struct _sai_config sai_config_t |
SAI user configuration structure.
typedef enum _sai_data_order sai_data_order_t |
SAI data order, MSB or LSB.
typedef enum _sai_frame_sync_len sai_frame_sync_len_t |
sai frame sync len
typedef struct _sai_frame_sync sai_frame_sync_t |
sai frame sync configurations
typedef struct _sai_handle sai_handle_t |
typedef enum _sai_master_slave sai_master_slave_t |
Master or slave mode.
typedef enum _sai_mclk_source sai_mclk_source_t |
Mater clock source.
typedef enum _sai_mono_stereo sai_mono_stereo_t |
Mono or stereo audio format.
typedef enum _sai_protocol sai_protocol_t |
Define the SAI bus type.
typedef enum _sai_reset_type sai_reset_type_t |
The reset type.
typedef enum _sai_sample_rate sai_sample_rate_t |
Audio sample rate.
typedef struct _sai_serial_data sai_serial_data_t |
sai serial data configurations
typedef enum _sai_sync_mode sai_sync_mode_t |
Synchronous or asynchronous mode.
typedef struct _sai_transceiver sai_transceiver_t |
sai transceiver configurations
typedef enum _sai_transceiver_type sai_transceiver_type_t |
sai transceiver type
typedef void(* sai_transfer_callback_t) (I2S_Type *base, sai_handle_t *handle, status_t status, void *userData) |
typedef struct _sai_transfer_format sai_transfer_format_t |
sai transfer format
typedef struct _sai_transfer sai_transfer_t |
SAI transfer structure.
typedef enum _sai_word_width sai_word_width_t |
Audio word width.
anonymous enum |
_sai_status_t, SAI return status.
anonymous enum |
_sai_channel_mask,.sai channel mask value, actual channel numbers is depend soc specific
anonymous enum |
_sai_interrupt_enable_t, The SAI interrupt enable flag
anonymous enum |
anonymous enum |
enum _sai_bclk_source |
Bit clock source.
enum _sai_clock_polarity |
enum _sai_data_order |
enum _sai_frame_sync_len |
enum _sai_master_slave |
enum _sai_mclk_source |
enum _sai_mono_stereo |
enum _sai_protocol |
enum _sai_reset_type |
enum _sai_sample_rate |
Audio sample rate.
enum _sai_sync_mode |
enum _sai_word_width |
void SAI_Deinit | ( | I2S_Type * | base | ) |
De-initializes the SAI peripheral.
This API gates the SAI clock. The SAI module can't operate unless SAI_TxInit or SAI_RxInit is called to enable the clock.
base | SAI base pointer. |
brief De-initializes the SAI peripheral.
This API gates the SAI clock. The SAI module can't operate unless SAI_TxInit or SAI_RxInit is called to enable the clock.
param base SAI base pointer
void SAI_GetClassicI2SConfig | ( | sai_transceiver_t * | config, |
sai_word_width_t | bitWidth, | ||
sai_mono_stereo_t | mode, | ||
uint32_t | saiChannelMask | ||
) |
Get classic I2S mode configurations.
config | transceiver configurations. |
bitWidth | audio data bitWidth. |
mode | audio data channel. |
saiChannelMask | mask value of the channel to be enable. |
brief Get classic I2S mode configurations.
param config transceiver configurations. param bitWidth audio data bitWidth. param mode audio data channel. param saiChannelMask channel mask value to enable.
void SAI_GetDSPConfig | ( | sai_transceiver_t * | config, |
sai_frame_sync_len_t | frameSyncWidth, | ||
sai_word_width_t | bitWidth, | ||
sai_mono_stereo_t | mode, | ||
uint32_t | saiChannelMask | ||
) |
Get DSP mode configurations.
config | transceiver configurations. |
frameSyncWidth | length of frame sync. |
bitWidth | audio data bitWidth. |
mode | audio data channel. |
saiChannelMask | mask value of the channel to enable. |
brief Get DSP mode configurations.
param config transceiver configurations. param bitWidth audio data bitWidth. param mode audio data channel. param saiChannelMask channel mask value to enable.
void SAI_GetLeftJustifiedConfig | ( | sai_transceiver_t * | config, |
sai_word_width_t | bitWidth, | ||
sai_mono_stereo_t | mode, | ||
uint32_t | saiChannelMask | ||
) |
Get left justified mode configurations.
config | transceiver configurations. |
bitWidth | audio data bitWidth. |
mode | audio data channel. |
saiChannelMask | mask value of the channel to be enable. |
brief Get left justified mode configurations.
param config transceiver configurations. param bitWidth audio data bitWidth. param mode audio data channel. param saiChannelMask channel mask value to enable.
void SAI_GetRightJustifiedConfig | ( | sai_transceiver_t * | config, |
sai_word_width_t | bitWidth, | ||
sai_mono_stereo_t | mode, | ||
uint32_t | saiChannelMask | ||
) |
Get right justified mode configurations.
config | transceiver configurations. |
bitWidth | audio data bitWidth. |
mode | audio data channel. |
saiChannelMask | mask value of the channel to be enable. |
brief Get right justified mode configurations.
param config transceiver configurations. param bitWidth audio data bitWidth. param mode audio data channel. param saiChannelMask channel mask value to enable.
void SAI_GetTDMConfig | ( | sai_transceiver_t * | config, |
sai_frame_sync_len_t | frameSyncWidth, | ||
sai_word_width_t | bitWidth, | ||
uint32_t | dataWordNum, | ||
uint32_t | saiChannelMask | ||
) |
Get TDM mode configurations.
config | transceiver configurations. |
frameSyncWidth | length of frame sync. |
bitWidth | audio data word width. |
dataWordNum | word number in one frame. |
saiChannelMask | mask value of the channel to be enable. |
brief Get TDM mode configurations.
param config transceiver configurations. param bitWidth audio data bitWidth. param mode audio data channel. param saiChannelMask channel mask value to enable.
void SAI_Init | ( | I2S_Type * | base | ) |
Initializes the SAI peripheral.
This API gates the SAI clock. The SAI module can't operate unless SAI_Init is called to enable the clock.
base | SAI base pointer. |
brief Initializes the SAI peripheral.
This API gates the SAI clock. The SAI module can't operate unless SAI_Init is called to enable the clock.
param base SAI base pointer
void SAI_ReadBlocking | ( | I2S_Type * | base, |
uint32_t | channel, | ||
uint32_t | bitWidth, | ||
uint8_t * | buffer, | ||
uint32_t | size | ||
) |
Receives data using a blocking method.
base | SAI base pointer. |
channel | Data channel used. |
bitWidth | How many bits in an audio word; usually 8/16/24/32 bits. |
buffer | Pointer to the data to be read. |
size | Bytes to be read. |
brief Receives data using a blocking method.
note This function blocks by polling until data is ready to be sent.
param base SAI base pointer. param channel Data channel used. param bitWidth How many bits in an audio word; usually 8/16/24/32 bits. param buffer Pointer to the data to be read. param size Bytes to be read.
|
inlinestatic |
void SAI_ReadMultiChannelBlocking | ( | I2S_Type * | base, |
uint32_t | channel, | ||
uint32_t | channelMask, | ||
uint32_t | bitWidth, | ||
uint8_t * | buffer, | ||
uint32_t | size | ||
) |
Receives multi channel data using a blocking method.
base | SAI base pointer. |
channel | Data channel used. |
channelMask | channel mask. |
bitWidth | How many bits in an audio word; usually 8/16/24/32 bits. |
buffer | Pointer to the data to be read. |
size | Bytes to be read. |
brief Receives multi channel data using a blocking method.
note This function blocks by polling until data is ready to be sent.
param base SAI base pointer. param channel Data channel used. param channelMask channel mask. param bitWidth How many bits in an audio word; usually 8/16/24/32 bits. param buffer Pointer to the data to be read. param size Bytes to be read.
|
inlinestatic |
|
inlinestatic |
Disables the SAI Rx interrupt requests.
base | SAI base pointer |
mask | interrupt source The parameter can be a combination of the following sources if defined.
|
void SAI_RxEnable | ( | I2S_Type * | base, |
bool | enable | ||
) |
|
inlinestatic |
Enables/disables the SAI Rx DMA requests.
base | SAI base pointer |
mask | DMA source The parameter can be a combination of the following sources if defined.
|
enable | True means enable DMA, false means disable DMA. |
|
inlinestatic |
Enables the SAI Rx interrupt requests.
base | SAI base pointer |
mask | interrupt source The parameter can be a combination of the following sources if defined.
|
|
inlinestatic |
void SAI_RxGetDefaultConfig | ( | sai_config_t * | config | ) |
Sets the SAI Rx configuration structure to default values.
This API initializes the configuration structure for use in SAI_RxConfig(). The initialized structure can remain unchanged in SAI_RxConfig() or it can be modified before calling SAI_RxConfig(). This is an example.
config | pointer to master configuration structure |
brief Sets the SAI Rx configuration structure to default values.
deprecated Do not use this function. It has been superceded by SAI_GetClassicI2SConfig,SAI_GetLeftJustifiedConfig,SAI_GetRightJustifiedConfig,SAI_GetDSPConfig,SAI_GetTDMConfig
This API initializes the configuration structure for use in SAI_RxConfig(). The initialized structure can remain unchanged in SAI_RxConfig() or it can be modified before calling SAI_RxConfig(). This is an example. code sai_config_t config; SAI_RxGetDefaultConfig(&config); endcode
param config pointer to master configuration structure
|
inlinestatic |
void SAI_RxInit | ( | I2S_Type * | base, |
const sai_config_t * | config | ||
) |
Initializes the SAI Rx peripheral.
Ungates the SAI clock, resets the module, and configures the SAI Rx with a configuration structure. The configuration structure can be custom filled or set with default values by SAI_RxGetDefaultConfig().
base | SAI base pointer |
config | SAI configuration structure. |
brief Initializes the SAI Rx peripheral.
deprecated Do not use this function. It has been superceded by SAI_Init
Ungates the SAI clock, resets the module, and configures the SAI Rx with a configuration structure. The configuration structure can be custom filled or set with default values by SAI_RxGetDefaultConfig().
note This API should be called at the beginning of the application to use the SAI driver. Otherwise, accessing the SAI module can cause a hard fault because the clock is not enabled.
param base SAI base pointer param config SAI configuration structure.
void SAI_RxReset | ( | I2S_Type * | base | ) |
Resets the SAI Rx.
This function enables the software reset and FIFO reset of SAI Rx. After reset, clear the reset bit.
base | SAI base pointer |
brief Resets the SAI Rx.
This function enables the software reset and FIFO reset of SAI Rx. After reset, clear the reset bit.
param base SAI base pointer
void SAI_RxSetBitclockConfig | ( | I2S_Type * | base, |
sai_master_slave_t | masterSlave, | ||
sai_bit_clock_t * | config | ||
) |
Receiver Bit clock configurations.
base | SAI base pointer. |
masterSlave | master or slave. |
config | bit clock other configurations, can be NULL in slave mode. |
brief Receiver Bit clock configurations.
param base SAI base pointer. param masterSlave master or slave. param config bit clock other configurations, can be NULL in slave mode.
|
inlinestatic |
void SAI_RxSetBitClockPolarity | ( | I2S_Type * | base, |
sai_clock_polarity_t | polarity | ||
) |
void SAI_RxSetBitClockRate | ( | I2S_Type * | base, |
uint32_t | sourceClockHz, | ||
uint32_t | sampleRate, | ||
uint32_t | bitWidth, | ||
uint32_t | channelNumbers | ||
) |
Receiver bit clock rate configurations.
base | SAI base pointer. |
sourceClockHz | Bit clock source frequency. |
sampleRate | Audio data sample rate. |
bitWidth | Audio data bitWidth. |
channelNumbers | Audio channel numbers. |
brief Receiver bit clock rate configurations.
param base SAI base pointer. param sourceClockHz, bit clock source frequency. param sampleRate audio data sample rate. param bitWidth, audio data bitWidth. param channelNumbers, audio channel numbers.
void SAI_RxSetChannelFIFOMask | ( | I2S_Type * | base, |
uint8_t | mask | ||
) |
Set the Rx channel FIFO enable mask.
base | SAI base pointer |
mask | Channel enable mask, 0 means all channel FIFO disabled, 1 means channel 0 enabled, 3 means both channel 0 and channel 1 enabled. |
brief Set the Rx channel FIFO enable mask.
param base SAI base pointer param mask Channel enable mask, 0 means all channel FIFO disabled, 1 means channel 0 enabled, 3 means both channel 0 and channel 1 enabled.
void SAI_RxSetConfig | ( | I2S_Type * | base, |
sai_transceiver_t * | config | ||
) |
void SAI_RxSetDataOrder | ( | I2S_Type * | base, |
sai_data_order_t | order | ||
) |
void SAI_RxSetFormat | ( | I2S_Type * | base, |
sai_transfer_format_t * | format, | ||
uint32_t | mclkSourceClockHz, | ||
uint32_t | bclkSourceClockHz | ||
) |
Configures the SAI Rx audio format.
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred.
base | SAI base pointer. |
format | Pointer to the SAI audio data format structure. |
mclkSourceClockHz | SAI master clock source frequency in Hz. |
bclkSourceClockHz | SAI bit clock source frequency in Hz. If the bit clock source is a master clock, this value should equal the masterClockHz. |
brief Configures the SAI Rx audio format.
deprecated Do not use this function. It has been superceded by SAI_RxSetConfig
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred.
param base SAI base pointer. param format Pointer to the SAI audio data format structure. param mclkSourceClockHz SAI master clock source frequency in Hz. param bclkSourceClockHz SAI bit clock source frequency in Hz. If the bit clock source is a master clock, this value should equal the masterClockHz.
void SAI_RxSetFrameSyncConfig | ( | I2S_Type * | base, |
sai_master_slave_t | masterSlave, | ||
sai_frame_sync_t * | config | ||
) |
SAI receiver Frame sync configurations.
base | SAI base pointer. |
masterSlave | master or slave. |
config | frame sync configurations, can be NULL in slave mode. |
brief SAI receiver Frame sync configurations.
param base SAI base pointer. param masterSlave master or slave. param config frame sync configurations, can be NULL in slave mode.
|
inlinestatic |
void SAI_RxSetFrameSyncPolarity | ( | I2S_Type * | base, |
sai_clock_polarity_t | polarity | ||
) |
void SAI_RxSetSerialDataConfig | ( | I2S_Type * | base, |
sai_serial_data_t * | config | ||
) |
void SAI_RxSoftwareReset | ( | I2S_Type * | base, |
sai_reset_type_t | type | ||
) |
Do software reset or FIFO reset .
FIFO reset means clear all the data in the FIFO, and make the FIFO pointer both to 0. Software reset means clear the Rx internal logic, including the bit clock, frame count etc. But software reset will not clear any configuration registers like RCR1~RCR5. This function will also clear all the error flags such as FIFO error, sync error etc.
base | SAI base pointer |
type | Reset type, FIFO reset or software reset |
brief Do software reset or FIFO reset .
FIFO reset means clear all the data in the FIFO, and make the FIFO pointer both to 0. Software reset means clear the Rx internal logic, including the bit clock, frame count etc. But software reset will not clear any configuration registers like RCR1~RCR5. This function will also clear all the error flags such as FIFO error, sync error etc.
param base SAI base pointer param type Reset type, FIFO reset or software reset
void SAI_TransferAbortReceive | ( | I2S_Type * | base, |
sai_handle_t * | handle | ||
) |
Aborts the current IRQ receive.
base | SAI base pointer |
handle | Pointer to the sai_handle_t structure which stores the transfer state. |
brief Aborts the current IRQ receive.
note This API can be called when an interrupt non-blocking transfer initiates to abort the transfer early.
param base SAI base pointer param handle Pointer to the sai_handle_t structure which stores the transfer state.
void SAI_TransferAbortSend | ( | I2S_Type * | base, |
sai_handle_t * | handle | ||
) |
Aborts the current send.
base | SAI base pointer. |
handle | Pointer to the sai_handle_t structure which stores the transfer state. |
brief Aborts the current send.
note This API can be called any time when an interrupt non-blocking transfer initiates to abort the transfer early.
param base SAI base pointer. param handle Pointer to the sai_handle_t structure which stores the transfer state.
status_t SAI_TransferGetReceiveCount | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
size_t * | count | ||
) |
Gets a received byte count.
base | SAI base pointer. |
handle | Pointer to the sai_handle_t structure which stores the transfer state. |
count | Bytes count received. |
kStatus_Success | Succeed get the transfer count. |
kStatus_NoTransferInProgress | There is not a non-blocking transaction currently in progress. |
brief Gets a received byte count.
param base SAI base pointer. param handle Pointer to the sai_handle_t structure which stores the transfer state. param count Bytes count received. retval kStatus_Success Succeed get the transfer count. retval kStatus_NoTransferInProgress There is not a non-blocking transaction currently in progress.
status_t SAI_TransferGetSendCount | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
size_t * | count | ||
) |
Gets a set byte count.
base | SAI base pointer. |
handle | Pointer to the sai_handle_t structure which stores the transfer state. |
count | Bytes count sent. |
kStatus_Success | Succeed get the transfer count. |
kStatus_NoTransferInProgress | There is not a non-blocking transaction currently in progress. |
brief Gets a set byte count.
param base SAI base pointer. param handle Pointer to the sai_handle_t structure which stores the transfer state. param count Bytes count sent. retval kStatus_Success Succeed get the transfer count. retval kStatus_NoTransferInProgress There is not a non-blocking transaction currently in progress.
status_t SAI_TransferReceiveNonBlocking | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
sai_transfer_t * | xfer | ||
) |
Performs an interrupt non-blocking receive transfer on SAI.
base | SAI base pointer |
handle | Pointer to the sai_handle_t structure which stores the transfer state. |
xfer | Pointer to the sai_transfer_t structure. |
kStatus_Success | Successfully started the data receive. |
kStatus_SAI_RxBusy | Previous receive still not finished. |
kStatus_InvalidArgument | The input parameter is invalid. |
brief Performs an interrupt non-blocking receive transfer on SAI.
note This API returns immediately after the transfer initiates. Call the SAI_RxGetTransferStatusIRQ to poll the transfer status and check whether the transfer is finished. If the return status is not kStatus_SAI_Busy, the transfer is finished.
param base SAI base pointer param handle Pointer to the sai_handle_t structure which stores the transfer state. param xfer Pointer to the sai_transfer_t structure. retval kStatus_Success Successfully started the data receive. retval kStatus_SAI_RxBusy Previous receive still not finished. retval kStatus_InvalidArgument The input parameter is invalid.
void SAI_TransferRxCreateHandle | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
sai_transfer_callback_t | callback, | ||
void * | userData | ||
) |
Initializes the SAI Rx handle.
This function initializes the Rx handle for the SAI Rx transactional APIs. Call this function once to get the handle initialized.
base | SAI base pointer. |
handle | SAI handle pointer. |
callback | Pointer to the user callback function. |
userData | User parameter passed to the callback function. |
brief Initializes the SAI Rx handle.
This function initializes the Rx handle for the SAI Rx transactional APIs. Call this function once to get the handle initialized.
param base SAI base pointer. param handle SAI handle pointer. param callback Pointer to the user callback function. param userData User parameter passed to the callback function.
void SAI_TransferRxHandleIRQ | ( | I2S_Type * | base, |
sai_handle_t * | handle | ||
) |
void SAI_TransferRxSetConfig | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
sai_transceiver_t * | config | ||
) |
SAI receiver transfer configurations.
This function initializes the Rx, include bit clock, frame sync, master clock, serial data and fifo configurations.
base | SAI base pointer. |
handle | SAI handle pointer. |
config | receiver configurations. |
brief SAI receiver transfer configurations.
This function initializes the TX, include bit clock, frame sync, master clock, serial data and fifo configurations.
param base SAI base pointer. param handle SAI handle pointer. param config tranmitter configurations.
status_t SAI_TransferRxSetFormat | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
sai_transfer_format_t * | format, | ||
uint32_t | mclkSourceClockHz, | ||
uint32_t | bclkSourceClockHz | ||
) |
Configures the SAI Rx audio format.
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred.
base | SAI base pointer. |
handle | SAI handle pointer. |
format | Pointer to the 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 a master clock, this value should equal the masterClockHz in format. |
brief Configures the SAI Rx audio format.
deprecated Do not use this function. It has been superceded by SAI_TransferRxSetConfig
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred.
param base SAI base pointer. param handle SAI handle pointer. param format Pointer to the SAI audio data format structure. param mclkSourceClockHz SAI master clock source frequency in Hz. param bclkSourceClockHz SAI bit clock source frequency in Hz. If a bit clock source is a master clock, this value should equal the masterClockHz in format. return Status of this function. Return value is one of status_t.
status_t SAI_TransferSendNonBlocking | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
sai_transfer_t * | xfer | ||
) |
Performs an interrupt non-blocking send transfer on SAI.
base | SAI base pointer. |
handle | Pointer to the sai_handle_t structure which stores the transfer state. |
xfer | Pointer to the sai_transfer_t structure. |
kStatus_Success | Successfully started the data receive. |
kStatus_SAI_TxBusy | Previous receive still not finished. |
kStatus_InvalidArgument | The input parameter is invalid. |
brief Performs an interrupt non-blocking send transfer on SAI.
note This API returns immediately after the transfer initiates. Call the SAI_TxGetTransferStatusIRQ to poll the transfer status and check whether the transfer is finished. If the return status is not kStatus_SAI_Busy, the transfer is finished.
param base SAI base pointer. param handle Pointer to the sai_handle_t structure which stores the transfer state. param xfer Pointer to the sai_transfer_t structure. retval kStatus_Success Successfully started the data receive. retval kStatus_SAI_TxBusy Previous receive still not finished. retval kStatus_InvalidArgument The input parameter is invalid.
void SAI_TransferTerminateReceive | ( | I2S_Type * | base, |
sai_handle_t * | handle | ||
) |
Terminate all SAI receive.
This function will clear all transfer slots buffered in the sai queue. If users only want to abort the current transfer slot, please call SAI_TransferAbortReceive.
base | SAI base pointer. |
handle | SAI eDMA handle pointer. |
brief Terminate all SAI receive.
This function will clear all transfer slots buffered in the sai queue. If users only want to abort the current transfer slot, please call SAI_TransferAbortReceive.
param base SAI base pointer. param handle SAI eDMA handle pointer.
void SAI_TransferTerminateSend | ( | I2S_Type * | base, |
sai_handle_t * | handle | ||
) |
Terminate all SAI send.
This function will clear all transfer slots buffered in the sai queue. If users only want to abort the current transfer slot, please call SAI_TransferAbortSend.
base | SAI base pointer. |
handle | SAI eDMA handle pointer. |
brief Terminate all SAI send.
This function will clear all transfer slots buffered in the sai queue. If users only want to abort the current transfer slot, please call SAI_TransferAbortSend.
param base SAI base pointer. param handle SAI eDMA handle pointer.
void SAI_TransferTxCreateHandle | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
sai_transfer_callback_t | callback, | ||
void * | userData | ||
) |
Initializes the SAI Tx handle.
This function initializes the Tx handle for the SAI Tx transactional APIs. Call this function once to get the handle initialized.
base | SAI base pointer |
handle | SAI handle pointer. |
callback | Pointer to the user callback function. |
userData | User parameter passed to the callback function |
brief Initializes the SAI Tx handle.
This function initializes the Tx handle for the SAI Tx transactional APIs. Call this function once to get the handle initialized.
param base SAI base pointer param handle SAI handle pointer. param callback Pointer to the user callback function. param userData User parameter passed to the callback function
void SAI_TransferTxHandleIRQ | ( | I2S_Type * | base, |
sai_handle_t * | handle | ||
) |
void SAI_TransferTxSetConfig | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
sai_transceiver_t * | config | ||
) |
SAI transmitter transfer configurations.
This function initializes the Tx, include bit clock, frame sync, master clock, serial data and fifo configurations.
base | SAI base pointer. |
handle | SAI handle pointer. |
config | tranmitter configurations. |
brief SAI transmitter transfer configurations.
This function initializes the TX, include bit clock, frame sync, master clock, serial data and fifo configurations.
param base SAI base pointer. param handle SAI handle pointer. param config tranmitter configurations.
status_t SAI_TransferTxSetFormat | ( | I2S_Type * | base, |
sai_handle_t * | handle, | ||
sai_transfer_format_t * | format, | ||
uint32_t | mclkSourceClockHz, | ||
uint32_t | bclkSourceClockHz | ||
) |
Configures the SAI Tx audio format.
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred.
base | SAI base pointer. |
handle | SAI handle pointer. |
format | Pointer to the 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 a master clock, this value should equal the masterClockHz in format. |
brief Configures the SAI Tx audio format.
deprecated Do not use this function. It has been superceded by SAI_TransferTxSetConfig
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred.
param base SAI base pointer. param handle SAI handle pointer. param format Pointer to the SAI audio data format structure. param mclkSourceClockHz SAI master clock source frequency in Hz. param bclkSourceClockHz SAI bit clock source frequency in Hz. If a bit clock source is a master clock, this value should equal the masterClockHz in format. return Status of this function. Return value is the status_t.
|
inlinestatic |
|
inlinestatic |
Disables the SAI Tx interrupt requests.
base | SAI base pointer |
mask | interrupt source The parameter can be a combination of the following sources if defined.
|
void SAI_TxEnable | ( | I2S_Type * | base, |
bool | enable | ||
) |
|
inlinestatic |
Enables/disables the SAI Tx DMA requests.
base | SAI base pointer |
mask | DMA source The parameter can be combination of the following sources if defined.
|
enable | True means enable DMA, false means disable DMA. |
|
inlinestatic |
Enables the SAI Tx interrupt requests.
base | SAI base pointer |
mask | interrupt source The parameter can be a combination of the following sources if defined.
|
|
inlinestatic |
void SAI_TxGetDefaultConfig | ( | sai_config_t * | config | ) |
Sets the SAI Tx configuration structure to default values.
This API initializes the configuration structure for use in SAI_TxConfig(). The initialized structure can remain unchanged in SAI_TxConfig(), or it can be modified before calling SAI_TxConfig(). This is an example.
config | pointer to master configuration structure |
brief Sets the SAI Tx configuration structure to default values.
deprecated Do not use this function. It has been superceded by SAI_GetClassicI2SConfig, SAI_GetLeftJustifiedConfig,SAI_GetRightJustifiedConfig, SAI_GetDSPConfig,SAI_GetTDMConfig
This API initializes the configuration structure for use in SAI_TxConfig(). The initialized structure can remain unchanged in SAI_TxConfig(), or it can be modified before calling SAI_TxConfig(). This is an example. code sai_config_t config; SAI_TxGetDefaultConfig(&config); endcode
param config pointer to master configuration structure
|
inlinestatic |
void SAI_TxInit | ( | I2S_Type * | base, |
const sai_config_t * | config | ||
) |
Initializes the SAI Tx peripheral.
Ungates the SAI clock, resets the module, and configures SAI Tx with a configuration structure. The configuration structure can be custom filled or set with default values by SAI_TxGetDefaultConfig().
base | SAI base pointer |
config | SAI configuration structure. |
brief Initializes the SAI Tx peripheral.
deprecated Do not use this function. It has been superceded by SAI_Init
Ungates the SAI clock, resets the module, and configures SAI Tx with a configuration structure. The configuration structure can be custom filled or set with default values by SAI_TxGetDefaultConfig().
note This API should be called at the beginning of the application to use the SAI driver. Otherwise, accessing the SAIM module can cause a hard fault because the clock is not enabled.
param base SAI base pointer param config SAI configuration structure.
void SAI_TxReset | ( | I2S_Type * | base | ) |
Resets the SAI Tx.
This function enables the software reset and FIFO reset of SAI Tx. After reset, clear the reset bit.
base | SAI base pointer |
brief Resets the SAI Tx.
This function enables the software reset and FIFO reset of SAI Tx. After reset, clear the reset bit.
param base SAI base pointer
void SAI_TxSetBitclockConfig | ( | I2S_Type * | base, |
sai_master_slave_t | masterSlave, | ||
sai_bit_clock_t * | config | ||
) |
Transmitter Bit clock configurations.
base | SAI base pointer. |
masterSlave | master or slave. |
config | bit clock other configurations, can be NULL in slave mode. |
brief Transmitter Bit clock configurations.
param base SAI base pointer. param masterSlave master or slave. param config bit clock other configurations, can be NULL in slave mode.
|
inlinestatic |
void SAI_TxSetBitClockPolarity | ( | I2S_Type * | base, |
sai_clock_polarity_t | polarity | ||
) |
void SAI_TxSetBitClockRate | ( | I2S_Type * | base, |
uint32_t | sourceClockHz, | ||
uint32_t | sampleRate, | ||
uint32_t | bitWidth, | ||
uint32_t | channelNumbers | ||
) |
Transmitter bit clock rate configurations.
base | SAI base pointer. |
sourceClockHz | Bit clock source frequency. |
sampleRate | Audio data sample rate. |
bitWidth | Audio data bitWidth. |
channelNumbers | Audio channel numbers. |
brief Transmitter bit clock rate configurations.
param base SAI base pointer. param sourceClockHz, bit clock source frequency. param sampleRate audio data sample rate. param bitWidth, audio data bitWidth. param channelNumbers, audio channel numbers.
void SAI_TxSetChannelFIFOMask | ( | I2S_Type * | base, |
uint8_t | mask | ||
) |
Set the Tx channel FIFO enable mask.
base | SAI base pointer |
mask | Channel enable mask, 0 means all channel FIFO disabled, 1 means channel 0 enabled, 3 means both channel 0 and channel 1 enabled. |
brief Set the Tx channel FIFO enable mask.
param base SAI base pointer param mask Channel enable mask, 0 means all channel FIFO disabled, 1 means channel 0 enabled, 3 means both channel 0 and channel 1 enabled.
void SAI_TxSetConfig | ( | I2S_Type * | base, |
sai_transceiver_t * | config | ||
) |
void SAI_TxSetDataOrder | ( | I2S_Type * | base, |
sai_data_order_t | order | ||
) |
void SAI_TxSetFormat | ( | I2S_Type * | base, |
sai_transfer_format_t * | format, | ||
uint32_t | mclkSourceClockHz, | ||
uint32_t | bclkSourceClockHz | ||
) |
Configures the SAI Tx audio format.
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred.
base | SAI base pointer. |
format | Pointer to the SAI audio data format structure. |
mclkSourceClockHz | SAI master clock source frequency in Hz. |
bclkSourceClockHz | SAI bit clock source frequency in Hz. If the bit clock source is a master clock, this value should equal the masterClockHz. |
brief Configures the SAI Tx audio format.
deprecated Do not use this function. It has been superceded by SAI_TxSetConfig
The audio format can be changed at run-time. This function configures the sample rate and audio data format to be transferred.
param base SAI base pointer. param format Pointer to the SAI audio data format structure. param mclkSourceClockHz SAI master clock source frequency in Hz. param bclkSourceClockHz SAI bit clock source frequency in Hz. If the bit clock source is a master clock, this value should equal the masterClockHz.
void SAI_TxSetFrameSyncConfig | ( | I2S_Type * | base, |
sai_master_slave_t | masterSlave, | ||
sai_frame_sync_t * | config | ||
) |
SAI transmitter Frame sync configurations.
base | SAI base pointer. |
masterSlave | master or slave. |
config | frame sync configurations, can be NULL in slave mode. |
brief SAI transmitter Frame sync configurations.
param base SAI base pointer. param masterSlave master or slave. param config frame sync configurations, can be NULL in slave mode.
|
inlinestatic |
void SAI_TxSetFrameSyncPolarity | ( | I2S_Type * | base, |
sai_clock_polarity_t | polarity | ||
) |
void SAI_TxSetSerialDataConfig | ( | I2S_Type * | base, |
sai_serial_data_t * | config | ||
) |
void SAI_TxSoftwareReset | ( | I2S_Type * | base, |
sai_reset_type_t | type | ||
) |
Do software reset or FIFO reset .
FIFO reset means clear all the data in the FIFO, and make the FIFO pointer both to 0. Software reset means clear the Tx internal logic, including the bit clock, frame count etc. But software reset will not clear any configuration registers like TCR1~TCR5. This function will also clear all the error flags such as FIFO error, sync error etc.
base | SAI base pointer |
type | Reset type, FIFO reset or software reset |
brief Do software reset or FIFO reset .
FIFO reset means clear all the data in the FIFO, and make the FIFO pointer both to 0. Software reset means clear the Tx internal logic, including the bit clock, frame count etc. But software reset will not clear any configuration registers like TCR1~TCR5. This function will also clear all the error flags such as FIFO error, sync error etc.
param base SAI base pointer param type Reset type, FIFO reset or software reset
void SAI_WriteBlocking | ( | I2S_Type * | base, |
uint32_t | channel, | ||
uint32_t | bitWidth, | ||
uint8_t * | buffer, | ||
uint32_t | size | ||
) |
Sends data using a blocking method.
base | SAI base pointer. |
channel | Data channel used. |
bitWidth | How many bits in an audio word; usually 8/16/24/32 bits. |
buffer | Pointer to the data to be written. |
size | Bytes to be written. |
brief Sends data using a blocking method.
note This function blocks by polling until data is ready to be sent.
param base SAI base pointer. param channel Data channel used. param bitWidth How many bits in an audio word; usually 8/16/24/32 bits. param buffer Pointer to the data to be written. param size Bytes to be written.
|
inlinestatic |
void SAI_WriteMultiChannelBlocking | ( | I2S_Type * | base, |
uint32_t | channel, | ||
uint32_t | channelMask, | ||
uint32_t | bitWidth, | ||
uint8_t * | buffer, | ||
uint32_t | size | ||
) |
Sends data to multi channel using a blocking method.
base | SAI base pointer. |
channel | Data channel used. |
channelMask | channel mask. |
bitWidth | How many bits in an audio word; usually 8/16/24/32 bits. |
buffer | Pointer to the data to be written. |
size | Bytes to be written. |
brief Sends data to multi channel using a blocking method.
note This function blocks by polling until data is ready to be sent.
param base SAI base pointer. param channel Data channel used. param channelMask channel mask. param bitWidth How many bits in an audio word; usually 8/16/24/32 bits. param buffer Pointer to the data to be written. param size Bytes to be written.