STM324x9I_EVAL BSP User Manual: STM324x9I EVAL AUDIO OUT Private Functions

STM32429I/STM32439I/STM32469I/STM32479I EVAL BSP Drivers

STM324x9I_EVAL BSP User Manual
STM324x9I EVAL AUDIO OUT Private Functions

Functions

uint8_t BSP_AUDIO_OUT_Init (uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq)
 Configures the audio peripherals.
uint8_t BSP_AUDIO_OUT_Play (uint16_t *pBuffer, uint32_t Size)
 Starts playing audio stream from a data buffer for a determined size.
void BSP_AUDIO_OUT_ChangeBuffer (uint16_t *pData, uint16_t Size)
 Sends n-Bytes on the SAI interface.
uint8_t BSP_AUDIO_OUT_Pause (void)
 This function Pauses the audio file stream.
uint8_t BSP_AUDIO_OUT_Resume (void)
 This function Resumes the audio file stream.
uint8_t BSP_AUDIO_OUT_Stop (uint32_t Option)
 Stops audio playing and Power down the Audio Codec.
uint8_t BSP_AUDIO_OUT_SetVolume (uint8_t Volume)
 Controls the current audio volume level.
uint8_t BSP_AUDIO_OUT_SetMute (uint32_t Cmd)
 Enables or disables the MUTE mode by software.
uint8_t BSP_AUDIO_OUT_SetOutputMode (uint8_t Output)
 Switch dynamically (while audio file is played) the output target (speaker or headphone).
void BSP_AUDIO_OUT_SetFrequency (uint32_t AudioFreq)
 Updates the audio frequency.
void BSP_AUDIO_OUT_SetAudioFrameSlot (uint32_t AudioFrameSlot)
 Updates the Audio frame slot configuration.
void HAL_SAI_TxCpltCallback (SAI_HandleTypeDef *hsai)
 Tx Transfer completed callbacks.
void HAL_SAI_TxHalfCpltCallback (SAI_HandleTypeDef *hsai)
 Tx Half Transfer completed callbacks.
void HAL_SAI_ErrorCallback (SAI_HandleTypeDef *hsai)
 SAI error callbacks.
__weak void BSP_AUDIO_OUT_TransferComplete_CallBack (void)
 Manages the DMA full Transfer complete event.
__weak void BSP_AUDIO_OUT_HalfTransfer_CallBack (void)
 Manages the DMA Half Transfer complete event.
__weak void BSP_AUDIO_OUT_Error_CallBack (void)
 Manages the DMA FIFO error event.
uint8_t BSP_AUDIO_IN_Init (uint32_t AudioFreq, uint32_t BitRes, uint32_t ChnlNbr)
 Initializes wave recording.
uint8_t BSP_AUDIO_IN_Record (uint16_t *pbuf, uint32_t size)
 Starts audio recording.
uint8_t BSP_AUDIO_IN_Stop (void)
 Stops audio recording.
uint8_t BSP_AUDIO_IN_Pause (void)
 Pauses the audio file stream.
uint8_t BSP_AUDIO_IN_Resume (void)
 Resumes the audio file stream.
uint8_t BSP_AUDIO_IN_SetVolume (uint8_t Volume)
 Controls the audio in volume level.
uint8_t BSP_AUDIO_IN_PDMToPCM (uint16_t *PDMBuf, uint16_t *PCMBuf)
 Converts audio format from PDM to PCM.
void HAL_I2S_RxCpltCallback (I2S_HandleTypeDef *hi2s)
 Rx Transfer completed callbacks.
void HAL_I2S_RxHalfCpltCallback (I2S_HandleTypeDef *hi2s)
 Rx Half Transfer completed callbacks.
void HAL_I2S_ErrorCallback (I2S_HandleTypeDef *hi2s)
 I2S error callbacks.
__weak void BSP_AUDIO_IN_TransferComplete_CallBack (void)
 User callback when record buffer is filled.
__weak void BSP_AUDIO_IN_HalfTransfer_CallBack (void)
 Manages the DMA Half Transfer complete event.
__weak void BSP_AUDIO_IN_Error_Callback (void)
 Audio IN Error callback function.
static void SAIx_Init (uint32_t AudioFreq)
 Initializes the Audio Codec audio interface (SAI).
static void PDMDecoder_Init (uint32_t AudioFreq, uint32_t ChnlNbr)
 Initializes the PDM library.
static void I2Sx_Init (uint32_t AudioFreq)
 Initializes the Audio Codec audio interface (I2S)
static void TIMx_IC_MspInit (TIM_HandleTypeDef *htim)
 Initializes the TIM INput Capture MSP.
static void TIMx_Init (void)
 Configure TIM as a clock divider by 2.

Function Documentation

__weak void BSP_AUDIO_IN_Error_Callback ( void  )

