Re: ADC Help

On a sunny day (Sun, 20 Jan 2008 16:19:10 +0000) it happened Baron wrote in :

Hi Guys, >I want to measure the peak amplitude and duration of a non repetitive >signal from a transducer. Ideally as a pair of numbers on a four digit >LCD display. >Looking at the signal on a scope gets me around 500mv pp maximum and a >frequency of 5.500 Khz lasting for five or six cycles. >Looking at specs for various ADC's suggests that I would need to have a >sample rate of twice the maximum expected frequency or around 10ksp. >Something to do with "Shannon Nyquist"! >Since I want to measure the signal duration I would need to be able to >trigger the start of sampling and store the result. I have no idea how >to obtain a trigger signal.

Have the ADC run continuously, and software compare the output to your trigger level. Once you find 'trigger' then keep the part just before to just after.

Some sort of ringbuffer and some micro with some ADC could work. You need RAM.

Is that 5.5 kHz? Then you can use a PC with soundcard, and record the wave. Looking at the recorded wave file with a sound editor will give you all the info you want.

Reply to
Jan Panteltje
Loading thread data ...

Hi Jan,

Would that work with a non repetitive signal of varying amplitude ?

The sound card suggestion is a good one. It would be better than my old analog scope since I could capture a number of examples and compare them.

Thanks for that. It would never have occurred to me.

--
Best Regards:
                     Baron.
Reply to
Baron

On a sunny day (Sun, 20 Jan 2008 18:42:36 +0000) it happened Baron wrote in :

Sure, say if the ADC runs from unsigned 0 to 255 (8 bits), and 127 decimal is about the 'zero' (neg numbers have MSB set), then you can do something like check if the signal is lower then say 120, and, if so, consider that 'trigger'. It depends on noise levels etc where you want to slice. If you slice at 70 then only a much bigger signal will be considered trigger. And you can slice for the negative part too, of course, so you do not miss a signal that starts with a negative transition. For example:

. -- 255 . . . .--------------------- 156 trigger level . . . -- 127 zero signal level . . ---------- 100 trigger level . . . -- 0 loop:

level = read_adc();

trigger = 0; if( level < 100) trigger = 1; // detect any positive fluctuation if( level > 156) trigger = 1; // detect any negative fluctuation if(trigger) process_it_all();

goto loop

Reply to
Jan Panteltje

I see! That bit makes sense to me now!

--
Best Regards:
                     Baron.
Reply to
Baron

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.