Frequency adjustment in PPB

pull/34/head
erikkaashoek 3 years ago
parent 33d3224531
commit 22b70e507b

@ -456,7 +456,7 @@ void clear_frequency_cache(void);
void toggle_high_out_adf4350(void); void toggle_high_out_adf4350(void);
extern int high_out_adf4350; extern int high_out_adf4350;
#endif #endif
void set_30mhz(freq_t); int set_actual_freq(int);
void set_IF2(int f); void set_IF2(int f);
void set_R(int f); void set_R(int f);
extern void set_modulo(uint32_t f); extern void set_modulo(uint32_t f);

@ -591,7 +591,7 @@ VNA_SHELL_FUNCTION(cmd_actual_freq)
shell_printf("%DHz\r\n", config.setting_frequency_30mhz); shell_printf("%DHz\r\n", config.setting_frequency_30mhz);
return; return;
} else { } else {
set_30mhz(my_atoui(argv[0])); set_actual_freq(my_atoui(argv[0]));
} }
} }
#endif #endif

@ -803,15 +803,19 @@ void set_gridlines(int d)
} }
#ifdef TINYSA4 #ifdef TINYSA4
void set_30mhz(freq_t f)
int set_actual_freq(int f)
{ {
// if (f < 29000000 || f > 31000000) if (get_sweep_frequency(ST_CENTER) > 1000000000)
// return; return -1;
config.setting_frequency_30mhz = f; if (f < - 10000 || f > +10000)
return -1;
config.setting_frequency_30mhz = 3000000000 + f * 3 ;
ADF4351_recalculate_PFDRFout(); ADF4351_recalculate_PFDRFout();
config_save(); config_save();
dirty = true; dirty = true;
update_grid(); update_grid();
return 0;
} }
#else #else
void set_10mhz(freq_t f) void set_10mhz(freq_t f)
@ -7325,7 +7329,7 @@ void calibrate(void)
set_auto_reflevel(true); set_auto_reflevel(true);
setting.repeat = 10; setting.repeat = 10;
//setting.scale = 1; //setting.scale = 1;
if (i == 5) { if (i == 5) { // Not used !!!!!
set_sweep_points(51); set_sweep_points(51);
set_sweep_frequency(ST_SPAN, 50); set_sweep_frequency(ST_SPAN, 50);
setting.rbw_x10 = 3; setting.rbw_x10 = 3;

@ -444,6 +444,7 @@ void ADF4351_R_counter(int R)
void ADF4351_recalculate_PFDRFout(void){ void ADF4351_recalculate_PFDRFout(void){
int local_r = old_R; int local_r = old_R;
old_R = -1; old_R = -1;
local_setting_frequency_30mhz_x100 = config.setting_frequency_30mhz;
ADF4351_R_counter(local_r); ADF4351_R_counter(local_r);
} }
@ -458,7 +459,7 @@ void ADF4350_shift_ref(int f) {
if (f == shifted) if (f == shifted)
return; return;
shifted = false; shifted = false;
local_setting_frequency_30mhz_x100 = 3000000000; local_setting_frequency_30mhz_x100 = config.setting_frequency_30mhz;
if (shifted) { if (shifted) {
local_setting_frequency_30mhz_x100 = (local_setting_frequency_30mhz_x100 * SHIFT_MUL) / SHIFT_DIV; local_setting_frequency_30mhz_x100 = (local_setting_frequency_30mhz_x100 * SHIFT_MUL) / SHIFT_DIV;
} }

@ -404,7 +404,7 @@ enum {
// #10 // #10
KM_SAMPLETIME, KM_LOWOUTLEVEL, KM_DECAY, KM_NOISE, KM_SAMPLETIME, KM_LOWOUTLEVEL, KM_DECAY, KM_NOISE,
#ifdef TINYSA4 #ifdef TINYSA4
KM_30MHZ, KM_FREQ_CORR,
#else #else
KM_10MHZ, KM_10MHZ,
#endif #endif
@ -469,7 +469,7 @@ static const struct {
[KM_DECAY] = {keypads_positive , "DECAY"}, // KM_DECAY [KM_DECAY] = {keypads_positive , "DECAY"}, // KM_DECAY
[KM_NOISE] = {keypads_positive , "NOISE\nLEVEL"}, // KM_NOISE [KM_NOISE] = {keypads_positive , "NOISE\nLEVEL"}, // KM_NOISE
#ifdef TINYSA4 #ifdef TINYSA4
[KM_30MHZ] = {keypads_freq , "FREQ"}, // KM_30MHz [KM_FREQ_CORR] = {keypads_plusmin , "PPB"}, // KM_FREQ_CORR
#else #else
[KM_10MHZ] = {keypads_freq , "FREQ"}, // KM_10MHz [KM_10MHZ] = {keypads_freq , "FREQ"}, // KM_10MHz
#endif #endif
@ -2971,7 +2971,7 @@ static const menuitem_t menu_settings2[] =
{ MT_KEYPAD, KM_ATTACK, "ATTACK\n\b%s", "0..100000ms"}, { MT_KEYPAD, KM_ATTACK, "ATTACK\n\b%s", "0..100000ms"},
#endif #endif
#ifdef TINYSA4 #ifdef TINYSA4
{ MT_KEYPAD, KM_30MHZ, "30MHz*100\n\b%s", "Enter actual 30MHz * 100"}, { MT_KEYPAD, KM_FREQ_CORR, "FREQ CORR\n\b%s", "Enter ppb correction"},
#endif #endif
{ MT_SUBMENU, 0, S_RARROW" MORE", menu_settings3}, { MT_SUBMENU, 0, S_RARROW" MORE", menu_settings3},
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back { MT_NONE, 0, NULL, menu_back} // next-> menu_back
@ -3501,9 +3501,13 @@ static void fetch_numeric_target(uint8_t mode)
plot_printf(uistat.text, sizeof uistat.text, "%d", ((int32_t)uistat.value)); plot_printf(uistat.text, sizeof uistat.text, "%d", ((int32_t)uistat.value));
break; break;
#ifdef TINYSA4 #ifdef TINYSA4
case KM_30MHZ: case KM_FREQ_CORR:
uistat.freq_value = config.setting_frequency_30mhz; if (config.setting_frequency_30mhz >= 3000000000ULL)
plot_printf(uistat.text, sizeof uistat.text, "%.5QHz", uistat.freq_value); uistat.value = (config.setting_frequency_30mhz - 3000000000ULL)/3;
else
uistat.value = - ((int)(3000000000ULL - config.setting_frequency_30mhz))/3;
plot_printf(uistat.text, sizeof uistat.text, "%d", (int32_t)uistat.value);
break; break;
#else #else
case KM_10MHZ: case KM_10MHZ:
@ -3711,8 +3715,8 @@ set_numeric_value(void)
set_noise(uistat.value); set_noise(uistat.value);
break; break;
#ifdef TINYSA4 #ifdef TINYSA4
case KM_30MHZ: case KM_FREQ_CORR:
set_30mhz(uistat.freq_value); set_actual_freq(uistat.value);
break; break;
#else #else
case KM_10MHZ: case KM_10MHZ:

Loading…
Cancel
Save

Powered by TurnKey Linux.