Audio IN Error callback function.

Definition at line 870 of file stm324x9i_eval_audio.c.

Referenced by HAL_I2S_ErrorCallback().

__weak void BSP_AUDIO_IN_HalfTransfer_CallBack ( void  )

Manages the DMA Half Transfer complete event.

Definition at line 860 of file stm324x9i_eval_audio.c.

Referenced by HAL_I2S_RxHalfCpltCallback().

uint8_t BSP_AUDIO_IN_Init ( uint32_t  AudioFreq,
uint32_t  BitRes,
uint32_t  ChnlNbr 
)

Initializes wave recording.

Note:
This function assumes that the I2S input clock (through PLL_R in Devices RevA/Z and through dedicated PLLI2S_R in Devices RevB/Y) is already configured and ready to be used.
Parameters:
AudioFreq,:Audio frequency to be configured for the I2S peripheral.
BitRes,:Audio frequency to be configured for the I2S peripheral.
ChnlNbr,:Audio frequency to be configured for the I2S peripheral.
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 681 of file stm324x9i_eval_audio.c.

References AUDIO_OK, I2Sx_Init(), PDMDecoder_Init(), and TIMx_Init().

uint8_t BSP_AUDIO_IN_Pause ( void  )

Pauses the audio file stream.

Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 747 of file stm324x9i_eval_audio.c.

References AUDIO_OK, and haudio_in_i2s.

uint8_t BSP_AUDIO_IN_PDMToPCM ( uint16_t *  PDMBuf,
uint16_t *  PCMBuf 
)

Converts audio format from PDM to PCM.

Parameters:
PDMBuf,:Pointer to data PDM buffer
PCMBuf,:Pointer to data PCM buffer
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 790 of file stm324x9i_eval_audio.c.

References AUDIO_OK, AudioInVolume, Channel_Demux, CHANNEL_DEMUX_MASK, DEFAULT_AUDIO_IN_CHANNEL_NBR, Filter, and INTERNAL_BUFF_SIZE.

uint8_t BSP_AUDIO_IN_Record ( uint16_t *  pbuf,
uint32_t  size 
)

Starts audio recording.

Parameters:
pbuf,:Main buffer pointer for the recorded data storing
size,:Current size of the recorded buffer
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 710 of file stm324x9i_eval_audio.c.

References AUDIO_ERROR, AUDIO_OK, and haudio_in_i2s.

uint8_t BSP_AUDIO_IN_Resume ( void  )

Resumes the audio file stream.

Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 760 of file stm324x9i_eval_audio.c.

References AUDIO_OK, and haudio_in_i2s.

uint8_t BSP_AUDIO_IN_SetVolume ( uint8_t  Volume)

Controls the audio in volume level.

Parameters:
Volume,:Volume level to be set in percentage from 0% to 100% (0 for Mute and 100 for Max volume level).
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 775 of file stm324x9i_eval_audio.c.

References AUDIO_OK, and AudioInVolume.

uint8_t BSP_AUDIO_IN_Stop ( void  )

Stops audio recording.

Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 727 of file stm324x9i_eval_audio.c.

References AUDIO_ERROR, AUDIO_OK, AUDIO_TIMx_CLK_DISABLE, and haudio_in_i2s.

User callback when record buffer is filled.

Definition at line 850 of file stm324x9i_eval_audio.c.

Referenced by HAL_I2S_RxCpltCallback().

void BSP_AUDIO_OUT_ChangeBuffer ( uint16_t *  pData,
uint16_t  Size 
)

Sends n-Bytes on the SAI interface.

Parameters:
pData,:pointer on data address
Size,:number of data to be written

Definition at line 281 of file stm324x9i_eval_audio.c.

References haudio_out_sai.

__weak void BSP_AUDIO_OUT_Error_CallBack ( void  )

Manages the DMA FIFO error event.

Definition at line 543 of file stm324x9i_eval_audio.c.

Referenced by HAL_SAI_ErrorCallback().

__weak void BSP_AUDIO_OUT_HalfTransfer_CallBack ( void  )

Manages the DMA Half Transfer complete event.

Definition at line 536 of file stm324x9i_eval_audio.c.

Referenced by HAL_SAI_TxHalfCpltCallback().

uint8_t BSP_AUDIO_OUT_Init ( uint16_t  OutputDevice,
uint8_t  Volume,
uint32_t  AudioFreq 
)

Configures the audio peripherals.

Parameters:
OutputDevice,:OUTPUT_DEVICE_SPEAKER, OUTPUT_DEVICE_HEADPHONE, or OUTPUT_DEVICE_BOTH.
Volume,:Initial volume level (from 0 (Mute) to 100 (Max))
AudioFreq,:Audio frequency used to play the audio stream.
Note:
The I2S PLL input clock must be done in the user application.
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 195 of file stm324x9i_eval_audio.c.

References audio_drv, AUDIO_ERROR, AUDIO_I2C_ADDRESS, AUDIO_OK, and SAIx_Init().

uint8_t BSP_AUDIO_OUT_Pause ( void  )

This function Pauses the audio file stream.

In case of using DMA, the DMA Pause feature is used. WARNING: When calling BSP_AUDIO_OUT_Pause() function for pause, only BSP_AUDIO_OUT_Resume() function should be called for resume (use of BSP_AUDIO_OUT_Play() function for resume could lead to unexpected behavior).

Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 294 of file stm324x9i_eval_audio.c.

References audio_drv, AUDIO_ERROR, AUDIO_I2C_ADDRESS, AUDIO_OK, and haudio_out_sai.

uint8_t BSP_AUDIO_OUT_Play ( uint16_t *  pBuffer,
uint32_t  Size 
)

Starts playing audio stream from a data buffer for a determined size.

Parameters:
pBuffer,:Pointer to the buffer
Size,:Number of audio data BYTES.
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 260 of file stm324x9i_eval_audio.c.

References audio_drv, AUDIO_ERROR, AUDIO_I2C_ADDRESS, AUDIO_OK, AUDIODATA_SIZE, DMA_MAX, and haudio_out_sai.

uint8_t BSP_AUDIO_OUT_Resume ( void  )

This function Resumes the audio file stream.

WARNING: When calling BSP_AUDIO_OUT_Pause() function for pause, only BSP_AUDIO_OUT_Resume() function should be called for resume (use of BSP_AUDIO_OUT_Play() function for resume could lead to unexpected behavior).

Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 318 of file stm324x9i_eval_audio.c.

References audio_drv, AUDIO_ERROR, AUDIO_I2C_ADDRESS, AUDIO_OK, and haudio_out_sai.

void BSP_AUDIO_OUT_SetAudioFrameSlot ( uint32_t  AudioFrameSlot)

Updates the Audio frame slot configuration.

Parameters:
AudioFrameSlot,:specifies the audio Frame slot This parameter can be any value of CODEC AudioFrame SLOT TDMMode
Note:
This API should be called after the BSP_AUDIO_OUT_Init() to adjust the audio frame slot.

Definition at line 482 of file stm324x9i_eval_audio.c.

References haudio_out_sai.

void BSP_AUDIO_OUT_SetFrequency ( uint32_t  AudioFreq)

Updates the audio frequency.

Parameters:
AudioFreq,:Audio frequency used to play the audio stream.
Note:
This API should be called after the BSP_AUDIO_OUT_Init() to adjust the audio frequency.

Definition at line 433 of file stm324x9i_eval_audio.c.

References haudio_out_sai.

uint8_t BSP_AUDIO_OUT_SetMute ( uint32_t  Cmd)

Enables or disables the MUTE mode by software.

Parameters:
Cmd,:Could be AUDIO_MUTE_ON to mute sound or AUDIO_MUTE_OFF to unmute the codec and restore previous volume level.
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 392 of file stm324x9i_eval_audio.c.

References audio_drv, AUDIO_ERROR, AUDIO_I2C_ADDRESS, and AUDIO_OK.

uint8_t BSP_AUDIO_OUT_SetOutputMode ( uint8_t  Output)

Switch dynamically (while audio file is played) the output target (speaker or headphone).

Parameters:
Output,:The audio output target: OUTPUT_DEVICE_SPEAKER, OUTPUT_DEVICE_HEADPHONE or OUTPUT_DEVICE_BOTH
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 413 of file stm324x9i_eval_audio.c.

References audio_drv, AUDIO_ERROR, AUDIO_I2C_ADDRESS, and AUDIO_OK.

uint8_t BSP_AUDIO_OUT_SetVolume ( uint8_t  Volume)

Controls the current audio volume level.

Parameters:
Volume,:Volume level to be set in percentage from 0% to 100% (0 for Mute and 100 for Max volume level).
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 372 of file stm324x9i_eval_audio.c.

References audio_drv, AUDIO_ERROR, AUDIO_I2C_ADDRESS, and AUDIO_OK.

uint8_t BSP_AUDIO_OUT_Stop ( uint32_t  Option)

Stops audio playing and Power down the Audio Codec.

Parameters:
Option,:could be one of the following parameters
  • CODEC_PDWN_SW: for software power off (by writing registers). Then no need to reconfigure the Codec after power on.
  • CODEC_PDWN_HW: completely shut down the codec (physically). Then need to reconfigure the Codec after power on.
Return values:
AUDIO_OKif correct communication, else wrong communication

Definition at line 344 of file stm324x9i_eval_audio.c.

References audio_drv, AUDIO_ERROR, AUDIO_I2C_ADDRESS, AUDIO_OK, and haudio_out_sai.

Manages the DMA full Transfer complete event.

