I have an audio signal made by PIC microcontroller using 20KHz PWM (It passes through a low-pass filter). It is very clear on an 8ohm speaker. But when I connect the output to the MIC inputs of SIM800 module, It has a very bad quality on a phone call and can not understood at all. I connected audio output directly and through a 100nF ceramic capacitor, but in both cases the audio was very bad. How should I connect audio output to MIC input of SIM800.


simulate this circuit – Schematic created using CircuitLab
I already have seen that output of ISDxxxx (audio recorder and playback IC) is connected to MICP pin of a SIM900 just through a capacitor in a firewall system and the audio quality was very good.

  • \$\begingroup\$ What do you mean when you say the quality is good or bad? \$\endgroup\$ – Matt Young Aug 21 '16 at 14:23
  • \$\begingroup\$ Have you calculated the cutoff frequency of you low-pass filter? Remember that your use of a speaker will also change the frequency response characteristics, so that is not a good judge of the audio quality. \$\endgroup\$ – user2943160 Aug 21 '16 at 14:27
  • \$\begingroup\$ PWM outputs are very nasty with the spurious components at the frame rate and its multiples stronger than the desired signal. These could easily wreak havoc with an ADC and so will require a lot more filtering than one of those analog EEPROM chips. But even with a clean output, keep in mind that GSM voice coding is designed for speech, not artificial sounds and can cause problems with things like DTMF tones (so those are typically sent as data to be be synthesized into tones on the far end) \$\endgroup\$ – Chris Stratton Aug 21 '16 at 15:46

The SIM800 has a microphone input. The signal you are getting from the microcontroller will be at too high a level for that input.

The SIM800 expects an electret microphone, so maybe 100mV signal level.

You need to lower the output level from the PIC-PWM.

The following circuit provides a lower cutoff (3KHz instead of the 4.8kHz from your circuit) and about 20dB of attenuation.

Change the attenuation by changing R3. A higher value gives less attenuation (louder signal) while a smaller value gives more attenuation (less loud.)

Your original circuit has its cut off too high, and provides a much too strong signal for the input of the SIM800.

The values for R2 and R3 are approximations. You may need to lower R2 and increase R3.

If the volume on the receive side is too low, then you need to increase R3. If it is too loud (and/or distorted) then you need to make R3 smaller.

If you make R2 too small, it will begin to change the cutoff of the filter. Try to keep it as high above R1 as possible.


simulate this circuit – Schematic created using CircuitLab

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.