Arduino Boards with analog interface for low magnitude analog signals


I need to process low magnitude analog signal (~mirco-volts) and complete the feedback loop in the following way :

Analog Signal coming from my chip (~mirco-volts) -> Instrumentation Amplifier -> Anti-aliasing filter (Low pass filter) -> ADC (~12bit) -> Digital processing (eg in Arduino board) -> DAC (~16bit) with output buffer (this signal goes back to my chip)

  1. Sampling Speed will be between 5KHz and 100Khz.
  2. As I change the sampling frequency, I would like to tune the cut-off frequency of anti-alias filter along with it
  3. As I am processing low magnitude of signal, noise is a concern.

Can someone please suggest me if there is a possibility for some ready-made / already tested solution for this.

Hoping for your prompt response

Thanks and regards

Saurabh Agarwal

I'd look into soundcard chips. It will have an ADC & DAC, some can sample at up to 192kHz, they are usually at least 16-bits, it should have the anti-aliasing filter built-in, and it might even have a microphone preamp.

But, most soundchips are surface mount and not really "hobbist friendly".

You may still need the instrumentation amplifier because "consumer soundcards" are notorious for noisy mic preamps, and they typically only have around 40dB of gain which may not be enough.

You might consider a Raspberry Pi. I believe it has a built-in soundchip or you can plug-in a USB soundcard or a better-quality [u]USB Audio Interface[/u]. With a soundcard/interface you'd have to make sure you have drivers (Linux for the Raspberry?) and you might be limited to standard audio sample rates. The mic input on a pro (or "prosumer") audio interface is low impedance (~1000 Ohms) balanced, so if you need a higher impedance input you might still need some kind of front-end buffer.

You also have to be careful about the specs. Most Windows soundcards will record at 96 or 196kHz and 24-bits, but it's pretty common for the hardware to operate a lower resolution with the driver happily and "secretly" upsampling in the background and there is no warning. I assume Linux drivers offer the same feature for compatibility with any application.

The ADS 1115 has programmable gain. I think you have to look at the single ended example in the ADS 1115 library to see what the choices are.