Skip to content

Synthesizer Variants

The NanoVNA-H uses a frequency synthesizer to generate the stimulus signal and local oscillator frequencies. Several synthesizer and mixer IC variants have been used across hardware revisions.

The Silicon Labs Si5351A is the original clock generator used in NanoVNA designs.

ParameterValue
ManufacturerSilicon Labs
Input Clock25/26/27 MHz
Outputs3 (CLK0, CLK1, CLK2)
Frequency Range8 kHz - 160 MHz
PLL Range600 - 900 MHz
I2C Address0x60

NanoVNA Usage:

  • CLK0: Stimulus signal (Port 1)
  • CLK1: Local oscillator for CH0 mixer
  • CLK2: Local oscillator for CH1 mixer

Chinese-manufactured Si5351 compatible part.

ParameterValue
CompatibilitySi5351A pin/register compatible
VCO RangeDiffers slightly from Si5351
StatusCommon in production units

Renamed variants of the same part (SMC5351 was renamed to SJWCH5351).

ParameterValue
ManufacturerShengjiaweihe (SJWCH)
CompatibilitySi5351A compatible
Power ConsumptionLower than Si5351A
Port IsolationImproved
Frequency Range600 Hz - 200 MHz+

Advantages:

  • Lower power consumption
  • Better port-to-port isolation
  • Can operate down to 600 Hz when paired with ZeeTK mixer

The mixer converts the RF signal to an intermediate frequency for processing by the audio codec.

ParameterValue
ManufacturerNXP
TypeGilbert cell mixer
Frequency RangeDC - 500 MHz
Noise Figure5 dB typical
StatusDiscontinued

Firmware Configuration:

// Comment out __ZEETK__ for SA612A hardware
// #define __ZEETK__
#define FREQUENCY_MIN 1600 // Minimum frequency 1.6 kHz
#define FREQUENCY_THRESHOLD 290000110U // ~290 MHz

Pin-compatible replacement for SA612A with different internal characteristics.

ParameterValue
ManufacturerZeeTK
CompatibilitySA612A pin compatible
Frequency RangeDC - 500 MHz
Harmonic BehaviorDifferent from SA612A
StatusCurrent production

Firmware Configuration:

#define __ZEETK__
#define FREQUENCY_MIN 600 // Minimum frequency 600 Hz
#define FREQUENCY_THRESHOLD 300000110U // ~300 MHz

For frequencies below the harmonic threshold (~290-300 MHz):

  1. Si5351 generates stimulus frequency directly
  2. Local oscillator = stimulus + IF offset
  3. Maximum dynamic range (>70 dB)

For frequencies above the threshold up to 2 GHz:

  1. Si5351 generates a sub-frequency
  2. Output filter selects the desired harmonic (3rd, 5th, 7th)
  3. Reduced dynamic range (40-50 dB)
Frequency RangeHarmonicDivider
290-580 MHz3rd/3
580-1160 MHz5th/5
1160-2000 MHz7th/7

The Si5351 PLL (VCO) operates from 600-900 MHz. The firmware calculates optimal PLL and divider settings:

// From si5351.c - PLL frequency calculation
// PLL must be 600-900 MHz
// Output = PLL / divider

Some MS5351 units have limited VCO lock range. The firmware adjusts:

// VCO lock range requirement: 470-1176 MHz
// May cause measurement spikes around 588 MHz band edges

All synthesizer variants use the same I2C interface:

ParameterValue
I2C Address0x60 (7-bit)
Clock Speed900 kHz (default)
Available Speeds400k, 600k, 900k

The firmware supports multiple I2C speeds configured via STM32_I2C_SPEED in nanovna.h.

The Si5351/compatible parts support configurable output drive:

SettingCurrentPower Level
AUTOAutomaticFirmware selected
2 mA2 mALowest
4 mA4 mALow
6 mA6 mAMedium
8 mA8 mAHighest

Select via menu: CALIBRATE > POWER AUTO or shell command power.

The firmware includes delay parameters for synthesizer settling:

ParameterValueDescription
DELAY_BAND_1_2100 usBands 1-2 settling
DELAY_BAND_3_4300 usBands 3-4 settling
DELAY_BANDCHANGE5000 usBand change delay
DELAY_CHANNEL_CHANGE400 usChannel switch delay
DELAY_SWEEP_START2000 usSweep start delay
DELAY_RESET_PLL_AFTER4000 usPost-PLL reset delay

Symptoms: Measurement spikes at certain frequencies (often near 588 MHz)

Cause: MS5351 VCO cannot lock at required frequency

Solution:

  • Firmware automatically routes around problem frequencies
  • Some edge frequencies may still show anomalies

Symptoms: Increased noise floor above 290/300 MHz

Cause: Normal operation - harmonic mode has reduced dynamic range

Solution:

  • Use direct mode frequencies when possible
  • Increase IF bandwidth averaging for noisy signals

Symptoms: Crosstalk between CH0 and CH1

Cause: Synthesizer output coupling

Solution:

  • SJWCH5351 provides improved isolation
  • Ensure proper calibration

Synthesizer driver code is located in:

  • Driver: si5351.c
  • Register definitions: si5351.c internal
  • Timing parameters: nanovna.h lines 406-428
  • Frequency thresholds: nanovna.h lines 186-191