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

0 Members and 1 Guest are viewing this topic.

Offline chrisl

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Open Source HW RF Signal Generator
« Reply #25 on: September 06, 2017, 08:34:39 am »
A couple of quick comments:

Looks like all the RF switches  have DC block caps at the GND pin (2).  You want to ground this pin directly to the board GND.

Do not expect that the fab house can control and hold the tight tolerance on the DK and 4 mil trace width - especially the low coast PCB houses.
Simulate your filter design to make sure that your design can tolerate +/- 10 to 20% of variation.
It would be much easier and cleaner to use SMT filters at 1.5 and 3 GHz.

 

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #26 on: September 08, 2017, 04:23:18 pm »
A couple of quick comments:

Looks like all the RF switches  have DC block caps at the GND pin (2).  You want to ground this pin directly to the board GND.

Do not expect that the fab house can control and hold the tight tolerance on the DK and 4 mil trace width - especially the low coast PCB houses.
Simulate your filter design to make sure that your design can tolerate +/- 10 to 20% of variation.
It would be much easier and cleaner to use SMT filters at 1.5 and 3 GHz.

Yes, they do have DC Blocks at the GND-Pin. The reason behind this: I've used some attenuators from MaCom in a previous design that required exactly that: DC Blocks at the GND-Pin if driven by only positive voltages.
To avoid having to respin the board if that's the case with these switches too, I've but the DC Blocks in there. If they work without those caps, I'll replace them with 0Ohm Resistors or solder-blobs.

I'm currently using 6mil traces, as that's the smallest ShenZhen2U or EasyEDA can manufacture without massive cost increase.
SMT-Filter available from digikey unfortunately don't really have the features I require. There are filters available that could replace the 3GHz Filter, but a Filter for 1.5GHz isn't really available.

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #27 on: September 10, 2017, 12:23:14 am »
I've just finished the controller-board. I don't have a block-diagram yet, but it is pretty straight forward:
A NodeMCU-Board with an ESP-12E contains the micro, as well as the 3.3V-Converter and the USB-Connection.
Attached to that are 3 PCF8574. One for the Keyboard (Address 0x21), One for the ChipSelect-Signals for the ADF4351 and AD9910, as well as two Interrupt-Inputs - one for the Keyboard, one for the Touch-Controller (Address 0x22), and One PCF8574 for the Attenuator-Control (Address 0x20).
Because the Attenuator requires 5V TTL-Levels, I've added what I had in my parts-drawers to do the level shifting: 74HCT14 and a 74LS00 (Both have a Positive Threshold of about 2V).
To use the TouchScreen, I've installed the STMPE610 Module from Adafruit and the Display is the 3.5inch 480x320 TouchScreen-Display-Module from Adafruit.

The MCU-Board is socketed by the way, because I had problems uploading a new Firmware when I had it soldered in. Really strange - GPIO-Pins 0 and 2 were showing a 0.5Vpp oscillation at about 2V DC-Offset when the Reset came and the bootloader was supposed to start and accept a new Upload.
Did anyone of you guys had similar problems with that board? Or do you have an idea what could have caused this behavior? Installing a socket made with female 2.54mm headers and plugging the MCU-Board into that solved the problem...

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #28 on: September 22, 2017, 12:22:41 am »
I've measured the Attenuator. Looks like it is rather flat across the frequency-band I'm interested in.

To measure it, I used one of those noise-sources from ebay that get ridiculously hot after a few minutes :)

The B-Trace is just the noise-source connected via a 1m RG316-Cable with SMA-Connectors.
The A-Trace has the Attenuator inserted. It is powered with +5V and no attenuation is selected. The loss at no attenuation is about 10dB.

Input-Power is planned to be about +15dBm, which results in output-power of +5dBm that can be attenuated down to -90dBm.
With the help of the PIN-Attenuator the dynamic range is about +5dBm to -100dBm.
And when I use the AD9910, the amplitude scale factor-setting should allow for even weaker signals, as well as much finer control :)

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #29 on: September 22, 2017, 04:16:08 pm »
Updated RF-Detectors for the RF_LEVEL_SENSE and RF_OUT_SENSE-Signals.