Definition at line 529 of file stm324x9i_eval_audio.c.

Referenced by HAL_SAI_TxCpltCallback().

void HAL_I2S_ErrorCallback ( I2S_HandleTypeDef *  hi2s)

I2S error callbacks.

Parameters:
hi2s,:I2S handle

Definition at line 840 of file stm324x9i_eval_audio.c.

References BSP_AUDIO_IN_Error_Callback().

void HAL_I2S_RxCpltCallback ( I2S_HandleTypeDef *  hi2s)

Rx Transfer completed callbacks.

Parameters:
hi2s,:I2S handle

Definition at line 819 of file stm324x9i_eval_audio.c.

References BSP_AUDIO_IN_TransferComplete_CallBack().

void HAL_I2S_RxHalfCpltCallback ( I2S_HandleTypeDef *  hi2s)

Rx Half Transfer completed callbacks.

Parameters:
hi2s,:I2S handle

Definition at line 829 of file stm324x9i_eval_audio.c.

References BSP_AUDIO_IN_HalfTransfer_CallBack().

void HAL_SAI_ErrorCallback ( SAI_HandleTypeDef *  hsai)

SAI error callbacks.

Parameters:
hsai,:SAI handle

Definition at line 521 of file stm324x9i_eval_audio.c.

References BSP_AUDIO_OUT_Error_CallBack().

void HAL_SAI_TxCpltCallback ( SAI_HandleTypeDef *  hsai)

Tx Transfer completed callbacks.

Parameters:
hsai,:SAI handle

Definition at line 499 of file stm324x9i_eval_audio.c.

References BSP_AUDIO_OUT_TransferComplete_CallBack().

void HAL_SAI_TxHalfCpltCallback ( SAI_HandleTypeDef *  hsai)

Tx Half Transfer completed callbacks.

Parameters:
hsai,:SAI handle

Definition at line 510 of file stm324x9i_eval_audio.c.

References BSP_AUDIO_OUT_HalfTransfer_CallBack().

static void I2Sx_Init ( uint32_t  AudioFreq) [static]

Initializes the Audio Codec audio interface (I2S)

Note:
This function assumes that the I2S input clock (through PLL_R in Devices RevA/Z and through dedicated PLLI2S_R in Devices RevB/Y) is already configured and ready to be used.
Parameters:
AudioFreq,:Audio frequency to be configured for the I2S peripheral.

Definition at line 974 of file stm324x9i_eval_audio.c.

References AUDIO_I2Sx, haudio_in_i2s, and I2Sx_MspInit().

Referenced by BSP_AUDIO_IN_Init().

static void PDMDecoder_Init ( uint32_t  AudioFreq,
uint32_t  ChnlNbr 
) [static]

Initializes the PDM library.

Parameters:
AudioFreq,:Audio sampling frequency
ChnlNbr,:Number of audio channels (1: mono; 2: stereo)

Definition at line 885 of file stm324x9i_eval_audio.c.

References Filter.

Referenced by BSP_AUDIO_IN_Init().

static void SAIx_Init ( uint32_t  AudioFreq) [static]

Initializes the Audio Codec audio interface (SAI).

Parameters:
AudioFreq,:Audio frequency to be configured for the SAI peripheral.
Note:
The default SlotActive configuration is set to CODEC_AUDIOFRAME_SLOT_0123 and user can update this configuration using

Definition at line 616 of file stm324x9i_eval_audio.c.

References AUDIO_SAIx, CODEC_AUDIOFRAME_SLOT_0123, haudio_out_sai, and SAIx_MspInit().

Referenced by BSP_AUDIO_OUT_Init().

static void TIMx_IC_MspInit ( TIM_HandleTypeDef *  htim) [static]

Initializes the TIM INput Capture MSP.

Parameters:
htim,:TIM handle

Definition at line 1004 of file stm324x9i_eval_audio.c.

References AUDIO_TIMx_AF, AUDIO_TIMx_CLK_ENABLE, AUDIO_TIMx_GPIO, AUDIO_TIMx_GPIO_CLK_ENABLE, AUDIO_TIMx_IN_GPIO_PIN, and AUDIO_TIMx_OUT_GPIO_PIN.

Referenced by TIMx_Init().

static void TIMx_Init ( void  ) [static]

Configure TIM as a clock divider by 2.

I2S_SCK is externally connected to TIMx input channel

Definition at line 1035 of file stm324x9i_eval_audio.c.

References AUDIO_TIMx, AUDIO_TIMx_IN_CHANNEL, AUDIO_TIMx_OUT_CHANNEL, haudio_tim, and TIMx_IC_MspInit().

Referenced by BSP_AUDIO_IN_Init().

Generated on Wed Jan 13 2016 15:52:54 for STM324x9I_EVAL BSP User Manual by   doxygen 1.7.6.1