Posts

A Half-baked Fix for Si5351 Quadrature Issues

Image
In a previous post, I briefly described issues I had preserving quadrature output from an Si5351 board.  Allegedly, once a 5351 is programmed to provide a fixed phase offset on a second output,  it should maintain that phase shift across frequency excursions, provided the "even divisor" remained unchanged - No PLL reset needed until the a large enough frequency excursion requires a change in the "even divisor".  PLL resets caused annoying "pops" in the output of direct conversion front ends that I typically use for phasing-type receivers.  I was loathe to include a PLL reset on every frequency change because of that.  So, I (and many others) only do a PLL reset when the required integer "even divisor" was changed.  Many fewer "pops", but semi-random loss of LO quadrature within a relatively small frequency range.  I added a polled front-panel switch to my hardware that I use to manually reset the  PLL when my "ear detector" de...

A MMIC with some Muscle

Image
Some folks have built HF gear using MMIC's (gain blocks) as either IF amps, receive preamps or pre-drivers.  I've used AG303-86's, MAV-11's, MAR-0685's and even a some hamfest SGA-6486's with few problems and with excellent repeatability.  50 ohm input and output, low external component count, relatively low noise figure and low distortion up to about 20dbm output at 1 db gain compression - what's not to like!  The issue I have with these devices is that they're a bit anemic for use use a QRP final amp or as drivers for 5+ watt PA's.  Recently, I bought a couple of SV1AFN's (SV1AFN) 1 watt driver, PHA-202+ boards to fill the need for 1 watt (approx.) gain blocks in a few projects.  This device/board can , indeed, deliver close to 30 dbm (at 1 db gain compression) output for 10 - 13 dbm input.  The down side:  the PHA-202+ is relatively expensive (Digikey's single unit price is around $16.64 (US)),  current consumption is rather high compared ...

Si5351 Quadrature Issues

Image
 Since I enjoy the higher HF bands more 40m and below, I've found that using the dual D-type (74xxx74) flip flop method for generating a quadrature LO to be squirrely.  A 5351 can easily generate the 4x LO frequency signal needed, but 74AC74's seem marginal for 15m and 10m where they have to operate at 84 to 112 MHz - I've observed high current draw and low output.  No issues at 20m and down.  I even tried the notorious Potato Semiconductor version of the 7474 that's supposed to work well at high clock frequencies.  Results were mixed at best. In order to cover these two bands, I've used "set phase" capability of the 5351 to directly generate a quadrature LO.  Code to accomplish this abounds on-line.  I happened to use the ZL2CTM variant.  It's listed in one of my previous posts.  This method seemed to work pretty well on receive (phasing DCR), although I noticed that opposite sideband suppression was intermittently and variably lousy at time...

A Filter-type 6m SSB/CW Transceiver

Image
 I built this rig about 8 years ago in anticipation of improved conditions on 6m as the sunspot cycle picked up.  I had an old transverter for 6m that I built prior to 2000, but it never really worked all that well as a system, so it donated a number of its "innards" to a new TRX.  I saved the 25W M57735 amplifier and the existing TX, and RX mixer modules for use in the new rig.  The block diagram for this radio follows: I drew this by hand because (at the time) is was quicker than constructing it with one of the MS products or Open Office.   The only circuitry used for both receive and transmit was the 9 MHz crystal filter (KVF XF-9 S 44 USB filter) and the two associated MMIC amps.  I had plenty of TUF-2 and SBL-1 DBM's left from hamfest scrounging, as well as an abundance of 2N3904's and low noise op amps bought for other projects.  Using two essentially independent audio and RF chains greatly simplified T/R switching.  A list of modules used f...

Playing with Phasing - Part 3 - An experimental SSB/CW Transmitter (WIP)

Image
Since the phasing RX (part 2) functioned reasonably well, I decided to build a companion phasing TX using the same general concepts as before. Phasing TX's anecdotally have a less than stellar reputation - poor carrier and opposite sideband suppression.  I wanted to see if replacing the usual op-amp based phase shifters (KK7B) with the Teensy4.0/SGTL5000 (ZL2CTM) combination would be practical.  As in the RX build, filtering at RF frequencies is done using external LP and BP LC filters of conventional design.  The TX concept is detailed, below:   The RX's switched quadrature LO is put to work in this build.  (The RX has the capability to offset the TX frequency for CW operation and the built-in FST3253 DPDT switch makes the LO signal available externally in the transmit state.)  PTT circuitry was implemented using old-school, discreet component switching for simplicity's sake.  The Teensy would be more than capable of accomplishing the same result....

Playing with Phasing - part 2b - audio processing code

Target is Teensy 4.0 + SGTL5000 audio shield.  Mostly ZL2CTM's code again - he's done some good stuff (IMO)!  Filter coefficients were generated using Oak Hills filter design program.  Oak Hills site is gone, but the GUI filter design program (Windows only, unfortunately) can be found by searching the interweb.  Same disclaimer as part 2a. _______________________________________________________________________________________________  #include <_Teensy.h> #include <Wire.h>                           #include <Audio.h>  // Teensy audio library // Number of Filter Coefficients #define NO_HILBERT_COEFFS 200   #define SSB_SWITCH 3 #define FILTER_SWITCH 4 // Iowa Hills Hilbert transform filter coefficients const short Hilbert_Plus_45_Coeffs[NO_HILBERT_COEFFS] = { (short)(32768 *  0.00000187995362921356), (short)(...

Playing with Phasing - part 2a - VFO control code

Code for Quadrature VFO control.  Credits to ZL2CTM and NT7S (and probably others..) Use at your own risk - If your radio starts to glow green and explodes from running this code, it's not my (or anyone else's) fault.  Target is Arduino Nano or Metro mini.  _______________________________________________________________________________________________  // #include <Rotary.h> #include <si5351.h> #include <Wire.h> #include "SSD1306Ascii.h" #include "SSD1306AsciiWire.h" #define I2C_ADDRESS 0x3C // Define proper RST_PIN if required. #define RST_PIN -1 SSD1306AsciiWire oled; #define ENCODER_A 3  // Encoder pin A #define ENCODER_B 2  // Encoder pin B #define ENCODER_BTN 11 #define RESET_BTN 12 #define TX_ON 6 #define OFFSET_ON 8 Si5351 si5351; Rotary r = Rotary(ENCODER_A, ENCODER_B); volatile uint32_t cw_offset = 0ULL; volatile uint32_t cwo_old = 0ULL; volatile uint32_t radix = 1000;  //start step size - change to suit boolean changed_f = 0...