Friday, November 14, 2014

An op-amp based Electret Condenser Microphone Preamp for microcontrollers

This is an op-amp Electret Condenser Microphone Preamp board design for the use with microcontrollers ADC.

For the NPN version of this board, an for more information about microcontroller ADC and microphone input, please refer to this page:

The proposed circuit is just a revision of a pretty usually op-amp electret mic preamplifier.
The selected op-amp is the TLC272, because it can be drive in single rail operation, it's common mode input range, and has good noise performance. Also other op-amp could work.
The op-amp is configured in inverting mode.

C3 is a power supply stabilization condenser.
R4 helps remove noise from the power line, but it can also be omitted.
R5 is used to polarize the microphone.
C5 is a low pass filter, it helps to remove board noise.
C4 is the input DC blocking capacitor.
R3 and R9 sets the circuit gain.
R9 loads the NPN collector.
R3 bias the signal using the collector feedback bias design, it prevents thermal runaway and stabilize the operating point, in conjuction wht R9 resistor, this sets the gain of the board.
C2 is a low pass filter.
C1 reduce dc "noise gain" by capacitively coupling the feedback, it also act as an high pass filter
R6 and R7 does a voltage divider to perform the bias on the signal.
C6, R1 and R2 also is an input voltage divider, and the cap here is is the output DC blocking capacitor, this design has input and ouput voltage diveder cause one can supply the opamp with a voltage, and the R6/R7 divider with the ADC reference voltage, with a single supply voltage, one can remove those last components.

Tested on ATmega8 and STM32F103 ADC, loaded with 5v or 3.3v (i'm using the C suffix TLC272 that has 3v as minimum recomanded), it has a little noise and it a good response even on low sound, sliglty better than the NPN version.


  1. Replies
    1. Hello. This is just a preamplifier, you just have to connect it to the ADC of you STM32F103 and use calls from the stm32f10x library, to me that's the simple way. When connected to the STM32 power it up with 3.3v.