Author Topic: Open Source HW RF Signal Generator  (Read 8563 times)

0 Members and 1 Guest are viewing this topic.

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Open Source HW RF Signal Generator
« on: March 10, 2017, 11:08:33 AM »
I believe many of you guys have followed my attempt to build a spectrum analyzer that ultimately fizzled out because of Feature-Creep and system-complexity that drove cost and development-time up. In the end I bought a R3131A Spectrum Analyzer on ebay and despite it having some quirks, I'm pretty happy with it so far.

That being said, I now still miss one device here: A Signal-Gen capable of producing predictable results at frequencies higher than 6MHz (Cheap DDS-Generators are only good to that frequency, even though they say on the front they're capable of 24MHz).


The specs of this thing (which are FINAL now!) are the following:

- 10kHz to 3GHz Frequency Span (to match my Spectrum Analyzer)
- -120 to +13dBm digital Amplitude control (This does not need to be flat all the way up to 3GHz, I'd be ok with some amplitude-drop above 2GHz)
- Capability of the main Signal-Chain to send the signal out to an external Module and receive the signal from an external Module (This module could add different forms of modulation to the signal)
- Internal TCXO and ability to take an external reference-clock (from a GPSDO, for example)
- Use of Vero-Board where possible (High frequency signal-path is on custom-made PCB)
- Fit inside a 19inch case

To achieve this, my first idea was to use the ADF4351 Synthesizer-Module I bought for the Spectrum-Analyzer project. It works from 35MHz up to 4.4GHz.
For lower frequencies I'm using a DDS-Module based on the AD9851-Chip. I have already built a simple Network-Analyzer with that module and it worked pretty nice.

Unfortunately, the ADF4351 can only produce a square-wave. So I want to use several LC-Filters to form that square into a sine, which are switched in and out by MASWSS0115TR-3000 switches.
There are several difficulties associated with this approach, so I'm open to different ideas, like frequency mixing, if they can produce a better sine-wave.


The next difficulty is to keep the amplitude constant across the frequency-band. For frequencies up to 60MHz, a JFET-Attenuator or even a variable gain OpAmp is the way to go. For frequencies higher than that, a PIN-Diode Attenuator, controlled by an ALC-Circuit, takes care of precise attenuation of the signal that is then sent through a step-attenuator made out of 10 and 15dB Attenuator-Chips by M/A-COM. This Attenuator provides up to 110dB of attenuation in 10dB-Steps.

I hope, this time I'm not running out of  patience and/or time and actually finish this project :)

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #1 on: March 13, 2017, 01:07:25 PM »
Quick update:
Based on the Suggestions in the "ADF4351 Sinewave"-Thread, this is the current block-diagram for the LPF-Switching. You can also see the Automatic level control in this picture

Offline dmills

  • Frequent Contributor
  • **
  • Posts: 743
Re: Open Source HW RF Signal Generator
« Reply #2 on: March 14, 2017, 01:44:48 AM »
Just a thought, but something like an AD9912 clocking at 1GHz will get you near DC to maybe 400MHz sine in one hit, and the 9912 has a convenient fast comparator to turn the sine wave output into a square wave, it also programs over SPI, and has built in chirp and limited AWG functionality....

Then the square waves harmonics can be selected out with a filter to get the higher bands, maybe gets you to a GHz or so in 3 or 4 sets of BPFs. Don't forget that a wide tuning range VCO (Possibly YIG) can be phase locked to the output of the DDS, getting you DDS tuning at GHz speeds. 

Relatively low noise 1GHz VCXO are available from Crystek, and PLL chips for locking to the 10MHz reference are an AD/TI sort of thing, low pass filters are a minicircuits thing if you don't want to roll your own.

I would note that a programmable 140dB attenuator at microwave will be more challenging from a screening and leakage perspective then you would ever think possible, this one part is going to take much experimentation, I would personally build (Or buy surplus) a 0-60dB attenuators and then stock a few 30dB in line pads to screw onto the front, less annoying that way.

Personally, I would buy a second hand unit from someone like HP/R&S and have done with it, life is too short, but that is because I have interests that use such sources, but am not really interested in designing them.

Regards, Dan.
 

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #3 on: March 14, 2017, 09:53:24 AM »
The AD9912 is interesting, but I haven't found a module with it yet (I'm not comfortable with spending 50+€ on a Chip that I'm going to have trouble soldering).
There is a module available with the AD9910 though. Worth a look - Would remove the need of LowPass-Filters at lower frequencies (switching to the ADF4351 at 400MHz would remove at least 2 tuneable Filters and leave only fixed filters. The price-tag of 65€ for all the features it has is ok.

It is definitely is something I'm going to add in the future, but for the moment I'd like to keep expenses down to a minimum.
Which is why I'm going to attempt to build the LowPass-Filters myself (except for the 750MHz one, for which I already have the appropriate MiniCircuits-Part).

Using some old used equipment would be ideal, but unless a unit capable of getting as high as 2GHz drops below 250€, I'll try to make the device myself. :)

Online nctnico

  • Super Contributor
  • ***
  • Posts: 12981
  • Country: nl
    • NCT Developments
Re: Open Source HW RF Signal Generator
« Reply #4 on: March 14, 2017, 01:20:52 PM »
I wouldn't use seperate filters but integrate them on the PCB. You can design the filters using SVC filter designer ( http://www.tonnesoftware.com/svcfilter.html ). For up to -say- 800MHz you can built them using surface mounted 0603 parts. Just make sure each capacitor has 1 or more vias to the ground plane to make the filter work. For >800MHz microstripline filters are the way to go. I have created a program which can convert the component values found by SVC filter designer into an (elliptic) microstripline filter (see http://nctdev.nl/page_pg%3d17.htm ). PM me if you want me to pitch in a license for this project. Either way you can download it and play with it a little. IIRC there is also a Sonnet Lite EM simulator example project bundled in the installer. Sonnet Lite ( http://www.sonnetsoftware.com/products/lite/ ) can be used to simulate microstripline structures in general and may be helpful for this project.
« Last Edit: March 14, 2017, 01:24:45 PM by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 
The following users thanked this post: cdev

Offline radar_macgyver

  • Regular Contributor
  • *
  • Posts: 225
  • Country: us
Re: Open Source HW RF Signal Generator
« Reply #5 on: March 14, 2017, 03:13:44 PM »
There is a module available with the AD9910 though.

The AD9910 has an inherent flaw in that the DAC reference voltage is not brought out to an external pin for bypassing. This means that the thermal noise of the bandgap reference shows up as amplitude modulation. The AD9957 also suffers from this issue.

Consider also the RFFC5071A that integrates a multiband VCO, PFD and a pair of mixers. One could mix the synthesizer output with a filtered DDS output to get both fine tuning steps as well as reduced spurious.
 
The following users thanked this post: kony

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #6 on: March 15, 2017, 12:11:33 PM »
I wouldn't use seperate filters but integrate them on the PCB. You can design the filters using SVC filter designer ( http://www.tonnesoftware.com/svcfilter.html ). For up to -say- 800MHz you can built them using surface mounted 0603 parts. Just make sure each capacitor has 1 or more vias to the ground plane to make the filter work. For >800MHz microstripline filters are the way to go. I have created a program which can convert the component values found by SVC filter designer into an (elliptic) microstripline filter (see http://nctdev.nl/page_pg%3d17.htm ). PM me if you want me to pitch in a license for this project. Either way you can download it and play with it a little. IIRC there is also a Sonnet Lite EM simulator example project bundled in the installer. Sonnet Lite ( http://www.sonnetsoftware.com/products/lite/ ) can be used to simulate microstripline structures in general and may be helpful for this project.

I already have the programs from Tonne Software (SVC-Filter, Helicall, Elsie) and Sonnet Lite and played with those programs a little to make Filters for the spectrum-analyzer project, but I didn't know about your program. Thanks! It will surely come in handy here! The stripline-filters I have calculated so far were done by hand, using the script of a lecture I found online :)

There is a module available with the AD9910 though.

The AD9910 has an inherent flaw in that the DAC reference voltage is not brought out to an external pin for bypassing. This means that the thermal noise of the bandgap reference shows up as amplitude modulation. The AD9957 also suffers from this issue.

Consider also the RFFC5071A that integrates a multiband VCO, PFD and a pair of mixers. One could mix the synthesizer output with a filtered DDS output to get both fine tuning steps as well as reduced spurious.

Thanks for pointing that out.
Would you say that a simple differential to single ended converter is able to remove this thermal noise from the signal? I have a few GHz-Capable OpAmps here that could be used for that purpose.

Offline radar_macgyver

  • Regular Contributor
  • *
  • Posts: 225
  • Country: us
Re: Open Source HW RF Signal Generator
« Reply #7 on: March 15, 2017, 02:18:44 PM »
Thanks for pointing that out.
Would you say that a simple differential to single ended converter is able to remove this thermal noise from the signal? I have a few GHz-Capable OpAmps here that could be used for that purpose.

Nope, the thermal noise amplitude modulates any tone that the DDS will output, so the only way out would be to have the DDS only generate a single tone, and apply a very narrow band filter around that tone. Having said this, the noise level is quite low, and you'd need a fairly decent spectrum analyzer to even measure it.
 

Offline dmills

  • Frequent Contributor
  • **
  • Posts: 743
Re: Open Source HW RF Signal Generator
« Reply #8 on: March 16, 2017, 02:33:11 AM »
Martin PA3AKE did the definitive work on this, it is an issue (due to reciprocal mixing) if used in the LO of an extreme performance receiver, but general lab sources are just nout usually that quiet.

Me and Martin did experiment with measuring the current flowing thru the centre tap of the output transformer (Which has nose correlated with the am noise) and feeding it back into the reference pin, but had horrific stability issues with that loop, which is unfortunate as close in it did work. It is possible that some more analysis by someone better at control theory could skin this, I will have to have a look to see if I still have the measured transfer function.

It is possible that something feed forward based with a pin doide could work, but we wanted something that did not require trimming.   

73 Dan.
 
The following users thanked this post: radar_macgyver

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #9 on: March 16, 2017, 06:40:05 AM »
The Article PA3AKE wrote about the AD9910 (it is this one, right?: https://martein.home.xs4all.nl/pa3ake/hmode/dds_ad9910_amnoise.html) was interesting to read, but I'm not aiming that high in terms of performance, so a little AM-noise is no problem for me at the moment.

At the moment I'm redesigning the RF-Module, where the signals from the different modules are being combined, in Circuit Maker to incorporate the suggestions you guys made.
Would you say that the board needs to have ENIG-Finish if I put the Microstrip-Filters on it, or is HASL enough?

Online nctnico

  • Super Contributor
  • ***
  • Posts: 12981
  • Country: nl
    • NCT Developments
Re: Open Source HW RF Signal Generator
« Reply #10 on: March 16, 2017, 08:25:46 AM »
If you keep the filters under a layer of solder mask ENIG or HASL doesn't matter. BTW you can simulate the solder mask as well in Sonnet but I doubt it will have a noticable effect. The errors due to differences in the trace widths due to etching tolerances will be much bigger.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #11 on: March 25, 2017, 04:53:45 AM »
Small Update (had to do University-Stuff this week):

I'm going to use the AD9910-Module from ebay as the Signal-Source up to 400MHz. Tests will reveal how the second harmonic behaves and if it can be used. Otherwise I'll have to use the AD4351 from 400MHz instead of 800 and need to include one additional filter.

Also I'm ditching the self-made Attenuator, because there's a bunch available on ebay that cover DC to 2.4GHz and 0 to 95dB and are 5V TTL-Compatible. They sell for about 35€ plus 5€ shipping. I doubt my attempt to build one will provide the same performance and it'll probably cost about the same (components and Board-Space).


Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #12 on: April 03, 2017, 07:54:37 AM »
Apparently, someone had the same idea I had (sort of): http://www.darc-husum.de/Frequenzsynthesizer.html
The website is in german, so short summary: It details a signal-generator that uses the ADF4351 as the frequency-generator and an Arduino Nano as the control-processor.
More or less what my project is about, but with fewer features.

Btw. It seems like the prices for these attenuators on ebay have jumped a bit since I mentioned them here - Coincidence? :D

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #13 on: April 06, 2017, 05:56:56 AM »
While reading about how to filter the signal from the ADF4351 I came across a circuit that involves a differential pair to smooth a triangle wave.

Does anyone here have some experience with that kind of circuit, or is it completely out of it's comfort zone at GHz-Frequencies? I found some NPN-Arrays with Ft of 10Ghz for 65 cents on Digikey (BFU520YX), which might be able to work in this application from a first glance-standpoint.


In the area of the software, I have started to write the code for the device. I'm targeting the ESP8266 as the processor and the NodeMCU V3 as the breakout-board.
The reasons for that: It offers USB, 3.3V outputs (no need for voltage-dividers or level-shifters on the SPI-Lines), has much more processing-power than an Arduino (useful to use the modulation-capabilities of the AD9910) and on top of that it has a WLAN-Transceiver - Everything is better with WiFi :D

As far as the RF-Board is concerned, I've started to do a preliminary layout to see where everything could go. And I've decided to kick everything off the board except local power-supplies and the RF-Path. All the control-logic will be placed on Veroboard and connected to the RF-Board via ribbon-cable or board-to-board interconnects. This should make it possible to make a really small RF-Board and make 4 Layer-Construction possible without spending too much money :)

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #14 on: April 08, 2017, 07:30:28 AM »
Today I managed to get the ADF4351 module working.
It needs about 140mA of current, which was too much for the small voltage-regulator on the NodeMCU V3-Board, but once that problem was solved, I captured several screens of my spectrum analyzer.

I also realized that I don't need a 4-Way switch for the LPFs:
Once the frequency exceeds 1.5 GHz it is outside my zone of interest and any signal-component higher than 3 GHz is going to be attenuated by the output-amplifier anyway.
Also the first harmonic of a 400MHz-Signal is already pretty weak, so I might even be able to use the PLP750+ in the 400 to 800 MHz-Band to achieve the desired suppression of harmonics. I will test that tomorrow.

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #15 on: April 11, 2017, 08:55:07 AM »
Today the AD9910-Module arrived. It comes on a nice board with spacers and screws, as well as SMA-Connectors populated.

I haven't played around with the module yet, but a complete read of the datasheet showed me that this chip is POWERFUL! With some tricks, as mentioned here before, it is even capable of doing Arbitrary Waveforms with 1k-Points. Nice!
I've also decided to connect the module at a point in the signal-chain where its signal isn't processed by the PIN-Attenuator and use the internal capabilities for amplitude control.

Now the only thing left is the attenuator, which I managed to get on ebay for a modest price. :)
Once it is here, I'll start building the signal-gen with the control-board. I'm still planning to use the ESP8266, but I'm getting a lot of compiler-errors when I try to use the GFX-Library from Adafruit. With arduino or teensy-boards, there's no problem. I guess this is because the library has been optimized by Adafruit to give better performance.

I also haven't been able to find a library for the AD9910, so I'll have to do the subroutines to program the chip myself. Inconvenient, but using only libaries and very little original code feels a bit like cheating :D

I'm also still investigating the idea of using a slightly overdriven long tailed pair as a sine-shaper. Googling this led me to some patents, the most recent one was from 2004, granted to Philips, who were using that technique in their PM5193 0.1mHz - 50 MHz Synthesizer back in the 80s and 90s.
They used a transistor-array chip with 3 of the 5 transistors employed as a heater/temperature-control circuit and 2 as the active components in a long tailed pair. The temperature-control was used to heat the chip to 80 - 85°C to keep the operating-point of the transistors constant to smoothly clip only the tops of a triangle wave (and judging by the spectrum I saw from the ADF4351, it is putting out a triangle-wave), which was adjusted with a pot to give the best THD.

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 78
  • Country: cz
Re: Open Source HW RF Signal Generator
« Reply #16 on: April 11, 2017, 09:56:41 PM »
Hello,
seems like a nice project!
Would you consider extending LF range? Might be usefull if used as a part of VNA/SA.
 

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #17 on: April 12, 2017, 03:10:00 AM »
Lower frequencies are possible. I wouldn't go too low though, because the DC-Block caps need to get bigger and bigger to pass the signal, which decreases their performance at high frequencies.
The best way would probably be a relay-switched secondary signal path that covers audio-frequencies up to a few MHz. The AD9910 is certainly capable of generating these signals.


By the way, today the Attenuator arrived, which means that I now have all the big modules available to start building the device.
Unfortunately, I cannot find any datasheet for the Attenuator and from what is shown on the device, it isn't clear how to connect it.
I suspect "G" stands for Ground and VC for Vcc, but what does VE and LE mean in that context? LE might be something like "Latch" or "Load", if this Attenuator is supposed to be connected to a bus.
Is there some kind of standard for these things? Or does anyone have seen these Attenuators before?

Offline Pitrsek

  • Regular Contributor
  • *
  • Posts: 78
  • Country: cz
Re: Open Source HW RF Signal Generator
« Reply #18 on: April 12, 2017, 04:05:14 AM »
My guess:
LE - latch enable
VC,VE - bipolar power supply

But I think you should take it apart, you know, just to make sure  :popcorn:
 

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #19 on: April 12, 2017, 06:57:19 AM »
Okay, I have disassembled the Attenuator.
It contains a Philips Semiconductor (so it is a bit older^^) 74HCT563 Octal Non-Inverting Latch, and 2 MaCom AT90-1106 50dB Attenuators.
VE isn't connected to anything, only VC. LE is Latch Enable, which is Active HIGH.

So pretty straight forward: +5V to VC, TTL-Level to the other pins, GND to G.

Datasheets:
74HCT563: http://pdf.datasheetcatalog.com/datasheet/SGSThomsonMicroelectronics/mXsqssx.pdf
MaCom AT90-1106: http://pdf.datasheetcatalog.com/datasheet/macom/AT90-1106-TB.pdf
 
The following users thanked this post: Pitrsek

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #20 on: September 02, 2017, 11:25:23 AM »
I've finally found some time to work on this project again.

Unfortunately, there's still no library available for the AD9910, so I had to write my own code to control that beast.
I've tried to write it in a way that it is easy to read, so there's probably A LOT of room to improve speed or memory-use (see attached file).

I've exposed every bit of the 3 Config-Registers as global variables (I haven't looked into how to write a proper Library yet) and included a function to calculate the CFR-Registers, as well as the frequency tuning word.
« Last Edit: September 02, 2017, 07:27:15 PM by SaabFAN »
 

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #21 on: September 03, 2017, 02:33:42 PM »
I used the time today to finish (well, almost - First Version :) ) of the analog board.

