Microphone to Op Amp

Hello All.

Sorry to bother with questions but I'm seeking a bit of guidance/help. As part of a project I'm trying to amplify the signal from a microphone (https://datasheets.maximintegrated.com/en/ds/MAX9814.pdf) by using an op-amp (LM 358). Both the op-amp and microphone are powered by the 5 V output of the Arduino, with the negative connection on the op-amp being connected to ground.

The signal being received from the microphone pre-amplification is around 0.2 - 0.3 V. I was using two resistors for a non-inverting amplification, but I'm not getting the expected results. Using identical resistors is resulting in no amplification. The op-amp 'works' when set up as a voltage follower. However, when the resistors are different (10 / 50 Ohm used and 50 /1k Ohm used, the output is 0).

I've initially assumed that the resistors were incorrectly connected, wrong way round etc... but this hasn't solved the issue. I've replaced the op-amp with another LM 358 and the problem is the same.

My next point of call would be to change the op-amp. Another port of call would be investigation into the DC-biased output of the microphone, and the impact that will have.

Any suggestions and ideas more than welcome.

Thanks :slight_smile:

there are many articles on the web with a microphone and a LM 358. here are a couple from the first hits

Why on earth use such insanely low values? Try something in the range of 4k7-100k.

Also, is there a real need for an LM358 on top of the already used MAX9814 which is a microphone amplifier?

Yeah.... I'm confused... Did you buy a pre-assembled board with a mic and a MAX9814 amplifier? Or, are you trying to use the 9814 like a regular op-amp?

The 9814 can go up to 60dB of gain (a gain of 1000). If that's not enough you're going to have electrical noise problems because the noise also gets amplified. :frowning:

[quote]Another port of call would be investigation into the DC-biased output of the microphone, and the impact that will have.[/quote]Electret mics have to be powered ("biased"). Normally that bias is filtered-out with a capacitor.

But since audio signals are AC signals that swing positive and negative, if you are using a single (positive-only) power supply, bias has to be added-back. Two equal value resistors are used because it's more predictable/controllable than the DC voltage out of the mic.

In a "normal audio application" another capacitor is added at the op-amp output to filter the DC out of the amplified signal (so it can swing negative again). However, if you're feeding an Arduino the bias has to remain.

How much voltage do you need and how are you measuring that? Hopefully you are measuring AC, but a multimeter can't reliably read real-world audio signals because they are constantly varying. You can measure it if the microphone is picking-up a constant test-tone.

The voltage depends on: The loudness of the sound, the sensitivity of the mic, and the gain of the preamp.

With a 5V supply the theoretical maximum is 5V peak-to-peak, which is 1.75V RMS. The 9814 is rated for 0.707V maximum (RMS).

What's connected to the output?
...The 9814 or a regular op-amp can't directly-drive a 4-Ohm or 8-Ohm speaker.

Thanks for your reply.

I am attempting to filter the output of the MAX9814 using a RLC band-pass filter. The output of this circuit though is 0V - or at least not within threshold to detect. I assumed this could be due to the loss through the circuit - hence the amplification.

Yes, I have a pre-assembled board with mic and amplifier. I appreciate it has gain in-built.

I'm wanting to filter the output signal using a RLC BPF, such as below:

However, as you can see, the output is quite low which is my assumption as to why I can't detect any output signal (using the Arduino or a multimeter).

The output to the filtered signal will be the analogue input to the Arduino.

Thanks again for any help/ advice!

The LM358 isn't suitable for audio, its bandwidth is too limited.

Its also not fully rail-to-rail lacking the ability to drive high above about 3V

The non-inverting circuit you use needs a signal ground at mid-rail, not 0V, and is in fact very sensitive to exact signal ground voltage. A self-biasing circuit like this is going to be less problematic:

This has unity gain at DC, but 23x gain at AC

A properly rail-to-rail (inputs and outputs) opamp designed for audio bandwidth would be ideal.

I suspect because the MAX9814 has a low output level (internally it isn't rail-to-rail).

Also... Your 50 Ohm resistance in the filter is too low for the 9814 or a "regular" op-amp. These things usually like to see at least a 1K load, and 10K is more normal. But higher impedance would require a bigger inductor.

Since you are building op-amp circuits anyway, you can make an active filter with an op-amp and then you don't need an inductor. You can find design resources online or there is an old book called The Active Filter Cookbook. The reference designs will expect bi-polar power supplies, so again you'll have to bias the op-amp if you use a single supply.

1 Like

Are you building this with real components or just doing simulation?
Because for a real circuit, as has been said, the op amp is not suitable for this application unless provided with a dual supply; and resistor values are nonsense.

You may wish to consider having a logarithmic gain function, which you can achieve with back to back diodes across the feedback resisitor.

At audio we avoid inductors as they are bulky, non-linear, prone to pickup hum and expensive, and use opamp active filters. Google "multiple feedback band pass filter". Most opamps are designed for loads of 2k or larger, some can handle 600 ohm loads, but not much lower than that.

50 ohm impedances are an RF thing where coax transmission lines are required.

You can also implement a band pass filter digitally and save components.

1 Like

Yep - I actually did that and got an active RC filter designed. Will build and test shortly.

Thanks a lot for your help, much appreciated.

Understood. Changes being made, will let you know how I get on! Thanks a lot.

After your responses, I managed to create an RC active BPF successfully on a breadboard, with resistors all over 1k. It works as expected and the overall project works.

Thanks again!

Good to hear!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.