cancel
Showing results for 
Search instead for 
Did you mean: 

3 ADCs and 5Khz sampling frequency, 15 thousand readings per second, for 2 minutes. How to solve it?

Dimi_Island
Associate

Hello,

I have two core boards:

1st: Nucleo-64 with STM32L476RGT6U 64 pins, 1Mb of flash memory and 128 Kbytes of SRAM.

2nd: Nucleo-144 with STM32F429ZIT6U with 144 pins, 2Mb of flash memory and 256+4 Kbytes of SRAM.

I have a little experience only with PIC18F and I am new to STM32 and CUBE IDE, I just took a course on these tools.

I have a project to develop, which involves reading 3 analog readings at a frequency between 5 and 20 Khz, for a period of at least 2 minutes. These readings will be made or more, during the entire process of monitoring a mechanical weld.

So there are 15 thousand readings X 120 seconds = 1,800,000 readings.

1- Can I use one of the core boards, I have to develop this project using ADC with continuous buffer and perhaps DMA together? Is this type of configuration correct?

2- Considering 12 or 16-bit readings, are they capable of storing all this information in RAM during the entire process?

3- If these MCUs are not capable, which other do you recommend for me to test in this application? I am just gathering information to start the project and have not yet defined the MCU.

4- Although it is not the focus of this forum, is there any resource or protocol that I could use to send this information to the cloud at the end of each welding process and create a graph to analyze the information? Could anyone give me a tip on what I could research to use?

Basically, the project needs to read all this information and also read a digital input from an encoder, and at the end of the process, save this information on an SD card or preferably send it to a server or website to create a graph of the various readings made during the process.

5- What is the best way for me to do this?

Thank you very much for your attention dedicated to helping me.

4 REPLIES 4
Dimi_Island
Associate

Hello, 

Can someone please help me with this question?

Thanks

Chris21
Senior

Use a timer to trigger the ADC(s) to operate at the desired rate, with DMA to automatically place the results in SRAM.

"Considering 12 or 16-bit readings, are they capable of storing all this information in RAM during the entire process?"

Well, millions of samples are not going to fit in 260 KB SRAM...

You need to figure out where to put that data in a timely fashion.

 

MasterT
Lead

There only reason to store each sample is to perform high precision audio analysis, but I can't figure out how its apply to welding proces.

So my advice is to do data processing right on uCPU real-time, sample rate is not so high, H7 or F7 can make it, even F4. Than send results where you wish, cloud etc.

 

 

Uwe Bonnes
Principal III

You can dump that data rate via USART or better USB to a PC and store there. If no external dump path is available while aquiring, you need to reduce data or use a device with external RAM, like the F4 discos.