STM32H743I_EVAL BSP User Manual
|
This file contains the common defines and functions prototypes for the stm32h743i_eval_audio.c driver. More...
#include "../Components/wm8994/wm8994.h"
#include "stm32h743i_eval.h"
#include <stdlib.h>
#include "pdm2pcm_glo.h"
Go to the source code of this file.
Data Structures | |
struct | AUDIOIN_ContextTypeDef |
Defines | |
#define | BSP_AUDIO_FREQUENCY_96K SAI_AUDIO_FREQUENCY_96K |
#define | BSP_AUDIO_FREQUENCY_48K SAI_AUDIO_FREQUENCY_48K |
#define | BSP_AUDIO_FREQUENCY_44K SAI_AUDIO_FREQUENCY_44K |
#define | BSP_AUDIO_FREQUENCY_32K SAI_AUDIO_FREQUENCY_32K |
#define | BSP_AUDIO_FREQUENCY_22K SAI_AUDIO_FREQUENCY_22K |
#define | BSP_AUDIO_FREQUENCY_16K SAI_AUDIO_FREQUENCY_16K |
#define | BSP_AUDIO_FREQUENCY_11K SAI_AUDIO_FREQUENCY_11K |
#define | BSP_AUDIO_FREQUENCY_8K SAI_AUDIO_FREQUENCY_8K |
#define | CODEC_AUDIOFRAME_SLOT_0123 SAI_SLOTACTIVE_0 | SAI_SLOTACTIVE_1 | SAI_SLOTACTIVE_2 | SAI_SLOTACTIVE_3 |
In W8994 codec the Audio frame contains 4 slots : TDM Mode TDM format : +------------------|------------------|--------------------|-------------------+ | CODEC_SLOT0 Left | CODEC_SLOT1 Left | CODEC_SLOT0 Right | CODEC_SLOT1 Right | +------------------------------------------------------------------------------+. | |
#define | CODEC_AUDIOFRAME_SLOT_02 SAI_SLOTACTIVE_0 | SAI_SLOTACTIVE_2 |
#define | CODEC_AUDIOFRAME_SLOT_13 SAI_SLOTACTIVE_1 | SAI_SLOTACTIVE_3 |
#define | CODEC_AUDIOFRAME_SLOT_0 SAI_SLOTACTIVE_0 |
#define | AUDIO_OUT_SAIx SAI1_Block_A |
#define | AUDIO_OUT_SAIx_CLK_ENABLE() __HAL_RCC_SAI1_CLK_ENABLE() |
#define | AUDIO_OUT_SAIx_CLK_DISABLE() __HAL_RCC_SAI1_CLK_DISABLE() |
#define | AUDIO_OUT_SAIx_AF GPIO_AF6_SAI1 |
#define | AUDIO_OUT_SAIx_MCLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() |
#define | AUDIO_OUT_SAIx_MCLK_GPIO_PORT GPIOE |
#define | AUDIO_OUT_SAIx_MCLK_PIN GPIO_PIN_2 |
#define | AUDIO_OUT_SAIx_SD_FS_CLK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() |
#define | AUDIO_OUT_SAIx_SD_FS_SCK_GPIO_PORT GPIOE |
#define | AUDIO_OUT_SAIx_FS_PIN GPIO_PIN_4 |
#define | AUDIO_OUT_SAIx_SCK_PIN GPIO_PIN_5 |
#define | AUDIO_OUT_SAIx_SD_PIN GPIO_PIN_6 |
#define | AUDIO_OUT_SAIx_DMAx_CLK_ENABLE() __HAL_RCC_DMA2_CLK_ENABLE() |
#define | AUDIO_OUT_SAIx_DMAx_STREAM DMA2_Stream1 |
#define | AUDIO_OUT_SAIx_DMAx_REQUEST DMA_REQUEST_SAI1_A |
#define | AUDIO_OUT_SAIx_DMAx_IRQ DMA2_Stream1_IRQn |
#define | AUDIO_OUT_SAIx_DMAx_PERIPH_DATA_SIZE DMA_PDATAALIGN_HALFWORD |
#define | AUDIO_OUT_SAIx_DMAx_MEM_DATA_SIZE DMA_MDATAALIGN_HALFWORD |
#define | AUDIO_OUT_SAIx_DMAx_IRQHandler DMA2_Stream1_IRQHandler |
#define | AUDIO_OUT_IRQ_PREPRIO ((uint32_t)0x0E) |
#define | AUDIO_IN_SAIx SAI1_Block_B |
#define | AUDIO_IN_SAIx_CLK_ENABLE() __HAL_RCC_SAI1_CLK_ENABLE() |
#define | AUDIO_IN_SAIx_CLK_DISABLE() __HAL_RCC_SAI1_CLK_DISABLE() |
#define | AUDIO_IN_SAIx_AF GPIO_AF6_SAI1 |
#define | AUDIO_IN_SAIx_SD_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() |
#define | AUDIO_IN_SAIx_SD_GPIO_PORT GPIOE |
#define | AUDIO_IN_SAIx_SD_PIN GPIO_PIN_3 |
#define | AUDIO_IN_SAIx_DMAx_CLK_ENABLE() __HAL_RCC_DMA2_CLK_ENABLE() |
#define | AUDIO_IN_SAIx_DMAx_STREAM DMA2_Stream4 |
#define | AUDIO_IN_SAIx_DMAx_REQUEST DMA_REQUEST_SAI1_B |
#define | AUDIO_IN_SAIx_DMAx_IRQ DMA2_Stream4_IRQn |
#define | AUDIO_IN_SAIx_DMAx_PERIPH_DATA_SIZE DMA_PDATAALIGN_HALFWORD |
#define | AUDIO_IN_SAIx_DMAx_MEM_DATA_SIZE DMA_MDATAALIGN_HALFWORD |
#define | AUDIO_IN_SAIx_DMAx_IRQHandler DMA2_Stream4_IRQHandler |
#define | AUDIO_IN_INT_GPIO_ENABLE() __HAL_RCC_GPIOJ_CLK_ENABLE() |
#define | AUDIO_IN_INT_GPIO_PORT GPIOJ |
#define | AUDIO_IN_INT_GPIO_PIN GPIO_PIN_12 |
#define | AUDIO_IN_INT_IRQ EXTI15_10_IRQn |
#define | AUDIO_DFSDMx_MIC1_CHANNEL DFSDM1_Channel1 /* MP34DT01TR microphone on PCB top side */ |
#define | AUDIO_DFSDMx_MIC2_CHANNEL DFSDM1_Channel0 /* MP34DT01TR microphone on PCB top side */ |
#define | AUDIO_DFSDMx_MIC1_CHANNEL_FOR_FILTER DFSDM_CHANNEL_1 |
#define | AUDIO_DFSDMx_MIC2_CHANNEL_FOR_FILTER DFSDM_CHANNEL_0 |
#define | AUDIO_DFSDMx_MIC1_FILTER DFSDM1_Filter0 /* Common filter for MP34DT01TR microphone input */ |
#define | AUDIO_DFSDMx_MIC2_FILTER DFSDM1_Filter1 /* Common filter for MP34DT01TR microphone input */ |
#define | AUDIO_DFSDMx_CLK_ENABLE() __HAL_RCC_DFSDM1_CLK_ENABLE() |
#define | AUDIO_DFSDMx_CKOUT_PIN GPIO_PIN_2 |
#define | AUDIO_DFSDMx_CKOUT_DMIC_GPIO_PORT GPIOC |
#define | AUDIO_DFSDMx_CKOUT_DMIC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() |
#define | AUDIO_DFSDMx_CKOUT_DMIC_AF GPIO_AF6_DFSDM1 |
#define | AUDIO_DFSDMx_DMIC_PIN GPIO_PIN_3 |
#define | AUDIO_DFSDMx_DMIC_GPIO_PORT GPIOC |
#define | AUDIO_DFSDMx_DMIC_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() |
#define | AUDIO_DFSDMx_DMIC_AF GPIO_AF3_DFSDM1 |
#define | AUDIO_DFSDMx_DMAx_CLK_ENABLE() __HAL_RCC_DMA2_CLK_ENABLE() |
#define | AUDIO_DFSDMx_DMAx_MIC1_STREAM DMA2_Stream0 |
#define | AUDIO_DFSDMx_DMAx_MIC1_REQUEST DMA_REQUEST_DFSDM1_FLT0 |
#define | AUDIO_DFSDMx_DMAx_MIC2_STREAM DMA2_Stream5 |
#define | AUDIO_DFSDMx_DMAx_MIC2_REQUEST DMA_REQUEST_DFSDM1_FLT1 |
#define | AUDIO_DFSDMx_DMAx_MIC1_IRQ DMA2_Stream0_IRQn |
#define | AUDIO_DFSDMx_DMAx_MIC2_IRQ DMA2_Stream5_IRQn |
#define | AUDIO_DFSDMx_DMAx_PERIPH_DATA_SIZE DMA_PDATAALIGN_WORD |
#define | AUDIO_DFSDMx_DMAx_MEM_DATA_SIZE DMA_MDATAALIGN_WORD |
#define | AUDIO_DFSDM_DMAx_MIC1_IRQHandler DMA2_Stream0_IRQHandler |
#define | AUDIO_DFSDM_DMAx_MIC2_IRQHandler DMA2_Stream5_IRQHandler |
#define | AUDIO_IN_IRQ_PREPRIO ((uint32_t)0x0F) |
#define | AUDIO_IN_SAI_PDMx SAI4_Block_A |
#define | AUDIO_IN_SAI_PDMx_CLK_ENABLE() __HAL_RCC_SAI4_CLK_ENABLE() |
#define | AUDIO_IN_SAI_PDMx_CLK_DISABLE() __HAL_RCC_SAI4_CLK_DISABLE() |
#define | AUDIO_IN_SAI_PDMx_FS_SCK_AF GPIO_AF8_SAI4 |
#define | AUDIO_IN_SAI_PDMx_FS_SCK_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() |
#define | AUDIO_IN_SAI_PDMx_FS_SCK_GPIO_PORT GPIOE |
#define | AUDIO_IN_SAI_PDMx_FS_PIN GPIO_PIN_4 |
#define | AUDIO_IN_SAI_PDMx_SCK_PIN GPIO_PIN_5 |
#define | AUDIO_IN_SAI_PDMx_CLK_IN_ENABLE() __HAL_RCC_GPIOE_CLK_ENABLE() |
#define | AUDIO_IN_SAI_PDMx_CLK_IN_PIN GPIO_PIN_2 |
#define | AUDIO_IN_SAI_PDMx_CLK_IN_PORT GPIOE |
#define | AUDIO_IN_SAI_PDMx_DATA_IN_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() |
#define | AUDIO_IN_SAI_PDMx_DATA_IN_PIN GPIO_PIN_1 |
#define | AUDIO_IN_SAI_PDMx_DATA_IN_PORT GPIOC |
#define | AUDIO_IN_SAI_PDMx_DATA_CLK_AF GPIO_AF10_SAI4 |
#define | AUDIO_IN_SAI_PDMx_IRQHandler SAI4_IRQHandler |
#define | AUDIO_IN_SAI_PDMx_IRQ SAI4_IRQn |
#define | AUDIO_IN_SAI_PDMx_DMAx_CLK_ENABLE() __HAL_RCC_BDMA_CLK_ENABLE() |
#define | AUDIO_IN_SAI_PDMx_DMAx_STREAM BDMA_Channel1 |
#define | AUDIO_IN_SAI_PDMx_DMAx_REQUEST BDMA_REQUEST_SAI4_A |
#define | AUDIO_IN_SAI_PDMx_DMAx_IRQ BDMA_Channel1_IRQn |
#define | AUDIO_IN_SAI_PDMx_DMAx_PERIPH_DATA_SIZE DMA_PDATAALIGN_HALFWORD |
#define | AUDIO_IN_SAI_PDMx_DMAx_MEM_DATA_SIZE DMA_MDATAALIGN_HALFWORD |
#define | AUDIO_IN_SAI_PDMx_DMAx_IRQHandler BDMA_Channel1_IRQHandler |
#define | AUDIODATA_SIZE ((uint32_t)2) /* 16-bits audio data size */ |
#define | AUDIO_OK ((uint8_t)0) |
#define | AUDIO_ERROR ((uint8_t)1) |
#define | AUDIO_TIMEOUT ((uint8_t)2) |
#define | DEFAULT_AUDIO_IN_FREQ BSP_AUDIO_FREQUENCY_16K |
#define | DEFAULT_AUDIO_IN_BIT_RESOLUTION ((uint8_t)16) |
#define | DEFAULT_AUDIO_IN_CHANNEL_NBR ((uint8_t)2) |
#define | DEFAULT_AUDIO_IN_VOLUME ((uint16_t)64) |
#define | OUTPUT_DEVICE_HEADPHONE1 OUTPUT_DEVICE_HEADPHONE |
#define | OUTPUT_DEVICE_HEADPHONE2 OUTPUT_DEVICE_SPEAKER /* Headphone2 is connected to Speaker output of the wm8994 */ |
#define | INPUT_DEVICE_ANALOG_MIC ((uint32_t)0x00000001) |
#define | INPUT_DEVICE_DIGITAL_MIC1 ((uint32_t)0x00000010) |
#define | INPUT_DEVICE_DIGITAL_MIC2 ((uint32_t)0x00000020) |
#define | INPUT_DEVICE_DIGITAL_MIC ((uint32_t)(INPUT_DEVICE_DIGITAL_MIC1 | INPUT_DEVICE_DIGITAL_MIC2)) |
#define | DFSDM_MIC_NUMBER ((uint32_t)2) |
#define | AUDIO_IN_INTERFACE_SAI ((uint16_t)0) |
#define | AUDIO_IN_INTERFACE_PDM ((uint16_t)1) |
#define | AUDIO_IN_INTERFACE_DFSDM ((uint16_t)2) |
#define | DMA_MAX_SIZE 0xFFFF |
#define | DMA_MAX(x) (((x) <= DMA_MAX_SIZE)? (x):DMA_MAX_SIZE) |
#define | POS_VAL(VAL) (POSITION_VAL(VAL) - 4) |
Functions | |
uint8_t | BSP_AUDIO_OUT_Init (uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq) |
Configures the audio Out peripheral. | |
void | BSP_AUDIO_OUT_DeInit (void) |
De-initializes the audio out peripheral. | |
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) |
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. | |
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. | |
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). | |
__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. | |
__weak void | BSP_AUDIO_OUT_ClockConfig (SAI_HandleTypeDef *hsai, uint32_t AudioFreq, void *Params) |
Clock Config. | |
__weak void | BSP_AUDIO_OUT_MspInit (SAI_HandleTypeDef *hsai, void *Params) |
Initializes BSP_AUDIO_OUT MSP. | |
__weak void | BSP_AUDIO_OUT_MspDeInit (SAI_HandleTypeDef *hsai, void *Params) |
Deinitializes SAI MSP. | |
uint8_t | BSP_AUDIO_IN_Init (uint32_t AudioFreq, uint32_t BitRes, uint32_t ChnlNbr) |
Initialize wave recording. | |
uint8_t | BSP_AUDIO_IN_InitEx (uint16_t InputDevice, uint32_t AudioFreq, uint32_t BitRes, uint32_t ChnlNbr) |
Initialize wave recording. | |
uint8_t | BSP_AUDIO_IN_ConfigMicDefault (uint32_t InputDevice) |
Initializes default configuration of the Digital Filter for Sigma-Delta Modulators interface (DFSDM). | |
__weak uint8_t | BSP_AUDIO_IN_ConfigDigitalMic (uint32_t InputDevice, void *Params) |
Initializes the Digital Filter for Sigma-Delta Modulators interface (DFSDM). | |
uint8_t | BSP_AUDIO_IN_AllocScratch (int32_t *pScratch, uint32_t size) |
Allocate channel buffer scratch. | |
uint8_t | BSP_AUDIO_IN_Record (uint16_t *pBuf, uint32_t size) |
Start audio recording. | |
uint8_t | BSP_AUDIO_IN_RecordEx (uint32_t *pBuf, uint32_t Size) |
uint8_t | BSP_AUDIO_IN_SetFrequency (uint32_t AudioFreq) |
uint8_t | BSP_AUDIO_IN_Stop (void) |
Stop audio recording. | |
uint8_t | BSP_AUDIO_IN_StopEx (uint32_t InputDevice) |
Stops audio recording. | |
uint8_t | BSP_AUDIO_IN_Pause (void) |
Pause the audio file stream. | |
uint8_t | BSP_AUDIO_IN_PauseEx (uint32_t InputDevice) |
Pauses the audio file stream. | |
uint8_t | BSP_AUDIO_IN_Resume (void) |
Resume the audio file stream. | |
uint8_t | BSP_AUDIO_IN_ResumeEx (uint32_t *pBuf, uint32_t InputDevice) |
Resumes the audio file stream. | |
uint8_t | BSP_AUDIO_IN_SetVolume (uint8_t Volume) |
Controls the audio in volume level. | |
void | BSP_AUDIO_IN_DeInit (void) |
Deinit the audio IN peripherals. | |
uint8_t | BSP_AUDIO_IN_PDMToPCM (uint16_t *PDMBuf, uint16_t *PCMBuf) |
Converts audio format from PDM to PCM. | |
uint8_t | BSP_AUDIO_IN_PDMToPCM_Init (uint32_t AudioFreq, uint32_t ChnlNbrIn, uint32_t ChnlNbrOut) |
Initialize the PDM library. | |
void | BSP_AUDIO_IN_SelectInterface (uint32_t Interface) |
Link digital mic to specified source. | |
uint32_t | BSP_AUDIO_IN_GetInterface (void) |
Get digital mic interface. | |
uint8_t | BSP_AUDIO_IN_OUT_Init (uint32_t InputDevice, uint32_t OutputDevice, uint32_t AudioFreq, uint32_t BitRes, uint32_t ChnlNbr) |
Initializes wave recording and playback in parallel. | |
__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_TransferComplete_CallBackEx (uint32_t InputDevice) |
User callback when record buffer is filled. | |
__weak void | BSP_AUDIO_IN_HalfTransfer_CallBackEx (uint32_t InputDevice) |
User callback when record buffer is filled. | |
__weak void | BSP_AUDIO_IN_Error_CallBack (void) |
Audio IN Error callback function. | |
__weak void | BSP_AUDIO_IN_ClockConfig (uint32_t AudioFreq, void *Params) |
Clock Config. | |
__weak void | BSP_AUDIO_IN_MspInit (void) |
Initialize BSP_AUDIO_IN MSP. | |
__weak void | BSP_AUDIO_IN_MspDeInit (void) |
DeInitialize BSP_AUDIO_IN MSP. |
Detailed Description
This file contains the common defines and functions prototypes for the stm32h743i_eval_audio.c driver.
- Attention:
© COPYRIGHT(c) 2017 STMicroelectronics
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Definition in file stm32h743i_eval_audio.h.
Generated on Wed Aug 23 2017 17:45:14 for STM32H743I_EVAL BSP User Manual by 1.7.6.1