MIC - Microphone Driver (ADC)
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
58
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
189
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
262
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
250
of file
mic.c
.
float MIC_getSoundLevel | ( | float * |
var
|
) |
Calculates the sound level.
- Parameters
-
[out] var
The variance of the samples
- Returns
- The sound level in dB
Definition at line
287
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] fs
The desired sample rate in Hz [in] buffer
Pointer to the sample buffer to store the ADC data [in] len
The size of the sample buffer
- Returns
- Returns zero on OK, non-zero otherwise
Definition at line
93
of file
mic.c
.
References ADC_Init() , ADC_INIT_DEFAULT , ADC_InitScan() , ADC_INITSCAN_DEFAULT , ADC_PrescaleCalc() , ADC_ScanInputClear() , ADC_ScanSingleEndedInputAdd() , ADC_TimebaseCalc() , adcInit() , adcRef2V5 , BOARD_micEnable() , CMU_ClockEnable() , CMU_ClockFreqGet() , CMU_ClockSelectSet() , 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
326
of file
mic.c
.
void MIC_start | ( | uint32_t |
nSamples
|
) |
Starts taking samples using DMA from the microphone.
- Parameters
-
[in] nSamples
The number of the samples to take
- Returns
- None
Definition at line
215
of file
mic.c
.
References DMADRV_PeripheralMemory() , dmadrvDataSize2 , and dmadrvPeripheralSignal_ADC0_SCAN .