I've built a circuit using an ISD4003 ChipCorder, which is an IC for recording and playback of audio (in a telephone answering machine, for example). I've written code to send the SPI commands to record and playback audio. The problem is that whenever I command the ChipCorder into record mode, I get loud low frequency noise recorded over top of my voice. The noise only exists while the ChipCorder is in record mode. The noise is less than 200 Hz with a dominant frequency of 40 Hz. (It sounds like a cross between a buzzing bee and flatulence.)
This is an excerpt of my circuit schematic. That's an electret mic going through a high pass filter and a preamp before the AUDIO_IN signal goes into the ChipCorder.
I know the noise is generated by the ChipCorder because the noise only occurs while the ChipCorder is recording. I believe the noise is going over the power lines and being picked up by both the mic and preamp. If I power the mic and preamp with a separate power supply then the recording is clean with no noise. But that was just a test, not a solution.
I changed the corner frequency of the high pass filter to 300 Hz to try to filter the noise but that wasn't enough. I even tried adding another first order high pass filter after the preamp (not shown on schematic) and that still wasn't near enough. I also tried adding more bypass capacitors (100 uF and 220 uF) in various places but that didn't help.
What else can I do to prevent the low frequency noise generated by the ChipCorder from affecting the mic and preamp?
Also, I'm testing this circuit on a solderless breadboard. Is it possible that moving to a PCB with a proper layout, ground plane, etc. will have a dramatic affect on this noise issue? I'd rather fix it on the breadboard before moving on to a PCB.