The best and fastest way to read two 200Hz signals with ADC

Everything ARM and LPC

Moderator: phalanx

Post Reply
Posts: 1
Joined: Tue Sep 06, 2016 8:47 am

The best and fastest way to read two 200Hz signals with ADC

Post by Natalia » Tue Sep 06, 2016 8:51 am

I am writing to see if someone can give me a hand with the ADC on my LPC4337
I'm doing a practice in which I have to sample two signals at 200Hz.
I need to sample at least 500 points for each cycle.
Since I know that the LPC4337 ADC have a sampling frequency of 400 KHz I assumed that is possible.
However the maximum speed that achievement, sampling with DMA, ADC0 Channel 2 and ADC1 channel 2, is 33,8kHz. which represents approximately 169 samples per cycle.
(To reach that number, (33,8KHz) I turn on and turn off a exit pin, when finished reading the 2 ADC and I measure it with an oscilloscope)
If I only activated one channel and one ADC, the actual sample frequency is 79.9 KHz. (Which also remains poorly)
all those test was with BURST Mode disabled. If I configurate the ADC in interruption mode instead of DMA, it is slower yet.
Finally I tryed enabling Burst Mode, and remove the DMA and interrupts.
I made a loop and I kept waiting for the data inside a while (1), Channel 2 and Channel 3 ADC0.

Code: Select all

/* Waiting for A/D conversion complete */
while (Chip_ADC_ReadStatus(LPC_ADC0, ADC_CH_SEN, ADC_DR_DONE_STAT) != SET) {}
/* Read ADC value */
Chip_ADC_ReadValue(LPC_ADC0, ADC_CH_SEN, &dataADC0);
Now the frequency is 100KHz approx. almost exactly 500 points per cycle . But as I start to make something, this consume cycles and the frecuency falls, obviously I do not get the amount of points I need.

The ADC is configured with a 400KHz sampling frequency and with 10-bit resolution.
the test were without interfering with the reading of the ADC.
What is the best and fastest way to read the two signals with the ADC?
Is it possible to sample faster than 100KHz?
Is this a limitation?
Are there some extra settings I should do?
I also need to read the two signals simultaneously.
Is this possible?
if I use the Channel 2 on ADC0 and the channel 2 on ADC1,
Are the readings simultaneous ? or sampled first one and then the other.

Any help you can give me I would appreciate it. Sorry for my english.
Thank you so much.

Post Reply