RF_OUT_SENSE is used during calibration to fill the lookup-table with the right correction-factors. RF_LEVEL_SENSE provides the feedback-signal for the AGC.

I've also decided to use Microstrip-Traces instead of CPW, after reading through a PDF by Rogers that showed Microstrip to be less sensitive to changes in the dielectric constant of the material.
Manufacturing will take place at EasyEDA, as the 0.012mm thickness of the dielectric between first and second layer is too small to build the filters.

I'm not entirely sure, but I think the board is done now. Unless there's something wrong that I missed :)

Edit: Forgot one thing: The Soldermask-Cutouts to solder RF-Shields.

Edit 2: I just realized that I made a mistake, calculating the DC-Voltages. They don't go higher but lower once a signal is present at the input of the detector. So I don't need the bias-circuit on the RF_LEVEL_SENSE-Detector.

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #30 on: September 23, 2017, 07:51:44 pm »
I've changed the Supply-Voltage to 3.3V on the RF-Board, which allows me to work without any level shifters on the i2c-Bus. Doing that also meant I had to add some gain to the Output of the DAC that generates the AGC_BIAS. How much gain I need will be determined during testing.

On the PCB I've added pads to solder some kind of shield-can to. I've also moved the components around a bit to improve the layout and cleaned up the mess of the designators, which were sitting all over the place.

Attached you'll find the current gerbers and the schematics for the board.

This is the memory-map of the i2c-NVRAM-Chip on the RF-Board btw.:
 *  Memory-Map:
 *  0x000 - 0x0F0 = CAL-DATA: 12bit DAC-Calibration Data for PWR_SET-DAC is stored for every 25MHz-Step Starting at 0MHz and going up to 3GHz (120 16bit-Words)
 *  0x0F2 - 0x1E2 = CAL-DATA: 12bit DAC-Calibration Data for AGC_ATTEN_BIAS is stored for every 25MHz-Step Starting at 0MHz and going up to 3GHz (120 16bit Words)
 *  0x400 - 0x5FE = User-Config / User-Data
 *  0x600 - 0x7FE = Sweep-Settings

Offline ogden

  • Super Contributor
  • ***
  • Posts: 3731
  • Country: lv
Re: Open Source HW RF Signal Generator
« Reply #31 on: October 02, 2017, 04:52:36 pm »
Filter banks, unless very narrowband, will not help against square wave harmonics. I would go "traditional RF synth gen" way: downmixing. For example check Agilent E4400 service guide, E4400-90335.pdf and you will see what I mean. Instead of filter banks you need one 2.4GHz(?) CW source (like CC2500 in CW mode), 4.4GHz - capable mixer and 1GHz(?) low pass filter. Then you either use direct output from ADF4351 in 1GHz-4.4Ghz range or downmixed and filtered signal. Benefit of using 2.4GHz mixed with 2.4-4.4GHz of ADF4351 is: it is range of its VCO w/o divider.

« Last Edit: October 02, 2017, 08:11:40 pm by ogden »
 
The following users thanked this post: Mechatrommer

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #32 on: October 08, 2017, 10:47:23 pm »
Thanks for the advice, but I've already ordered the boards and am now comitted to this path  :)

For frequencies up to 400MHz, I'll use the DDS-Module anyway, so not that big of a problem there.
I'll have to see how strong the harmonics are after filtering. If they are too strong, I can always put something between the Synthesizer-Board and the Filter-Board.  ;)

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #33 on: November 25, 2017, 11:33:57 am »
The boards are here and I've installed all the IC except for the quad PIN-Diodes at the input and the OpAmp for the AGC.
Partially because I don't have the PIN-Diodes and I'm too lazy to dive into my parts-bin to search for the OpAmps :D

I've also noticed that I managed to build the footprint for the MiniCircuits 750 MHz LPF backwards, so I have to solder that one in from the backside of the board. Luckily I have enough space inside the case :)

