Geration and sensing of very high frequency waveform

But can u tell little bit more about FPGA.
How to use it or can i program this according to my need.?...

There is some good information at this site that has an FPGA/Arduino board for hobbyists. Check out the beginner's guide and tutorials. I'm not recommending the product for purchase, but the information can be helpful and give some ideas.

I began learning software programming with LabVIEW and Xilinx FPGAs ... just recently exploring C++/Arduino.

This device measures the amplitude of your 1Mhz (say - actually it works fine up to 1000Mhz) signal
from the piezo sensor, takes it's logarithm, and outputs a dc voltage . To reject all the unwanted frequencies
I would need a tuned amplifier in front of it - both to select the wanted 1MHz signal ( and reject all the rest - noise, interference etc) and to get the level of your few mV signal into the optimum range of this device.

But if you need high time resolution you have to sample it's output much faster than any arduino will work. So you also need a fast a/d convertor which will convert these values into digital data which can be stored in memory, which is then then read out more slowly to drive a display.

The only bit the arduino can reasonably do is to drive that display. The rest is external hardware.

you don't need FPGA's for this - wonderful gadgets ( I've used them) but not necessary here.

regards

Allan

thank you allen for ur support

may be this RF log detector will help me somewhere in my project.

but actually my problem is not to reject noise and interference with signal. i need something which will convert the analog data to digital and take samples at 1 MHz frequency and store this data into memory.

Hi mandarkothavade............

can you do a detailed design ?

are you able to design and build a PCB? (that's not trivial - it's much more complicated than just connecting point A to point B ) . This stuff can't be done without one.

If the answer to both the above is no, I should forget it.

It's not a simple job. Believe me - I'm retired now after spending 40+ years designing electronics.

regards

Allan.

Hello Allan

initially i have specified that i know very less about electronics. i can do little things such as writting small programs in arduino such as controlling servos, ESCs LCDs, sensors,.....etc . actually learn this from arduino community. and i can design very simple circuits not complex ones. like which involves some resistors, transistors...etc and small simple things not complex ones.

for your info i will tell u that i have designed a simple Hovercraft control system using arduino uno which involve ESCs, Servos, Relay board to control motors, certain control buttons on it and used RF remote control.

i am not expert and that is the reason i come here to take help from others who are experts in this field.

Thank you .

allanhurst:
But if you need high time resolution you have to sample it's output much faster than any arduino will work. So you also need a fast a/d convertor which will convert these values into digital data which can be stored in memory, which is then then read out more slowly to drive a display.

This is actually my problem what hardware should i used to take samples at this much 1MHz frequency.
1 MHz frequency is the rate of sampling. if considered 10 samples per cycle so that i can get fairly good shape of 100 KHz waveforms.

same goes on excitation side if i used 1 MHz frequency to excite waves and used resolution of 10 points per cycle then i will get 100 KHz waveform.

But considering arduino uno i tested that to process one digitalWrite() cammand it requires around 4 microseconds. so 410=40 microsec for one cycle. means 1/(40 10^-6)=25000 Hz. and this is way too much low for my application.

also to read analog voltage analogRead() command requires around 112 micro seconds so 11210=1120 microsec. for one waveform which means 1/(112010^-6)=892.857Hz which is very low.

OK. look up specs on 8-12 bit a/d convertors at 1MHz+ . Lots of people make them. typically 0..5v input range, so you'd need a fast amplifier from your piezo detector to get to this level - and you need a detector, or you're just looking at a variable amplitude 1MHz signal. The arduino won't get anywhere near this. And what's the speed of sound in your sample material? And what resolution in distance do you want to detect? this will tell you the sampling frequency you need.

Now look for memory - 1MHz isn't quick . How many samples do you need to store? do you want to keep records of lots of results or just display them momentarily? SD memory is quick enough and you can get vast ones cheaply.Else static RAM is fast, and you wouldn't need that much - 0.5 seconds is less than 512k which would cover all reflections..

Driving them is another matter.

good luck!

regards

Allan.

1 MHz frequency is the rate of sampling. if considered 10 samples per cycle so that i can get fairly good shape of 100 KHz waveforms.

Only 10 samples is not sufficient to get a good measure of the peak of a waveform.

I did ask if you needed to digitised the whole waveform and not just the peak. You did not say you just needed the peak, so my FPGA advice was based on a 100MHz sample rate. If you only need the peak then you need a peak detector like I origional said.

Thank u Grumpy_Mike

Yes u are right i was thinking on that also. I already started looking for FPGA. But as u said its harder for me.

I was also looking for alternatives. Can anybody tell if any of following boards can perform this task.

Arduino due

OR

Raspberry pi 3 whos cpu runs at 1.2 GHz but has no a/d converters but if i attached fast a/d converter circuits externally.

OR

Or intell galilio which also runs at 400MHz.

Thank u

If you want to sample at 10MHz, you'll need a damn fast (>100MHz) connection to an external ADC. That's why DSP chips include A/D (and D/A) converters, for fast signal processing. They also should have built-in RAM, or a parallel connection to external RAM, sufficient to store at least one sample. General purpose controllers and boards may be fast in number crunching, but are slow in connecting to external devices.

That's why I think that you have to bite the bullet, and use some dedicated signal processor, be FPGA or some other DSP, or a ready made digital scope, that can at least record one sample. Then you can spend time to read the sampled data at any (low) data rate afterwards, and process the samples on any suitable board (RasPi...) or PC.

Or intell galilio which also runs at 400MHz.

That board is a joke. When it comes to input / output is is way slower than a Uno by at least a factor of 10.

The problem with a Pi is that it runs Linux so it is not real time enough to record at a sample rate of 10KHz let alone in the MHz region.

I would agree with the above. Get yourself a Rigola scope and control the measurements and get the readings from your PC. Because this scope along with some others is programmable.

Please anyone suggest any chip FPGA or DSP board which can do the task required in my project sensing and excitation of high frequency waves.

If I were doing the job, I'd use an FPGA to run the tranmsit pulse. 10uS? long ...

then implement an N bit counter running at 1MHz, triggering the a/d reading a log detector. and
writing a/d values on each clock to successive memory locations .. The number of bits and the size of memory depends on how long you want to store the data for . 1/10 second? (17 bits?) This clock starts when the transmit pulse does. You may want to disable the receiver during the pulse to prevent saturation.

Now you've got the datastream in memory.

Now for readout - averaged ? peak ? threshold ? lots of possibilities.,

eg you could have a seperate adder adding say M successive samples in a ring buffer , then dividing by M - this gives an running averaged sample at 1/M the sampling rate.

I'd then use this to run a display.

you could do it all in good 'ole TTL, but FPGA's are lot easier.

Write it in Verilog or VHDL - I'm used to VHDL myself.

Have fun

regards

Allan

I'd certainly second the 'scope approach, at least until you've proved your concept.
I've worked on computed tomography machines, where the early dev work was done with an off-the-shelf LeCroy 'scope capturing to floppy disk, before the custom data acquisition equipment was available.
It also gives you an opportunity to fully spec your eventual hardware, before committing.

Good idea....

LeCroy's are great! ( but not cheap)

A

(I have a Rigol - it's cheap, but adequate - but access to LeCroy and Tek)

Had a look at the speed of sound in various materials - in steel it's 6000m/s

So if you want 1mm resolution I think you'd need a lot higher than 1MHz as both a generator
and a sampling detector.

10MHz at least , I guess. Still feasible.

regards

Allan.

edit : there are suppliers who provide solutions - see OmniScan MX2 Phased Array Flaw Detector

  • much cleverer than anything I had in mind.............