2024-01-11 04:39 PM
Hi,
Is it possible to have a single ADC result transferred to two different memory locations using DMA without CPU intervention?
Specifically I want DMA to take a single reading from an ADC, transfer it to one location on the STM32H747 CM4 and another location on the STM32H747 CM7.
Thanks!
2024-01-11 05:13 PM
Not really, at least not directly. You can't select the same trigger for multiple DMAMUX channels.
But you could run something at the same time and use that as a trigger proxy. Like running ADC2 in lock-step with ADC1 and using the ADC2 trigger to move ADC1 data.
2024-01-13 10:00 AM
Really all I want to do is be able to buffer data from a single ADC input in memory and do some math on each sample in real time. Ideally I'd have the CM7 receive the buffered data through DMA and the CM4 does the math on each sample in real time -- off of the EOC flag.
Is it possible to have 2 ADCs convert the same pins at the same time without ill-effect? For example CM7 samples from ADC3 and CM4 samples with ADC1 off of the same timer output? If so, my problem is solved.
2024-01-13 11:06 AM
I doubt it. But again, you can achieve the same effect by having ADC2 convert a dummy channel as outlined in my last post. That gets you the functionality you need. Store it in a buffer location that both cores can access, which is most memory.