I would like to kindly ask if Raspberry Pi 3 can receive an analog signal directly without using an external ADC? and if I do need an external ADC, what is the best ADC that can I use to have the highest data transfer rate up to 1MSamble/Sec
-
What is best? Maxim alone has 469 ADCs for <5 Msps. What's best really depends on your application.– Ghanima ♦Commented Jul 17, 2016 at 21:39
-
Even at 6 bits of resolution, that's 6 Mbps -- as joan implies, the only possibility for doing this on the Pi would be via USB, so that's a further qualification.– goldilocks ♦Commented Jul 17, 2016 at 21:50
-
ADC also has the concept of resolution ... for example, I have commonly seen 8 bit, 10bit and 12bit resolution. The resolution will likely dictate your choice of ADC choice. I think it would also be helpful to understand what it is you are sampling and the frequency with which you need to sample.– KolbanCommented Jul 17, 2016 at 22:16
2 Answers
The Raspberry Pi has no analogue GPIO.
Therefore you need to buy an ADC.
You need to research the best ADC for yourself but I find it unlikely you will manage 1 Msps on the Pi.
As per previous answers, RPi's do not have an ADC. There are a number of ways that it can be done, but they all involve an external module or add-on circuit of some kind. What needs to be implemented depends on what you want to measure. For example, if it is for a weather station, you ony need one sample per minute rather than several per second. Common sense needs to prevail.
One effect that needs to be considered for A to D conversion is what is called "aliasing". This is where the sample rate is too low to accurately represent the signal because the signal changes in between samples. As a general rule, the sample rate needs to be at least twice the signal rate, and ideally up to 10 times the signal rate to be accurate. For example, to measure a 50Hz mains power waveform, you need to measure at a minimum of 100 times per second (which will look almost like a square wave), but to accurately represent it needs 500 samples per second. An audio signal with 16KHz tones will require at least 32KHz sample rate etc.
So the question is - what are you sampling? If you truly require this sort of sample rather, it is beyond the normal abilities of the RPi.