STSW-STLKT01: Drivers/BSP/SensorTile/SensorTile_audio_in.h Source File

STSW-STLKT01

STSW-STLKT01
SensorTile_audio_in.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __SENSORTILE_AUDIO_IN_H
40 #define __SENSORTILE_AUDIO_IN_H
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46  /* Includes ------------------------------------------------------------------*/
47 
67  typedef struct {
68  int32_t Z;
69  int32_t oldOut;
70  int32_t oldIn;
72 
76  typedef struct {
77  uint32_t MicChannels;
79  uint32_t Sampling_Freq;
81  HP_FilterState_TypeDef HP_Filters[4];
83  uint16_t * PCM_Data;
86  }
88 
98  /* Select the interrupt preemption priority and subpriority for the IT/DMA interrupt */
99 #define AUDIO_IN_IRQ_PREPRIO 6 /* Select the preemption priority level(0 is the highest) */
100 
101  /*------------------------------------------------------------------------------
102  CONFIGURATION: Audio Driver Configuration parameters
103  ------------------------------------------------------------------------------*/
104 
105 #ifndef AUDIO_OK
106 #define AUDIO_OK ((uint8_t)0)
107 #endif
108 #ifndef AUDIO_ERROR
109 #define AUDIO_ERROR ((uint8_t)1)
110 #endif
111 #ifndef AUDIO_TIMEOUT
112 #define AUDIO_TIMEOUT ((uint8_t)2)
113 #endif
114 
115 #ifndef AUDIO_FREQUENCY_192K
116 #define AUDIO_FREQUENCY_192K ((uint32_t)192000)
117 #endif
118 #ifndef AUDIO_FREQUENCY_96K
119 #define AUDIO_FREQUENCY_96K ((uint32_t)96000)
120 #endif
121 #ifndef AUDIO_FREQUENCY_48K
122 #define AUDIO_FREQUENCY_48K ((uint32_t)48000)
123 #endif
124 #ifndef AUDIO_FREQUENCY_44K
125 #define AUDIO_FREQUENCY_44K ((uint32_t)44100)
126 #endif
127 #ifndef AUDIO_FREQUENCY_32K
128 #define AUDIO_FREQUENCY_32K ((uint32_t)32000)
129 #endif
130 #ifndef AUDIO_FREQUENCY_22K
131 #define AUDIO_FREQUENCY_22K ((uint32_t)22050)
132 #endif
133 #ifndef AUDIO_FREQUENCY_16K
134 #define AUDIO_FREQUENCY_16K ((uint32_t)16000)
135 #endif
136 #ifndef AUDIO_FREQUENCY_11K
137 #define AUDIO_FREQUENCY_11K ((uint32_t)11025)
138 #endif
139 #ifndef AUDIO_FREQUENCY_8K
140 #define AUDIO_FREQUENCY_8K ((uint32_t)8000)
141 #endif
142 
143 #define DEFAULT_AUDIO_IN_VOLUME 64
144 
152  extern DMA_HandleTypeDef hdma_dfsdmReg_FLT[];
153 
170 #define MAX_CH_NUMBER (4)
171 #define MAX_FS (96000)
172 #define MAX_SAMPLES_PER_CH ((MAX_FS/1000)*2)
173 
174  /* AUDIO FREQUENCY */
175 #define AUDIO_FREQUENCY_192K ((uint32_t)192000)
176 #define AUDIO_FREQUENCY_96K ((uint32_t)96000)
177 #define AUDIO_FREQUENCY_48K ((uint32_t)48000)
178 #define AUDIO_FREQUENCY_44K ((uint32_t)44100)
179 #define AUDIO_FREQUENCY_32K ((uint32_t)32000)
180 #define AUDIO_FREQUENCY_22K ((uint32_t)22050)
181 #define AUDIO_FREQUENCY_16K ((uint32_t)16000)
182 #define AUDIO_FREQUENCY_11K ((uint32_t)11025)
183 #define AUDIO_FREQUENCY_8K ((uint32_t)8000)
184 
185  /* DFSDM Configuration defines */
186 
187 #define AUDIO_IN_DFSDM_CLK_ENABLE() __HAL_RCC_DFSDM_CLK_ENABLE()
188 
189 #define AUDIO_IN_DFSDM_1st_CHANNEL DFSDM_Channel5
190 #define AUDIO_IN_DFSDM_2nd_CHANNEL DFSDM_Channel1
191 #define AUDIO_IN_DFSDM_3rd_CHANNEL DFSDM_Channel7
192 #define AUDIO_IN_DFSDM_4rd_CHANNEL DFSDM_Channel6
193 
194 #define AUDIO_IN_DFSDM_1st_FILTER DFSDM_Filter0
195 #define AUDIO_IN_DFSDM_2st_FILTER DFSDM_Filter1
196 #define AUDIO_IN_DFSDM_3rd_FILTER DFSDM_Filter2
197 #define AUDIO_IN_DFSDM_4th_FILTER DFSDM_Filter3
198 
199 #define AUDIO_IN_DFSDM_CKOUT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
200 #define AUDIO_IN_DFSDM_CKOUT_GPIO_PORT GPIOC
201 #define AUDIO_IN_DFSDM_CKOUT_PIN GPIO_PIN_2
202 
203 #define AUDIO_IN_DFSDM_CH12_DATAIN_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
204 #define AUDIO_IN_DFSDM_CH12_DATIN_GPIO_PORT GPIOB
205 #define AUDIO_IN_DFSDM_CH12_DATIN_PIN GPIO_PIN_6
206 
207 #define AUDIO_IN_DFSDM_CH12_EXT_DATAIN_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
208 #define AUDIO_IN_DFSDM_CH12_EXT_DATIN_GPIO_PORT GPIOB
209 #define AUDIO_IN_DFSDM_CH12_EXT_DATIN_PIN GPIO_PIN_8
210 
211 #define AUDIO_IN_DFSDM_CH34_EXT_DATAIN_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
212 #define AUDIO_IN_DFSDM_CH34_EXT_DATIN_GPIO_PORT GPIOC
213 #define AUDIO_IN_DFSDM_CH34_EXT_DATIN_PIN GPIO_PIN_0
214 
215 #define AUDIO_IN_DFSDM_CKOUT_DATIN_AF GPIO_AF6_DFSDM
216 
217 
218 #define AUDIO_IN_DFSDM_DMA_CLK_ENABLE() __HAL_RCC_DMA1_CLK_ENABLE()
219 
220 #define AUDIO_IN_DFSDM_DMA_1st_CHANNEL DMA1_Channel4
221 #define AUDIO_IN_DFSDM_DMA_2nd_CHANNEL DMA1_Channel5
222 #define AUDIO_IN_DFSDM_DMA_3rd_CHANNEL DMA1_Channel6
223 #define AUDIO_IN_DFSDM_DMA_4th_CHANNEL DMA1_Channel7
224 
225 #define AUDIO_IN_DFSDM_DMA_1st_CH_IRQn DMA1_Channel4_IRQn
226 #define AUDIO_IN_DFSDM_DMA_2nd_CH_IRQn DMA1_Channel5_IRQn
227 #define AUDIO_IN_DFSDM_DMA_3rd_CH_IRQn DMA1_Channel6_IRQn
228 #define AUDIO_IN_DFSDM_DMA_4th_CH_IRQn DMA1_Channel7_IRQn
229 
230 #define AUDIO_IN_DFSDM_DMA_PERIPH_DATA_SIZE DMA_PDATAALIGN_WORD
231 #define AUDIO_IN_DFSDM_DMA_MEM_DATA_SIZE DMA_MDATAALIGN_WORD
232 
233 #define AUDIO_IN_DFSDM_DMA_1st_CH_IRQHandler DMA1_Channel4_IRQHandler
234 #define AUDIO_IN_DFSDM_DMA_2nd_CH_IRQHandler DMA1_Channel5_IRQHandler
235 #define AUDIO_IN_DFSDM_DMA_3rd_CH_IRQHandler DMA1_Channel6_IRQHandler
236 #define AUDIO_IN_DFSDM_DMA_4th_CH_IRQHandler DMA1_Channel7_IRQHandler
237 
246  uint8_t BSP_AUDIO_IN_SetVolume(uint8_t Volume);
247  uint8_t BSP_AUDIO_IN_Init(uint32_t AudioFreq, uint32_t BitRes, uint32_t ChnlNbr);
248  uint8_t BSP_AUDIO_IN_DeInit(void);
249  uint8_t BSP_AUDIO_IN_ClockConfig(uint32_t AudioFreq, void *Params);
250  uint8_t BSP_AUDIO_IN_Record(uint16_t* pbuf, uint32_t size);
251  uint8_t BSP_AUDIO_IN_Stop(void);
252  uint8_t BSP_AUDIO_IN_Pause(void);
253  uint8_t BSP_AUDIO_IN_Resume(void);
254 
255  /* User Callbacks: user has to implement these functions in his code if they are needed. */
256  /* These functions should be implemented by the user application.*/
259  void BSP_AUDIO_IN_Error_Callback(void);
260 
277 #ifdef __cplusplus
278 }
279 #endif
280 
281 #endif /* __SENSORTILE_AUDIO_IN_H */
282 
283 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
284 
uint8_t BSP_AUDIO_IN_Init(uint32_t AudioFreq, uint32_t BitRes, uint32_t ChnlNbr)
Initializes audio acquisition.
HP filter state structure definition.
Microphone internal structure definition.
uint8_t BSP_AUDIO_IN_SetVolume(uint8_t Volume)
Controls the audio in volume level.
void BSP_AUDIO_IN_TransferComplete_CallBack(void)
User callback when record buffer is filled.
uint8_t BSP_AUDIO_IN_Pause(void)
Pauses the audio file stream.
__weak uint8_t BSP_AUDIO_IN_ClockConfig(uint32_t AudioFreq, void *Params)
Clock Config.
void BSP_AUDIO_IN_HalfTransfer_CallBack(void)
User callback when record buffer is half filled.
uint8_t BSP_AUDIO_IN_Stop(void)
Stops audio recording.
uint8_t BSP_AUDIO_IN_DeInit(void)
DeInitializes the audio peripheral.
__weak void BSP_AUDIO_IN_Error_Callback(void)
Audio IN Error callback function.
uint8_t BSP_AUDIO_IN_Resume(void)
Resumes the audio file stream.
uint8_t BSP_AUDIO_IN_Record(uint16_t *pbuf, uint32_t size)
Starts audio recording.
Generated by   doxygen 1.8.13