MIC - Microphone Driver (ADC)BSP > Thunderboard Sense BSP
Detailed Description
Driver for the Knowles SPV1840LR5H-B MEMS Microphone.
Functions |
|
| void | MIC_deInit (void) |
|
Powers down the MEMS microphone stops the ADC and frees up the DMA channel.
|
|
| float | MIC_getMean (void) |
|
Calculates the average value of the samples in the buffer.
|
|
| uint16_t * | MIC_getSampleBuffer (void) |
|
Gets the sample buffer.
|
|
| float | MIC_getSoundLevel (float *var) |
|
Calculates the sound level.
|
|
| uint32_t | MIC_init (uint32_t fs, uint16_t *buffer, size_t len) |
|
Initializes MEMS microphone and sets up the DMA, ADC and clocking.
|
|
| bool | MIC_isBusy (void) |
|
Checks if the microphone is in use.
|
|
| void | MIC_start (uint32_t nSamples) |
|
Starts taking samples using DMA from the microphone.
|
|
Error Codes |
|
| #define | MIC_OK 0 |
Macro Definition Documentation
| #define MIC_OK 0 |
No errors
Definition at line
43
of file
mic.h
.
Function Documentation
| void MIC_deInit | ( | void |
|
) |
Powers down the MEMS microphone stops the ADC and frees up the DMA channel.
- Returns
- None
Definition at line
174
of file
mic.c
.
References BOARD_micEnable() , DMADRV_FreeChannel() , and PRS_SourceAsyncSignalSet() .
| float MIC_getMean | ( | void |
|
) |
Calculates the average value of the samples in the buffer.
- Returns
- The mean value of the samples in the buffer
Definition at line
247
of file
mic.c
.
Referenced by MIC_getSoundLevel() .
| uint16_t * MIC_getSampleBuffer | ( | void |
|
) |
Gets the sample buffer.
- Returns
- Returns a pointer to the sample buffer
Definition at line
235
of file
mic.c
.
| float MIC_getSoundLevel | ( | float * |
var
|
) |
Calculates the sound level.
- Parameters
-
[out] varThe variance of the samples
- Returns
- The sound level in dB
Definition at line
272
of file
mic.c
.
References MIC_getMean() .
| uint32_t MIC_init | ( | uint32_t |
fs,
|
| uint16_t * |
buffer,
|
||
| size_t |
len
|
||
| ) |
Initializes MEMS microphone and sets up the DMA, ADC and clocking.
- Parameters
-
[in] fsThe desired sample rate in Hz [in] bufferPointer to the sample buffer to store the ADC data [in] lenThe size of the sample buffer
- Returns
- Returns zero on OK, non-zero otherwise
Definition at line
78
of file
mic.c
.
References ADC0 , ADC_Init() , ADC_INIT_DEFAULT , ADC_InitScan() , ADC_INITSCAN_DEFAULT , ADC_PrescaleCalc() , ADC_ScanInputClear() , ADC_ScanSingleEndedInputAdd() , ADC_TimebaseCalc() , adcInit() , adcRef2V5 , BOARD_micEnable() , CMU , CMU_ADCCTRL_ADC0CLKSEL_AUXHFRCO , CMU_ClockEnable() , CMU_ClockFreqGet() , CMU_ClockSelectSet() , CMU_CTRL_CLKOUTSEL1_LFXOQ , CMU_CTRL_CLKOUTSEL1_ULFRCOQ , cmuClock_ADC0 , cmuClock_AUX , cmuClock_LFA , cmuClock_PRS , cmuSelect_LFXO , LETIMER_Init_TypeDef::comp0Top , DMADRV_AllocateChannel() , DMADRV_Init() , ECODE_EMDRV_DMADRV_OK , ADC_Init_TypeDef::em2ClockConfig , LETIMER_Init_TypeDef::enable , LETIMER_CompareSet() , LETIMER_Init() , LETIMER_INIT_DEFAULT , LETIMER_RepeatSet() , letimerUFOAPulse , ADC_Init_TypeDef::prescale , PRS_SourceAsyncSignalSet() , ADC_InitScan_TypeDef::prsEnable , ADC_InitScan_TypeDef::prsSel , ADC_InitScan_TypeDef::reference , ADC_InitScan_TypeDef::scanDmaEm2Wu , ADC_Init_TypeDef::timebase , and LETIMER_Init_TypeDef::ufoa0 .
| bool MIC_isBusy | ( | void |
|
) |
Checks if the microphone is in use.
- Returns
- Returns true if the DMA is busy taking microphone samples
Definition at line
311
of file
mic.c
.
| void MIC_start | ( | uint32_t |
nSamples
|
) |
Starts taking samples using DMA from the microphone.
- Parameters
-
[in] nSamplesThe number of the samples to take
- Returns
- None
Definition at line
200
of file
mic.c
.
References ADC0 , DMADRV_PeripheralMemory() , dmadrvDataSize2 , and dmadrvPeripheralSignal_ADC0_SCAN .