evk_audio.h
Initialize audio related peripherals.
- Copyright
Copyright (C) 2026 SPARK Microsystems International Inc. All rights reserved.
- License
This source code is proprietary and subject to the SPARK Microsystems Software EULA found in this package in file EULA.txt.
- Author
SPARK FW Team.
Defines
-
EVK_SAI_NB_OF_SLOTS 2
Typedefs
-
typedef enum evk_sai_mono_stereo evk_sai_mono_stereo_t
SAI blocks mono/stereo mode enum.
-
typedef enum evk_sai_bit_depth evk_sai_bit_depth_t
SAI bit depth enum.
-
typedef struct evk_sai_config evk_sai_config_t
SAI global configuration structure.
-
typedef void (*irq_callback)(void)
IRQ function pointer callback type.
Enums
-
enum evk_sai_mono_stereo
SAI blocks mono/stereo mode enum.
Values:
-
enumerator EVK_SAI_MODE_MONO = 1
SAI block mono mode.
-
enumerator EVK_SAI_MODE_STEREO = 2
SAI block stereo mode.
-
enumerator EVK_SAI_MODE_MONO = 1
-
enum evk_sai_bit_depth
SAI bit depth enum.
Values:
-
enumerator EVK_SAI_BIT_DEPTH_16BITS = SAI_PROTOCOL_DATASIZE_16BIT
SAI bit depth 16 bits.
-
enumerator EVK_SAI_BIT_DEPTH_16BITS_EXT = SAI_PROTOCOL_DATASIZE_16BITEXTENDED
SAI bit depth 16 bits extended.
-
enumerator EVK_SAI_BIT_DEPTH_24BITS = SAI_PROTOCOL_DATASIZE_24BIT
SAI bit depth 24 bits.
-
enumerator EVK_SAI_BIT_DEPTH_32BITS = SAI_PROTOCOL_DATASIZE_32BIT
SAI bit depth 32 bits.
-
enumerator EVK_SAI_BIT_DEPTH_16BITS = SAI_PROTOCOL_DATASIZE_16BIT
Functions
-
void evk_audio_i2c_write_byte_blocking(uint8_t dev_addr, uint8_t mem_addr, uint8_t data)
Audio’s I2C write single byte blocking function.
- Parameters:
dev_addr – [in] Device address.
mem_addr – [in] Target memory address.
data – [in] 1 Byte size data to be send.
-
void evk_audio_i2c_read_byte_blocking(uint8_t dev_addr, uint8_t mem_addr, uint8_t *data)
Audio’s I2C read single byte blocking function.
- Parameters:
dev_addr – [in] Device address.
mem_addr – [in] Target memory address.
data – [in] 1 Byte size data to be read.
-
void evk_audio_sai_configuration(evk_sai_config_t *sai_config)
Configure the Audio’s SAI peripheral and initialize it.
Note
This function configures and initializes multiple peripherals sequentially.
Note
1. Enable SAI clocks.
Initialize SAI GPIOs.
Configure SAI mono stereo mode.
Initialize SAI block configuration.
Initialize SAI DMA NVIC.
Initialize SAI DMA peripherals.
Enable I2C clock.
Initialize I2C GPIOS.
Initialize I2C peripheral.
- Parameters:
sai_config – [in] SAI global configuration structure.
-
void evk_audio_sai_deinit(void)
Deinitialize the SAI peripheral.
-
void evk_audio_sai_write_non_blocking(uint8_t *data, uint16_t size)
Write data on the SAI in non-blocking mode with DMA.
- Parameters:
data – [in] Data buffer to write.
size – [in] Size of the data to write.
-
void evk_audio_sai_read_non_blocking(uint8_t *data, uint16_t size)
Read data on the SAI in non-blocking mode with DMA.
- Parameters:
data – [in] Data buffer to write.
size – [in] Size of the data to write.
-
void evk_audio_set_sai_tx_dma_cplt_callback(irq_callback callback)
This function sets the function callback for the audio SAI TX complete.
- Parameters:
callback – [in] External interrupt callback function pointer.
-
void evk_audio_set_sai_rx_dma_cplt_callback(irq_callback callback)
This function sets the function callback for the audio SAI RX complete.
- Parameters:
callback – [in] External interrupt callback function pointer.
-
void evk_audio_sai_start_write_non_blocking(void)
Start SAI transmit with DMA peripheral.
-
void evk_audio_sai_start_read_non_blocking(void)
Start SAI receive with DMA peripheral.
-
void evk_audio_sai_stop_write_non_blocking(void)
Stop SAI writing with DMA peripheral.
-
void evk_audio_sai_stop_read_non_blocking(void)
Stop SAI reading with DMA peripheral.
-
void evk_audio_i2c_init(void)
Initialize the I2C peripheral.
-
struct evk_sai_config
- #include <evk_audio.h>
SAI global configuration structure.
Public Members
-
evk_sai_mono_stereo_t rx_sai_mono_stereo
SAI RX mono/stereo mode.
-
evk_sai_mono_stereo_t tx_sai_mono_stereo
SAI TX mono/stereo mode.
-
evk_sai_bit_depth_t sai_bit_depth
SAI bit depth.
-
evk_sai_mono_stereo_t rx_sai_mono_stereo