Go to the documentation of this file.
   38 #ifndef __STM32F411E_DISCOVERY_AUDIO_H 
   39 #define __STM32F411E_DISCOVERY_AUDIO_H 
   47 #include "../Components/cs43l22/cs43l22.h" 
   49 #include "../../../Middlewares/ST/STM32_Audio/Addons/PDM/Inc/pdm2pcm_glo.h" 
   80 #define I2S3_CLK_ENABLE()               __HAL_RCC_SPI3_CLK_ENABLE() 
   81 #define I2S3_CLK_DISABLE()              __HAL_RCC_SPI3_CLK_DISABLE() 
   82 #define I2S3_SCK_SD_WS_AF               GPIO_AF6_SPI3 
   83 #define I2S3_SCK_SD_CLK_ENABLE()        __HAL_RCC_GPIOC_CLK_ENABLE() 
   84 #define I2S3_MCK_CLK_ENABLE()           __HAL_RCC_GPIOC_CLK_ENABLE() 
   85 #define I2S3_WS_CLK_ENABLE()            __HAL_RCC_GPIOA_CLK_ENABLE() 
   86 #define I2S3_WS_PIN                     GPIO_PIN_4 
   87 #define I2S3_SCK_PIN                    GPIO_PIN_10 
   88 #define I2S3_SD_PIN                     GPIO_PIN_12 
   89 #define I2S3_MCK_PIN                    GPIO_PIN_7 
   90 #define I2S3_SCK_SD_GPIO_PORT           GPIOC 
   91 #define I2S3_WS_GPIO_PORT               GPIOA 
   92 #define I2S3_MCK_GPIO_PORT              GPIOC 
   95 #define I2S3_DMAx_CLK_ENABLE()          __HAL_RCC_DMA1_CLK_ENABLE() 
   96 #define I2S3_DMAx_CLK_DISABLE()         __HAL_RCC_DMA1_CLK_DISABLE() 
   97 #define I2S3_DMAx_STREAM                DMA1_Stream7 
   98 #define I2S3_DMAx_CHANNEL               DMA_CHANNEL_0 
   99 #define I2S3_DMAx_IRQ                   DMA1_Stream7_IRQn 
  100 #define I2S3_DMAx_PERIPH_DATA_SIZE      DMA_PDATAALIGN_HALFWORD 
  101 #define I2S3_DMAx_MEM_DATA_SIZE         DMA_MDATAALIGN_HALFWORD 
  102 #define DMA_MAX_SZE                     0xFFFF 
  104 #define I2S3_IRQHandler                 DMA1_Stream7_IRQHandler 
  107 #define AUDIO_OUT_IRQ_PREPRIO           0x0E    
  114 #define I2S2_CLK_ENABLE()               __HAL_RCC_SPI2_CLK_ENABLE() 
  115 #define I2S2_CLK_DISABLE()              __HAL_RCC_SPI2_CLK_DISABLE() 
  116 #define I2S2_SCK_PIN                    GPIO_PIN_10 
  117 #define I2S2_SCK_GPIO_PORT              GPIOB 
  118 #define I2S2_SCK_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOB_CLK_ENABLE() 
  119 #define I2S2_SCK_AF                     GPIO_AF5_SPI2 
  121 #define I2S2_MOSI_PIN                   GPIO_PIN_3 
  122 #define I2S2_MOSI_GPIO_PORT             GPIOC 
  123 #define I2S2_MOSI_GPIO_CLK_ENABLE()     __HAL_RCC_GPIOC_CLK_ENABLE() 
  124 #define I2S2_MOSI_AF                    GPIO_AF5_SPI2 
  127 #define I2S2_DMAx_CLK_ENABLE()          __HAL_RCC_DMA1_CLK_ENABLE() 
  128 #define I2S2_DMAx_CLK_DISABLE()         __HAL_RCC_DMA1_CLK_DISABLE() 
  129 #define I2S2_DMAx_STREAM                DMA1_Stream3 
  130 #define I2S2_DMAx_CHANNEL               DMA_CHANNEL_0 
  131 #define I2S2_DMAx_IRQ                   DMA1_Stream3_IRQn 
  132 #define I2S2_DMAx_PERIPH_DATA_SIZE      DMA_PDATAALIGN_HALFWORD 
  133 #define I2S2_DMAx_MEM_DATA_SIZE         DMA_MDATAALIGN_HALFWORD 
  135 #define I2S2_IRQHandler                 DMA1_Stream3_IRQHandler 
  138 #define AUDIO_IN_IRQ_PREPRIO            0x0F    
  144 #define AUDIODATA_SIZE      2    
  148 #define AUDIO_ERROR                           1 
  149 #define AUDIO_TIMEOUT                         2 
  152 #define DEFAULT_AUDIO_IN_FREQ                 I2S_AUDIOFREQ_16K 
  153 #define DEFAULT_AUDIO_IN_BIT_RESOLUTION       16 
  154 #define DEFAULT_AUDIO_IN_CHANNEL_NBR          1  
  155 #define DEFAULT_AUDIO_IN_VOLUME               64 
  158 #define INTERNAL_BUFF_SIZE                    128*DEFAULT_AUDIO_IN_FREQ/16000*DEFAULT_AUDIO_IN_CHANNEL_NBR 
  160 #define PCM_OUT_SIZE                          DEFAULT_AUDIO_IN_FREQ/1000 
  161 #define CHANNEL_DEMUX_MASK                    0x55 
  182 #define DMA_MAX(_X_)                (((_X_) <= DMA_MAX_SZE)? (_X_):DMA_MAX_SZE) 
  183 #define HTONS(A)  ((((uint16_t)(A) & 0xff00) >> 8) | (((uint16_t)(A) & 0x00ff) << 8)) 
  191 uint8_t 
