AMP Audio skin ADC low-pass filter?

The official pyboard running MicroPython.
This is the reference design and main target board for MicroPython.
You can buy one at the store.
Target audience: Users with a pyboard.
Post Reply
JudiciaryPag
Posts: 6
Joined: Wed Jul 13, 2016 9:27 pm

AMP Audio skin ADC low-pass filter?

Post by JudiciaryPag » Sat Apr 15, 2017 3:10 pm

Is there any low-pass filtering in front of the ADC either on the pyboard or the AMP Audio skin? I'm sampling at audio rate (6-8kHz) and just wondered whether any low-pass filter exists before the digital sampling?

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: AMP Audio skin ADC low-pass filter?

Post by pythoncoder » Sat Apr 15, 2017 4:01 pm

There is none on the Pyboard. The design of anti-aliasing filter is determined by the sample rate and required bandwidth; also potentially requirements for passband frequency and phase response. So the necessary filter is application dependent.

I've not studied the AMP skin.
Peter Hinch
Index to my micropython libraries.

JudiciaryPag
Posts: 6
Joined: Wed Jul 13, 2016 9:27 pm

Re: AMP Audio skin ADC low-pass filter?

Post by JudiciaryPag » Sat Apr 15, 2017 10:27 pm

Thanks, that's to be suspected I guess - they're general-purpose ADCs and it's up to you to decide how to use it and provide any filtering. I don't have access to the AMP Audio skin design, I just assume that as it's using a _microphone_ that some sort of low-pass filter (maybe as low as 4kHz) is on the board. I'm sampling fine, but am experiencing a lot of high-frequency signal. A also assume the mic is attached to an ADC with some sort of ground shielding.

I'm also seeing a significant DC bias, i.e. noise hovering around 2,700 - 3,000 (in 12-bit mode). Ideally you'd expect to see noise but hovering around mid-point (2,048)? I can compensate in post-processing but it's annoying.

chrismas9
Posts: 152
Joined: Wed Jun 25, 2014 10:07 am

Re: AMP Audio skin ADC low-pass filter?

Post by chrismas9 » Sun Apr 16, 2017 2:56 am

The AMP schematic is available here:

http://docs.micropython.org/en/latest/p ... ware-index

There is limited low pass filtering. The speaker amp has a 3 kHz 1st order LPF. The MIC preamp has a 1st order 16 kHz LPF.

The MIC is AC coupled and then biased to half supply with two 1M resistors. I'm not sure where the offset is coming from. The MAX4466 has low offset voltage and bias current. The MIC preamp is the same as the MAXIM data sheet reference design.

User avatar
pythoncoder
Posts: 5956
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Re: AMP Audio skin ADC low-pass filter?

Post by pythoncoder » Mon Apr 17, 2017 6:10 am

Having now looked at the AMP schematic I agree with @chrismas9: the ADC should be biassed at 1.65V i.e. 2047. To test DC conditions is it possible to fit a link across the P2 position? This would reduce noise. I'd check the voltage on the ADC input. If it's off significantly, check the AMP skin. Perhaps there's some contamination of the PCB causing current leakage into pin 1 or pin 3 of U4. If in doubt I'd clean the board with isopropyl alcohol, dry it thoroughly and try again. Was an incorrect resistor value fitted for R11 or R13?
Peter Hinch
Index to my micropython libraries.

Post Reply