I have opted for only 3 filters, of which one is always active: The 3GHz LPF. A 1.5GHz and a 750MHz LPF can be selected.

To have all the functions regarding modulation and stuff from the AD9910 available, this module is being connected directly to the output-amplifier via a RF-Switch and can be selected.

Attached are quick screenshots of the board and the schematic. Tomorrow I'll upload better ones :)

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #22 on: September 04, 2017, 02:36:45 AM »
As promised, here are the better screenshots.

I've redesigned the board to make it a bit more compact and used a 4-Layer board this time. MUCH EASIER than trying to route everything on 2-Layer.
Unfortunately, I had to use 4mil traces in the microstrip-filters, which means I have to use EasyEDA or any other board manufacturer that is capable to go below 6mil and has a 4Layer-Stackup with 0.18mm thick dielectric between Layer 1 and the GND-Plane on Layer 2.

Obviously, I haven't added any ground-vias yet. That will be the last step, as I haven't found a function in Circuit Maker yet that does this automatically. I'm also going to include some soldermask-cutouts to solder shields to the board.

Is this a good layout for signals up to 3GHz?
Btw. I'm pretty confident in the schematic, but before I spend 50€ on some board, could you guys check if I have made some mistake that would render the boards useless? :)

Online SaabFAN

  • Frequent Contributor
  • **
  • Posts: 543
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #23 on: September 06, 2017, 05:09:14 AM »
Well, damn! EasyEDA does say that they support 3,5mil, but actually using structures smaller than 6mil causes cost to go up. Quite significantly.
So I'm back to using 6mil as the smallest structure.

Also an inquiry at EasyEDA about the dielectric constant didn't yield conclusive details. They told me they use 7628 for 4-Layer boards and 2116 for the 6-Layer ones. Their Core-Material has 4.2, according to the datasheet they provide.
The question now: Is the dielectric constant dependent on the type of Prepreg, or the type of Resin? If the latter is the case, it should be the same for all layers.
Also if the latter is the case, how can I measure Dk with boards I already have here? Or should I just assume the rule-of-thumb value for FR-4, which is about 4.35, according to Wikipedia.

Online pigrew

  • Regular Contributor
  • *
  • Posts: 229
  • Country: us
Re: Open Source HW RF Signal Generator
« Reply #24 on: September 06, 2017, 07:34:34 AM »
The dielectric constant is a function of not only the resin, prepreg, but also of frequency, solder mask, humidity, everything.... For less than 1 GHz, just guess it is around 4.2.

 You also should think about the loss of the material (also versus frequency).

You'd want to to use a network analyzer to measure a thru line on the board (usually as part of a coupon). Best case would be multiple thru lines of different lengths.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf