0
\$\begingroup\$

I am studying the Arduino ADC.

I learned that the maximum sampling frequency of the Arduino ADC ( e.g. Due) is 1M sample per second.

As the Arduino ADC has only a 12-bit resolution I must use an external ADC with a 16-bit for higher resolution.

What is the maximum rate at which this Arduino can receive the sample signal from the external ADC? How can I find that?

In the case of Arduino's own ADC, it was 1M sample/Sec. But I don't know what can be the sample rate receiving limit for Arduino if it uses an external ADC. My knowledge is basic level so I am not able to understand the datasheet.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ If you don't understand the datasheet, you're never going to be able to get an external ADC to work properly. \$\endgroup\$
    – pjc50
    Commented Jan 26, 2021 at 15:39

3 Answers 3

5
\$\begingroup\$

The first thing to determine the data transfer speed is to find out what digital interface your external ADC actually uses. This is most often SPI or parallel interface.

For SPI, the speed is determined by the speed of the SPI interface on your microcontroller and ADC, whichever is slower.

For parallel, it is determined by the GPIO speed (or parallel interface if you have one) on your microcontroller.

Here's a tip: Do NOT use external ADCs until you are more familiar with the microcontroller and ADCs in general. External ADCs are are often a LOT of work which is why so almost every microcontroller comes with an integrated ADC and why many people use the "crappy" integrated ADC on the microcontroller. You can't achieve proper resolution anyways at 16-bits without some serious custom PCB design; Too much noise, inaccurate voltage references, etc.

\$\endgroup\$
5
\$\begingroup\$

Be aware that the specifications depend upon which particular Arduino board you are referring to.

The usual Atmega328 based Arduino board has a 10-bit ADC and is limited to about 15k samples per second.

It sounds like you are referring to an Arm based board which often to do have 12-bit ADCs that can sample at up to 1Msps.

\$\endgroup\$
1
\$\begingroup\$

This will depend on the way the external ADC communicates, and how fast that data can be transferred. Often, the data rate of the ADC itself will be the limiting factor.

Another option you might consider is oversampling. 256 times oversampling (average 256 datapoints together) will be pretty close to 16 bit resolution with a 12 bit ADC.

\$\endgroup\$
1
  • 2
    \$\begingroup\$ Good to keep in mind that oversampling may increase the resolution of an ADC (in the presence of zero-mean gaussian noise), it does not necessarily increase the accuracy of the ADC. \$\endgroup\$ Commented Jan 26, 2021 at 15:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.