2025-11-29 9:32 AM
Hello, I've to receive three continuous signals from the channels like x,y and z through ADC's. For receiving those three channels i used 3 separate ADC's like ADC1,2 and 3 for X,Y and Z respectively. The X data is coming at the rate of 8.2ms But the Y and Z data's are coming at the rate of 16.02micro seconds. By using three different adc's for receiving these values and how can i store it in a DMA Buffer. By the way i tried so many methods like TRGO Timer interrupt for every 3.2micro seconds to trigger the ADC to sample and store the data. First i tried by taking only one adc and connected the Y signal, even though so many samples were missing in between. Assume like i've to receive 0-4096 kind of data's. But i'm receiving like 512,514,517,912,978,946,1233,1242,1256... This is the format i'm reading the data from my DMA buffer from live expressions option.
In ADC Configurations, I've tried with enabling the Continuous mode by setting it as enabled and disable. The data is not coming in a right manner. Or else gimme an idea:
I'm using two STM boards.
Board-1 sends data for three channels (X, Y, Z) in the range 0–512 using loops.
Board-2 needs to receive this data at the same time.
How can I synchronize both boards so that when Board-1 starts sending, Board-2 is ready to read the values?
I need ideas or solutions for this.
2025-11-29 5:04 PM - edited 2025-11-30 8:32 AM
My recommendation - use one adc in dma mode and sample 3 channels after a timer trigger every 8.2 ms. The time difference between X , Y and Z samples should be insignificant.
Apologies - I misread the "microseconds".
Which boards are you using?
Does your board provide ADCs with multi-mode conversion? That is, the ability to trigger conversion on two or three ADCs simultaneously or in a one immediately after the other sequence? For example, the F4 can convert all 3 ADCs at once or in sequence to a buffer, which makes it easy to coordinate the X Y and Z sequence.
For synchronizing I suggest as a first method, use a GPIO from Board 1 to Board 2 to start Board 2 conversion, when Board 2 finishes, send a GPIO signal back. By monitoring the return timing you should be able to tell if everything is happening fast enough.