The small omnidirectional electret microphone features a reasonably flat frequency response, and it can be used within the frequency range between 100 Hz and 20 kHz. This range is perfectly suited for audio and/or speech applications. Due to its small size, programmable gain, low power supply, and reasonably good signal-to-noise ratio, this Click board™ can be used for development of various audio and speech-related applications: speech or audio digitizing, digital audio monitoring and surveillance, digital “bugs”, etc.
How does it work?
MIC 2 click is designed around a small omnidirectional electret microphone, accompanied by a digitally controlled pre-amp section. The pre-amp consists of the MCP6022, a dual, rail-to-rail, low noise operational amplifier from Microchip. This op-amp has a wide bandwidth of 10MHz, very low noise, and extremely low total harmonic distortion (THD). These features make it perfectly suitable to be used to build a microphone pre-amplifier (pre-amp). By adding a digital potentiometer IC in the feedback loop, it is possible to set the gain ratio by the host MCU.
The AD5171, a digital potentiometer IC with 64 positions from Analog Devices is used in the feedback loop to digitally control the gain ratio. This device contains an OTP memory (a fuse) which can be used to lock the wiper in a permanent position. The wiper data can be changed indefinitely until the internal protection fuse is blown. This can be done by a special command. However, the Click board™ must be operated at 5V in order to successfully blow up the fuse and lock down the wiper position permanently. Please consult the AD5171 for more details about the OTP memory programming and permanent lock-down of the wiper position.
The AD5171 uses the I2C interface to communicate with the host MCU. The slave I2C address of this device can be changed using the SMD jumper, labeled as ADDR SEL. This jumper sets the LSB of the address, allowing it to be selected between 0b0101100x, and 0b0101101x, where (x) represents the R/W bit. The datasheet of the AD5171 offers a comprehensive explanation of its operation. However, it is supported by a mikroSDK compatible set of libraries. These functions greatly simplify the use, ensuring that the accidental lock-down is avoided if not wanted.
One half of the MCP6022 is configured as a non-inverting amplifier, with the digital potentiometer connected as a rheostat in its feedback loop. The digital rheostat affects the feedback loop gain, allowing the host MCU to control it over the I2C interface. The input of the op-amp is biased by a voltage divider, so it stays at half the power supply voltage when there is no signal. This way when the signal appears at the input, it can swing both down to 0V and up to VCC. A minimum gain of the op-amp is 23. It can be increased as the AD5171 is moved away from the 0 position. After power ON, the wiper of the AD5171 is in the middle position (i.e. 25K, if it is not locked down to some other value).
The second op-amp of the MCP6022 serves as a unity-gain buffer, allowing the host MCU to sample the output over the AN pin of the mikroBUS™. Depending on the applied gain ratio, the output voltage may peak up to VCC. Therefore, care should be taken when selecting the voltage for the Click board™.
The power supply voltage for the Click board™ can be selected using the VCC SEL jumper on the Click board™. As already mentioned, please avoid programming the OTP bit, if the supply voltage is set to 3.3V.
Specifications
Type
Microphone
Applications
It can be used for development of various audio and speech-related applications: speech or audio digitizing, digital audio monitoring and surveillance, digital “”bugs””, etc.
On-board modules
MCP6022, a dual, rail-to-rail, low noise operational amplifier from Microchip; AD5171, a digital potentiometer IC with 64 positions from Analog Devices.
Key Features
Programmable gain, low noise, very low THD, possibility to permanently lock-down gain ratio if required, gain control in 64 discrete steps, onboard electret omnidirectional microphone, etc.
Interface
Analog,I2C
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
M (42.9 x 25.4 mm)
Input Voltage
3.3V or 5V
Pinout diagram
This table shows how the pinout on MIC 2 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
MIC 2 click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Microphone sensitivity (0dB = 1V/Pa) | -45 | – | -39 | dB |
Signal to noise ratio (SNR) | – | 58 | – | dBA |
Frequency range | 100 | – | 20k | Hz |
Pre-amplifier gain ratio | 23 | – | 73 | X |
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED indicator |
JP1 | ADDR SEL | Left | I2C Slave address LSB selection: left position GND (0), right position VCC (1) |
JP2 | VCC SEL | Left | Power supply voltage selection: left position 3.3V, right position 5V |
Software support
We provide a library for the MIC 2 click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library contains functions with reading values from the ADC and setting the potentiometer over the I2C lines. The values returned by MIC 2 click, the user can see on the Serial plot.
Key functions:
void mic2_setPotentiometer(uint8_t ptt_value)
– Functions for sets resistance of the potentiometer.uint32_t mic2_adcRead()
– ADC read.void mic2_adcSetInputChannel()
– ADC set channel.void mic2_adcInit()
– ADC init.
Examples description
The application is composed of the three sections :
- System Initialization – Initializes I2C module, LOG communication and AN pin as INPUT.
- Application Initialization – Initializes driver init, ADC init and sets digital pot.
- Application Task – Reads ADC data from AN pin and plots it on serial plotter.
void applicationTask( ) { uint16_t adcValue; adcValue = mic2_adcRead(); plotData( adcValue ); }
Additional Functions :
- plotData() – Performs the data plotting on serial plot.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
I2C
UART
ADC
Additional notes and informations
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.