Hello every one.
I have an idea which needs acquiring a analog signal and the processor board will be Raspberry Pi. Any ideas how it can be done? Any accessories or does it some external circuitry?
Please Advise.
Hello every one.
I have an idea which needs acquiring a analog signal and the processor board will be Raspberry Pi. Any ideas how it can be done? Any accessories or does it some external circuitry?
Please Advise.
Most obvious ways as probably already stated here are:
Gertboard from E14
A/D such as the MCP3008 on the SPI bus
Add an Arduino to the USB and use it's Analog Inputs
Use one of those instrumentation logging devices that connect to USB as long as you have Linux support you should be good!
@John,
Unfortunately neither of these parts will meet Srin's spec:
MCP3008 only 10 bit, Gertboard only 10 bit - but Gertboard is easy to connect to Rpi.
@ Srin, I'm going home now, where I don't do Internet, but I'll see what I can think of and let you know, probably tomorrow. It's likely to be based on ST ARM micro like STM32F3 or 4 series which you can buy on a £10 dev board or just buy chips. You get 12bit ADC, 1Mhz (per ADC, some of the chips have three) sampling rates - can easily do SPI interface to Pi.
MK
your ask regarding sampling speed is quite low, the ADC on both the above boards can run significantly faster than your needs to even though the actual ADC is not at the right number of bits you can over sample to gain that resolution
lockup oversampling ADC to increase resolution on Google. If it does not provide what your looking for then let me know, this will allow the GETBOARD or MCP3008 to meet your needs
the MSP3008 will sample up to 200K samples per second, more than enough
Peter
There is an interesting article on eversampling on Atmel's website - look for
"AVR121: Enhancing ADC resolution by oversampling".
To gain 2 bits of resolution you need guassian noise for dithering and 16x oversampling, so for Srin's 10kHz at 12 bits the 10 bit converter needs to run at 160kHz per channel or 640kHz for 4 - way outside it's spec before even taking account of the fact that oversampling doesn't usuually give you quite the resolution gain you hoped for (because of noise issues) and does nothing for non-linearity as pointed out by Michael Wylie.
If you need 12 bits it's usually better to use a 12 bit or better converter.
The ADS1174 is a nice complete 4 channel 16 bit converter which might do - the package would be no bother for me (64pin, 0.5mm pitch) - some glue logic might be needed to talk to an RPI effectively. The alternative would be a micro with 12 bit convertoers but this still leaves to problem of anti-alaising filters to be dealt with.
I'll go on thinking.
MK
There is an interesting article on eversampling on Atmel's website - look for
"AVR121: Enhancing ADC resolution by oversampling".
To gain 2 bits of resolution you need guassian noise for dithering and 16x oversampling, so for Srin's 10kHz at 12 bits the 10 bit converter needs to run at 160kHz per channel or 640kHz for 4 - way outside it's spec before even taking account of the fact that oversampling doesn't usuually give you quite the resolution gain you hoped for (because of noise issues) and does nothing for non-linearity as pointed out by Michael Wylie.
If you need 12 bits it's usually better to use a 12 bit or better converter.
The ADS1174 is a nice complete 4 channel 16 bit converter which might do - the package would be no bother for me (64pin, 0.5mm pitch) - some glue logic might be needed to talk to an RPI effectively. The alternative would be a micro with 12 bit convertoers but this still leaves to problem of anti-alaising filters to be dealt with.
I'll go on thinking.
MK
Actually, lets be clear about one thing, Over sampling in the mode we are talking about actually requires noise in order to correctly function and does indeed improve the resolution.
Absolute accuracy and none linearity is always a feature of an ADC that can be removed through software calibration if needed, and often even a 16bit ADC is no more accurate than a 10 or 12 bit one, it just has more resolution (Depends on the model of course)
even a one bit ADC can deliver a 16 or more bit solution if there is sufficient noise and you over sample
if the solution is measuring real world sensory data then typically it does not need to run at high sample rates, how quickly does Temp, Humidity, Light Level, Air Pressure etc change, not very fast so almost and ADC can handle it with significant over sampling if needed
If your trying to measure something that has a frequency up in the 10Khz range then you can add a couple of bits by over sampling 16^, and yes the Atmel Article is an excellent one.
Key point, Over Sampling requires Noise and If i remember correctly the article even suggests if your signal is too clean, then deliberately introduce some