The PIN-Diodes in question are BAP64Q. Unfortunately these Diodes aren't available on ebay for a decent price and Conrad lists them with a delivery-time of 2 weeks.  :--
Anyone here who's living in Hamburg, Germany and happen to have these diodes on hand?  ;D

Offline ogden

  • Super Contributor
  • ***
  • Posts: 3731
  • Country: lv
Re: Open Source HW RF Signal Generator
« Reply #34 on: November 25, 2017, 10:24:50 pm »
The PIN-Diodes in question are BAP64Q. Unfortunately these Diodes aren't available on ebay for a decent price and Conrad lists them with a delivery-time of 2 weeks.  :--
Anyone here who's living in Hamburg, Germany and happen to have these diodes on hand?  ;D

Farnell does :)
http://de.farnell.com/nxp/bap64q-125/pin-diode-100v-0-1a-sot-753/dp/2775914
 

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #35 on: November 25, 2017, 11:47:48 pm »
Indeed, but two BAR15 also fit the footprint and should work. :)

Next problem I stumbled across: I didn't have the MCP4725 DACs, only MCP4526. Difference: 4725 has A0-Pin on Pin 6, 4726 has a VREF-Input there.
As I only need one DAC (the bias voltage for the PIN-Attenuator can be set once and left there), I've just installed the 4726 to provide PowerSet and Bias-Voltage will for now be 3.3V (should be enough for +5dBm signal) and should shunt all RF-Energy to ground unless the AGC-Circuit sends a higher current through the pass-diodes.

Also the only 3.3V regulator I had available was an 1117-3.3 while the board requires a 78L33. Fortunately, there's enough room on the board to fit the 1117 on a small adapter board.

Next step is to test the board and install everything in the case.

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #36 on: December 30, 2017, 11:08:45 pm »
I didn't have much time the last few weeks, so there wasn't much progress.

I still haven't had the time to test the analog frontend-board, but I've used today to start building the UI.
I've also copied the serial-communication functions from my Game-Controller to the Signal-Generator. They only need minor adjustments to be used with the SignalGen. I'll post the possible commands here as soon as I have them implemented, in case someone wants to build the device too and use a PC-App to control it.

For the look of the UI, I took inspiration from the LW400-Series of LeCroy Signal Generators.
What you see in the attached picture is the Mode_Select_1-Screen, where the different Modes can be selected (Frequency-Set, Amplitude, Set, etc.).
Getting to the Mode to change Frequency, Amplitude or Modulation is also possible by tapping the corresponding area on the Screen instead of the Touch-Button - Once I've implemented the Touch-Functions :)

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #37 on: January 03, 2018, 07:43:02 pm »
Attached is the current version of the Program - Haven't found the time to upload it to Github yet :)


Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #38 on: January 24, 2018, 12:42:34 am »
Github-Repository is up: https://github.com/SaabFAN/OpenSource-HW-RF-Signal-Generator-OSHW-RFSG-
I'll add content as soon as I'm able to do so. Bachelor-Thesis is eating up time like crazy :)

Offline rhb

  • Super Contributor
  • ***
  • Posts: 3476
  • Country: us
Re: Open Source HW RF Signal Generator
« Reply #39 on: January 24, 2018, 01:30:52 am »
Please excuse my just dropping in, but I very much agree with this remark:

Filter banks, unless very narrowband, will not help against square wave harmonics. I would go "traditional RF synth gen" way: downmixing. For example check Agilent E4400 service guide, E4400-90335.pdf and you will see what I mean. Instead of filter banks you need one 2.4GHz(?) CW source (like CC2500 in CW mode), 4.4GHz - capable mixer and 1GHz(?) low pass filter. Then you either use direct output from ADF4351 in 1GHz-4.4Ghz range or downmixed and filtered signal. Benefit of using 2.4GHz mixed with 2.4-4.4GHz of ADF4351 is: it is range of its VCO w/o divider.


A pair of ADF4351s with a mixer and low pass filters should cover 0-2GHz quite nicely.  The PCB layout will be the hard part. By using two ADF4351s you can map and avoid spurs.  For precision measurements where time is not an issue, you  can dither the frequencies of the ADF4351s so that the  spur average is lower.  Of course, one can use the full range of the ADF4351, but that makes the filtering more difficult. 

If you BP filter the 3rd harmonics from both ADF4351s you can get 0-6 GHz.

If you want the frequency agility of the AD9851 it gets a good bit harder.
 

Offline b_force

  • Super Contributor
  • ***
  • Posts: 1381
  • Country: 00
    • One World Concepts
Re: Open Source HW RF Signal Generator
« Reply #40 on: January 24, 2018, 09:28:50 pm »
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.
Can't you better go for a differential output?
With a differential to single ended output you don't need caps anymore.
Another way is to shift the whole down to 0 DC bias, with like a DC servo.
That's also a way to get rid of those nasty caps.

Offline Navarro

  • Contributor
  • Posts: 32
  • Country: br
Re: Open Source HW RF Signal Generator
« Reply #41 on: January 31, 2018, 03:51:12 am »
A good attenuator that could be used is the PE4312.

I used it on some projects and really liked it.

73 PY1CX
PY1CX
34401A - DSOX2002A - 66332A
 

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #42 on: February 03, 2018, 05:52:12 pm »
A good attenuator that could be used is the PE4312.

I used it on some projects and really liked it.

73 PY1CX

Indeed.
I investigated that chip, but didn't really want to use it, because of the QFN-Package.
Luckily someone sold a bunch of Attenuators in really nice cases on ebay, of which I managed to get one (did a teardown a few posts before).
These PE4312, or similar chips, pop up on ebay quite often in ready made attenuators. Sometimes even with a control-panel and a micro to set the desired attenuation.

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #43 on: April 05, 2018, 03:00:26 pm »
Just a quick announcement, Bachelor-Thesis has been submitted and presentation is also done. Now I finally have the time to get back to work on this project :)


Offline Navarro

  • Contributor
  • Posts: 32
  • Country: br
Re: Open Source HW RF Signal Generator
« Reply #44 on: April 25, 2018, 05:52:13 am »
There is a old trick to solder QFN easily in prototypes if it's only a GND pack underneath.

Make a bigger hole in the GND pad (3~4mm).
Align and solder the QFN in the soldering iron in two corners.
Flip the board and solder the GND pad with a soldering iron placing solder in the hole.
Flip back again and solder the other pads.

You can also do it easier if you make the pad a little bit longer.

PY1CX
34401A - DSOX2002A - 66332A
 

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #45 on: May 01, 2018, 07:02:35 pm »
Okay, now that I have all the components together, I've tried to assemble the whole thing.
Turns out, the mess of cables is even messier than anticipated.
And the AD9910-Module unfortunately needs a lot more pins connected than just the SPI and IO-Update...

The mess of cables isn't pretty and I'm not happy with it, so I decided to create a new mainboard. :)

Because the current version is based on a ESP8266, which has way too few pins, and I've used the STM32F103 for my Bachelor-Project, I've decided to base the board on that chip.

I'm also putting a pin-header on the board with which a Orange Pi Zero can be connected (as suggested by user DC1MC). This allows upgrading the processor even further.

On the software-side, I haven't done any work, but user Bastler-XX has managed to get the AD9910 to work. My code wasn't working (missed the part in the datasheet that specifies CW-Mode only works in a specific profile and that particular profile-register has to be written to, if I remember correctly).

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #46 on: May 03, 2018, 01:41:11 am »
Finished the Mainboard-Design (Rev. A):
- STM32F103 as CPU
- AtTiny861 as Input-Controller (Keyboard and resistive Touch - using internal oscillator)
- PCF8574 with two 74HC14 for Attenuator-Control
- PCF8574 to generate and read slow signals
- Fast signals (ADF4351 and AD9910 control-Lines) directly connected to CPU
- USB-Connector (CPU can talk to PC and be controlled by it + Uploading of Firmware)
- Battery to keep the RTC running and store some settings.
- CAL-Data and NVRAM are on the analog board (connected via i2c)
- OrangePi Zero-Connector (26 pin parallel cable required if used in 19 inch card cage)
- Local Switching Buck Converter for digital 3,3V-Supply
- Power-Filtering for the Attenuator (0805 Ferrite or inductor and 47µF Cap)
- Linear Regulator for ADF4351-Supply (3,3V)
- Dimensions: 10 x 10 cm
- i2c and SPI-Connectors (Chip-Select Signals need to be generated by external GPIO-Expander - Board is too crowded for another connector - Or solder cables to the 4 free pins of the CPU  ;) )

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #47 on: June 29, 2018, 11:55:26 pm »
Update on the device:

Everything is now inside the case and so far the hardware seems to work.
There were some issues with signal integrity on the SPI-Bus, which I had to solve by connecting the data and CLK-Lines to GND via 22pF caps (the entire thing worked when I measured it with Scope-Probes, but ceased to work once I took the probe away - Active probe from Transverter-Store is ordered, but still on its way).
Also the Attiny is sort of connected wrong: The Libraries for i2c I could find use different pins (the Chip has two pairs for SDA and SCL connected to the USI).  ::)
So I reverted back to the original solution: PCF8574 for the keyboard and STMPE620 for the Touch.

I also designed a board that distributes a 20 MHz Ref-Clock for the Signal Sources and contains a MAX 10 FPGA + SDRAM, as well as i2c-distribution. The FPGA is intended as a advanced controller for the AD9910 and can communicate with the chip via SPI, as well as the parallel interface.
The 20MHz REF-CLK is controlled by a PLL, so locking to an external 10 MHz Reference is possible. In addition to that, 2 Outputs for the 10 MHz-Reference-Input are also fitted on the board.
Of this second board I have so far verified the PLL and that the FPGA is connected to the JTAG-Connector correctly.

Which brings me to the current status of the project:
- Verification of Communication between boards: DONE with the exception of the AD9910-Board
- Signal Generation with ADF4351: DONE
- Signal Generation with AD9910: DRIVER AVAILABLE, NOT IMPLEMENTED YET
- Control of Step Attenuator: DONE
- Amplitude-Control: MANUAL CONTROL OF STEP-ATTENUATOR
- SignalPath-Switching: TESTPROGRAM IMPLEMENTED
- AGC: NOT TESTED, DAC-CONTROL WORKING
- TOUCH: WORKING, NEEDS IMPROVEMENT
- KEYPAD: DONE
- UI: FRAMEWORK READY, IMPLEMENTATION OF FEATURES STARTED

What makes the testing a bit difficult is how the boards are arranged inside the case. Reaching test-points and measuring something is basically impossible. Also I'm still waiting for the SMA-Connector that will be put on the front-panel. It might also be necessary to put a PA somewhere in the signalchain, as it seems that the output power, especially above 2 Ghz, is dropping significantly.
A much better way to arrange the boards would be to put them side by side on a piece of wood, Copper clad Board, or a 3D-Printed Board-Holder.

Btw. At the moment I have 7 boards of each module (CPU-Board, REF-CLK + FPGA-Board, Analog Board with Filters). If someone wants these boards, please PM me. :)
I've also populated the Github-Repository now. So if anyone would like to contribute to the software, please do so :)

Offline pigrew

  • Frequent Contributor
  • **
  • Posts: 680
  • Country: us
Re: Open Source HW RF Signal Generator
« Reply #48 on: June 30, 2018, 12:10:53 am »
Maybe I'm missing something, but it looks like Kspi adds 2.2k to each of the SPI lines? I'd expect these values to be closer to 22 ohms.

(I'm looking at the schematic PDF on github)
 

Offline SaabFANTopic starter

  • Frequent Contributor
  • **
  • Posts: 735
  • Country: de
Re: Open Source HW RF Signal Generator
« Reply #49 on: June 30, 2018, 12:38:54 am »
Oops :D

Yes, I forgot to change the value.
Currently I'm using 100 Ohms for Rspi.


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf