1

I am now working on a project, which needs a cheap analog acquisition device with a sampling rate of no less than 5MHz. Before, I only used Arduino, and rarely operated the registers on Arduino. I hope to use Arduino due to complete it. I spent a lot of time researching and querying solutions, but it didn't succeed. I hope someone can help me.

3
  • Or is there any other solution?
    – gailulun
    Mar 27 at 14:16
  • To help us come up with a possible solution, please tell us exactly what you are trying to do. Why 5 MHz? That's rather a lot. How many bits of resolution? Also, at that sample rate you will be getting a flood of data; what will you do with it?
    – Boggyman
    Mar 28 at 12:41
  • I want to collect the pulse signal of the scintillator detector. The duration of this pulse is less than 1 us. In order to maintain the accuracy, the sampling rate must be higher than 5 MHz. The more data bits, the better. I will temporarily store the obtained data in Arduino, stop sampling after accumulating a certain amount, and then start analysis. After the analysis, I will discard the sampling data.
    – gailulun
    Mar 28 at 14:08
2

I haven't used the Due, but I understand its ADC is rated for 1 MHz sampling. If that's its absolute limit then you can't expect 5 MHz. However, judging by the Unos which I have used, you may be able to push things by limiting the number of bits. This gives a speed boost two ways, by shortening the time the ADC uses to acquire the data, and if you limit to 8 bits you have half as many bytes to move into memory.

Do not try to use more than one channel, since then you have multiplexer delays as well.

Also, you may want to skip interrupts and just sample in a tight loop. Using this loop trick doubles the useful ADC rate of the Uno, from 50 kHz to over 100 kHz. (You'll need to figure out the actual sample rate by reading the timer before and after the loop, then divide by the loop size and take the reciprocal.)

1
  • Thank you very much for your reply. After your reminding, I have turned off my interrupt. It's really effective, but it's still far from enough. I think 12 digits are offline to ensure accuracy.,so It seems that I may have to find another way.
    – gailulun
    Mar 29 at 15:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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