BSP_AUDIO_OUT_Init(uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq);
 
  226 uint8_t 
BSP_AUDIO_IN_Init(uint32_t AudioFreq, uint32_t BitRes, uint32_t ChnlNbr);
 
  
void BSP_AUDIO_OUT_ChangeBuffer(uint16_t *pData, uint16_t Size)
Sends n-Bytes on the I2S interface.
 
uint8_t BSP_AUDIO_OUT_SetOutputMode(uint8_t Output)
Switch dynamically (while audio file is played) the output target (speaker or headphone).
 
uint8_t BSP_AUDIO_OUT_Pause(void)
Pauses the audio file stream. In case of using DMA, the DMA Pause feature is used....
 
uint8_t BSP_AUDIO_OUT_Play(uint16_t *pBuffer, uint32_t Size)
Starts playing audio stream from a data buffer for a determined size.
 
uint8_t BSP_AUDIO_OUT_Init(uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq)
Configures the audio peripherals.
 
void BSP_AUDIO_OUT_SetFrequency(uint32_t AudioFreq)
Update the audio frequency.
 
uint8_t BSP_AUDIO_OUT_SetMute(uint32_t Cmd)
Enables or disables the MUTE mode by software.
 
void BSP_AUDIO_IN_Error_Callback(void)
Audio IN Error callback function.
 
I2S handle Structure definition.
 
uint8_t BSP_AUDIO_OUT_SetVolume(uint8_t Volume)
Controls the current audio volume level.
 
void BSP_AUDIO_IN_TransferComplete_CallBack(void)
User callback when record buffer is filled.
 
void BSP_AUDIO_IN_MspInit(I2S_HandleTypeDef *hi2s, void *Params)
BSP AUDIO IN MSP Init.
 
void BSP_AUDIO_OUT_ClockConfig(I2S_HandleTypeDef *hi2s, uint32_t AudioFreq, void *Params)
Clock Config.
 
__IO uint16_t AudioInVolume
 
uint8_t BSP_AUDIO_IN_Pause(void)
Pauses the audio file stream.
 
void BSP_AUDIO_IN_HalfTransfer_CallBack(void)
Manages the DMA Half Transfer complete event.
 
uint8_t BSP_AUDIO_OUT_Resume(void)
Resumes the audio file streaming.   WARNING: When calling BSP_AUDIO_OUT_Pause() function for pause,...
 
uint8_t BSP_AUDIO_IN_Resume(void)
Resumes the audio file stream.
 
void BSP_AUDIO_OUT_TransferComplete_CallBack(void)
Manages the DMA full Transfer complete event.
 
void BSP_AUDIO_IN_MspDeInit(I2S_HandleTypeDef *hi2s, void *Params)
DeInitializes BSP_AUDIO_IN MSP.
 
void BSP_AUDIO_OUT_Error_CallBack(void)
Manages the DMA FIFO error event.
 
uint8_t BSP_AUDIO_IN_Stop(void)
Stops audio recording.
 
uint8_t BSP_AUDIO_IN_Init(uint32_t AudioFreq, uint32_t BitRes, uint32_t ChnlNbr)
Initializes wave recording.
 
void BSP_AUDIO_OUT_MspInit(I2S_HandleTypeDef *hi2s, void *Params)
AUDIO OUT I2S MSP Init.
 
uint8_t BSP_AUDIO_OUT_Stop(uint32_t Option)
Stops audio playing and Power down the Audio Codec.
 
uint8_t BSP_AUDIO_IN_Record(uint16_t *pData, uint32_t Size)
Starts audio recording.
 
This file contains definitions for STM32F401-Discovery Kit's Leds and push-button hardware resources.
 
void BSP_AUDIO_OUT_HalfTransfer_CallBack(void)
Manages the DMA Half Transfer complete event.
 
uint8_t BSP_AUDIO_IN_PDMToPCM(uint16_t *PDMBuf, uint16_t *PCMBuf)
Converts audio format from PDM to PCM.
 
void BSP_AUDIO_OUT_MspDeInit(I2S_HandleTypeDef *hi2s, void *Params)
De-Initializes BSP_AUDIO_OUT MSP.
 
uint8_t BSP_AUDIO_IN_SetVolume(uint8_t Volume)
Controls the audio in volume level.
 
void BSP_AUDIO_IN_ClockConfig(I2S_HandleTypeDef *hi2s, uint32_t AudioFreq, void *Params)
Audio In Clock Config.