Author Topic: Ways to convert repeating t=50us bw=200MHz frequency sweep to TTL signal.  (Read 983 times)

0 Members and 1 Guest are viewing this topic.

Offline Georgy.MoshkinTopic starter

  • Regular Contributor
  • *
  • Posts: 142
  • Country: hk
  • R&D Engineer
    • Electronic projects, modules and courses on Arduino and STM32
Hello, I am searching for ways to convert frequency sweep signal to TTL signal, preferably with ±0.05us accuracy (or maybe worse, then rethink feasibility of the design).
Input signal changes linearly over time from 1MHz to 200MHz, this process is repeated each 50±3us. Period drifts slowly over time.
I am trying to synchronize with this signal without disassembling enclosure of signal source.
Currently I am thinking of these ways:
1) Using band pass / low pass filter with comparator. I thought to use 8MHz crystal (ltspice attached), but it seems that bandwidth is too narrow. I want to avoid any ladder filters which require matching/tuning parts and non-COTS (commercial off-the-shelf) components. RC filter seems doable (in simulation), but I have not tried it in hardware yet.
2) Using 5MHz ADC with 2MHz low pass filter. Idea is to digitize voltage spike: adcPointsPerSweep=(filterBw)/(signalSlope*adcSampleTime)=2.5 [samples]. Maybe need faster ADC, higher cost. time adcSampleTime will give ±0.2 us time offset.
3) Using PLL chip to lock to this signal, then use voltage output.
4) Using FPGA, different approaches
5) Delaying and self-mixing signal
Would be grateful for any help!

Ltspice file uses 16MHz per 4us for save some time (frequency slope is the same as for 200mhz/50us).

« Last Edit: March 14, 2023, 06:32:37 am by Georgy.Moshkin »
 

Online coromonadalix

  • Super Contributor
  • ***
  • Posts: 5712
  • Country: ca
would be  ice to know the "unknown source" of this signal ??

You ask a lot and dont give much,  and i dont think  EEVBLOG members will provide an complete design ... you will get suggestions only

 

Offline Georgy.MoshkinTopic starter

  • Regular Contributor
  • *
  • Posts: 142
  • Country: hk
  • R&D Engineer
    • Electronic projects, modules and courses on Arduino and STM32
would be  ice to know the "unknown source" of this signal ??

You ask a lot and dont give much,  and i dont think  EEVBLOG members will provide an complete design ... you will get suggestions only
Suggestions only are ok! Signal is perfectly described as linear sinusoidal ramp with 4 Mhz/us slope. For example, signal goes from 0MHz to 96.6MHz in 24.15us. I want to find simplest way to convert period of this frequency sweep to TTL signal, and then feed this TTL signal to input capture pin of my MCU and output meaured 24.15us value on lcd screen. I do not need to measure any other parameters but ramp period. I think that RC low pass with some additional shaping + comparator would do but wanted to hear some opinions of more experienced engineers first.
« Last Edit: March 14, 2023, 08:39:40 am by Georgy.Moshkin »
 

Online MasterT

  • Frequent Contributor
  • **
  • Posts: 777
  • Country: ca
Peak detector, simple diode +RC would works. Comparator is also an option. I think your question is not about how to get an envelope's timing-durition, rather how to measure timing precisely. Well, put a MUX 2 to 1 in front of any detecting circuits you select and inject control calibration signal - to track any deviation of the detector in real time. 
 

Offline Terry Bites

  • Super Contributor
  • ***
  • Posts: 2295
  • Country: gb
  • Recovering Electrical Engineer
I'm thinking FM recievers. The signal goes through a gain stage and limiter (clipper) so it can get to work on measuring the frequency deviation.
Fibre receivers use fast limiters to compress the varying amplitude of the input signal (with low jitter) to a fixed one. eg TIs ONET1151. Now you have a nice squarewave representation of your input.
Chuck in a SN65EPT21 et voila, TTL.  Some log detector amplifiers (massive signal compression) let you get at the signal. eg AD8306
 
In theory you could just use high speed comparator to count out the zero crossings of your ac sweep signal and clock a flipflop from it.
eg ADCMP600, low level noise will cause false trigger events.

The sensible solution is to take courage and get inside the signal source and make a small mod. A buffer hanging off the back of a shiny new bnc.
« Last Edit: March 15, 2023, 11:22:55 am by Terry Bites »
 

Online 2N3055

  • Super Contributor
  • ***
  • Posts: 6298
  • Country: hr
A differential  clipping buffer will  convert signal to square wave...
 

Offline Georgy.MoshkinTopic starter

  • Regular Contributor
  • *
  • Posts: 142
  • Country: hk
  • R&D Engineer
    • Electronic projects, modules and courses on Arduino and STM32
A small update, few weeks ago I used peak detector schematic and found the problem. My schematic was using generic diode model, which did not perform well at high frequencies. I used few Schottky diodes form ltspice models library and it finally worked. Suggestions from this post was also useful.
« Last Edit: May 21, 2023, 02:15:09 pm by Georgy.Moshkin »
 

Offline Terry Bites

  • Super Contributor
  • ***
  • Posts: 2295
  • Country: gb
  • Recovering Electrical Engineer
 
The following users thanked this post: Georgy.Moshkin

Online PCB.Wiz

  • Super Contributor
  • ***
  • Posts: 1416
  • Country: au
Hello, I am searching for ways to convert frequency sweep signal to TTL signal, preferably with ±0.05us accuracy (or maybe worse, then rethink feasibility of the design).
Input signal changes linearly over time from 1MHz to 200MHz, this process is repeated each 50±3us. Period drifts slowly over time.
I am trying to synchronize with this signal without disassembling enclosure of signal source.
...
For example, signal goes from 0MHz to 96.6MHz in 24.15us. I want to find simplest way to convert period of this frequency sweep to TTL signal, and then feed this TTL signal to input capture pin of my MCU and output meaured 24.15us value on lcd screen

0MHz is meangingless for 24.15us repeats ?

So you want to get a lock to the sweep period, which is usually tens of microseconds, and it is a sawtooth sweep  ?

The simplest method would be a monostable, that times-out on the longest period, but re-triggers on the fastest. At the top end, it is guaranteed to re-ttrigger and at the lowest end, it may give multiple pulses.

If the signal is smaller, you need a fast comparator or LVDS-CMOS receiver, but it looks like 74LVC1G123 etc can trigger on as low as 2.5ns pulses, and a ~900ns timeout would catch a 1MHz minimum
A faster counter can be configured as a monostable, if you need this digitally adjustable.
 
 
The following users thanked this post: Georgy.Moshkin


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf