Hi there,
We are using the TMS320F28075 in our system for medical applications.
In our system we trigger with 40kHz SOC from all our ADC channels. The EOC triggers the ADCA1 interrupt which has the highest interrupt priority. Within this interrupt current control is implemented. At the moment we are reading the results of the registers from the ADC every time we enter the ADCA1 ISR. We are using ADCA/ADCB and use for each 7 channels.
For further improvements we are thinking about implementing the DMA controller instead we are reading the register in every ISR. Ideally, we do not have to read and validate our ADC results using DMA. But the problem we see, is that for validating we need to get the DMA_CHx interrupt which have a lower priority and therefore will slow down the system completely. That would be a killer. Another option would be using the Channel1 from DMA and keep transferring the ADC results into a destination address range and use the values without checking it. Therefore, we just trust that the DMA is faster than the CPU. I mean, thats not great, too.
Is our idea even feasible ? We are quite unsure and also surprised, since the DMA channel1 is supposed to be ideal for ADC applications. We are not the first ones, who face this problem :-)
Secondly, is it possible to transfer data using DMA from ADCA/ADCB into a destination range which is aligned? That should be possible using the burst, wrap and transfer sizes and step?
Thank you and best regards
Robert