DMA transaction (ADC-->Memory) with AmuxHW switch

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

I'd like to make DMA transfer 2 data from SAR ADC to Memory as switching AmuxHW, but the output of DAC was mixed signal of 2 data (reference to attached picture:Blue= SIG1, Yellow=SIG2, Green=output of DAC). 

   

Digital delay circuit was referenced to CE95299 (http://www.cypress.com/documentation/code-examples/ce95299-delta-sigma-adc-using-16-multiplexed-sing...). 

0 Likes
11 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

This is not enough: Can you please post your complete project so that we all can have a look at all of your settings. To do so, use
Creator->File->Create Workspace Bundle (minimal)
and attach the resulting file.

   

 

   

Bob

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Im so sorry...

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

You ought to use the eos signal to switch your MUX to the next channel. Look in ADC datasheet for "eos" to get an explanation.

   

You could save some resources (edge detector logic) when using the "pulse" option of the control register.

   

You do a GetResult() but you do not know which channel was converted nor do you wait for a conversion ready.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Thank you for your kindness, Bob.

   

I intended to  distinguish 2 data by setting 2 TD chains of one DMA. How can I intake multiple data as fast as possible by a ADC? I thought continuous HW trigger with using ADC and AMuxHw is best, but I couldn't understand how to distinguish multiple data in CPU. 

   

Daisuke Kusakari

0 Likes
Anonymous
Not applicable

ADC SAR Seq is a bit slow....

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

ADC SAR Seq is a bit slow.... No, it is the very same. Data is stored internally into an array. Your main problem will be: What are you going to do with the data, sending over any communication interface will take too much time, even when you use SPI. Retrieving the data directly (no DMA) would just work, but what are you going to do with it.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

I'll do PID control, so it's necessary to calculate from these data in CPU. I have to decrease time it takes 1 For loop to increase sampling speed, and it found out data intake time of ADC was dominant.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

What kind of application makes it necessary to control a PID in µs range? I thought even for flight control ms range would be quite sufficient.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

MEMS actuator.  Is there any idea to intake multiple (5~6) data less than 30 us, please?

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

You need to estimate the amount of instructions you can execute within 30µs and how many instructions you need to process the incoming data with your algorithms (Madgwick?). I can assure you it is looking a bit tight 😉

   

 

   

Bob

0 Likes
Anonymous
Not applicable

I could make 6 data intake earlier about 5 us using 2 ADC SAR Seq (CLOCK 18Hz) with DMA. Thank you very much.

0 Likes