How to: ADC a short pulse with high resolution.

Thread Starter


Joined Dec 17, 2011

I've recently started playing with a Netduino but have virtually no electronics experience before that. Netduino, C#, and i2c has made everything to date pretty easy. Now I want to try something a little trickier -- reading pulses as seen in the graph, below.

The data would come from a strain gauge and I want to capture and log multiple events. I think of the solution as having three phases:

1) Waiting for trigger: The gauge voltage will be zero for relatively long periods of time (e.g. seconds or minutes). When the trigger voltage is noted, the solution moves on to the next phase.

2) Buffer values for 3ms: Since the duration of the event is short, I think the solution would need to sample at about 300,000 samples/second. It would do that for exactly 3ms, collecting 900 samples. If sample resolution is 10 or 12 bits and I want to keep storage simple, this phase would need to buffer 1800 bytes. Once the 900 samples are collected, it moves to the next phase.

3) Write event data: There are several seconds or minutes before the next event (and I can ensure that this will be the case) so there's time to write the buffer out to slower EEPROM storage via i2c. Once the data is written, the solution returns to the initial phase.

So far, I'm thinking that PIC24FJ16GA002 or the mbed LPC11U2x might be reasonable choices for this project. The LPC11U2x seems easier to get into and the data sheet mentions "burst conversion mode for single or multiple inputs". But "burst" doesn't appear again in the 67 page data sheet, so I'm not sure if it's applicable or not.

Any thoughts regarding either of these two choices? Anybody familiar with LPC11U2x burst mode? Any other simpler ideas?