diff --git a/main.c b/main.c index a3a4377..ebce037 100644 --- a/main.c +++ b/main.c @@ -978,7 +978,7 @@ config_t config = { .ultra_start = ULTRA_AUTO, .low_level_offset = 100.0, // Uncalibrated .high_level_offset = 100, // Uncalibrated - .lna_level_offset = 100, + .lna_level_offset = 0, .low_level_output_offset = 100.0, // Uncalibrated .high_level_output_offset = 0, // Uncalibrated, but checking code is not yet present .harmonic_level_offset = 7, @@ -995,10 +995,8 @@ config_t config = { /* low lna */ { 10000, 20000, 50000, 90000, 230000, 360000, 670000, 800000, 1000000, 7000000, 30000000, 43000000, 90000000, 300000000, 525000000, 640000000, 750000000, 770000000, 785000000, 780000000}, /* ultra */ { 10000, 100000, 1000000, 5000000, 15000000, 30000000, 145000000, 400000000, 720000000, 800000000, 800000001, 1519000000, 1527000000, 3000000000, 3500000000, 4000000000, 4500000000, 5000000000, 5500000000, 6000000000 }, // low ultra in /* ultra LNA*/ { 10000, 100000, 1000000, 5000000, 15000000, 30000000, 145000000, 400000000, 720000000, 800000000, 800000001, 1519000000, 1527000000, 3000000000, 3500000000, 4000000000, 4500000000, 5000000000, 5500000000, 6000000000 }, // low ultra lna -#ifdef DIRECT_CORRECTION /* direct */ { 10000, 100000, 1000000, 5000000, 15000000, 30000000, 145000000, 400000000, 720000000, 800000000, 800000001, 1519000000, 1527000000, 3000000000, 3500000000, 4000000000, 4500000000, 5000000000, 5500000000, 6000000000 }, // low ultra in /* direct LNA*/ { 10000, 100000, 1000000, 5000000, 15000000, 30000000, 145000000, 400000000, 720000000, 800000000, 800000001, 1519000000, 1527000000, 3000000000, 3500000000, 4000000000, 4500000000, 5000000000, 5500000000, 6000000000 }, // low ultra lna -#endif /* out */ {10000, 30000, 70000, 100000, 300000, 500000, 800000, 2000000, 5000000, 8000000, 30000000, 90000000, 140000000, 370000000, 630000000, 750000000, 790000000, 810000000, 820000000, 830000000}, /* direct */ { 500000000, 823000000, 830000000, 840000000, 850000000, 860000000, 910000000, 920000000, 930000000, 970000000, 990000000, 1030000000, 1040000000, 1070000000, 1080000000, 1090000000, 1100000000, 1110000000, 1120000000, 1130000000}, /* adf */ { 500000000, 700000000, 820000000, 840000000, 950000000, 1000000000, 1040000000, 1070000000, 1320000000, 1570000000, 1750000000, 2220000000, 2800000000, 2810000000, 3000000000, 3250000000, 3440000000, 3800000000, 4060000000, 4350000000}, @@ -1010,10 +1008,8 @@ config_t config = { /* low lna */ { 13.78, 11.68, 9.74, 8.64, 6.03, 6.13, 1.99, 1.29, 1.15, 0.46, 0, 0.33, -0.29, 1.31, 0.88, 1.33, 2.13, 2.79, 3.74, 4.96}, /* ultra */ { 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // low in /* ultra LNA*/ { 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // low in -#ifdef DIRECT_CORRECTION /* direct */ { 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // low in /* direct LNA*/ { 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // low in -#endif /* out */ { 8.5, 6.04, 3.55, 2.42, -0.04, -1.06, -1.46, -2.16, -2.71, -2.56, -3.08, -3.47, -3.15, -1.03, -1.75, -0.21, 1.53, 3.81, 5.69, 9.4}, /* direct */ { -6.71, -2.48, -2.46, -2.2, -2.24, -1.96, -1.37, -1.41, -1.14, -0.55, -0.5, 0.11, 0.06, 0.69, 0.64, 0.71, 0.96, 0.93, 1.35, 1.52}, /* adf */ { -1, -5.25, -8.11, -8.35, -8.1, -8.91, -10.3, -10.05, -5.19, -2.69, -2.31, -2.68, -1.31, -2.36, -2.93, -1.94, -0.37, 4.33, 7.17, 9.02}, diff --git a/sa_cmd.c b/sa_cmd.c index e24b21d..795c2e5 100644 --- a/sa_cmd.c +++ b/sa_cmd.c @@ -1031,11 +1031,7 @@ VNA_SHELL_FUNCTION(cmd_correction) { (void)argc; #ifdef TINYSA4 -#ifdef DIRECT_CORRECTION - static const char cmd[] = "low|lna|ultra|ultra_lna|direct|direct_lna|out|out_direct|out_ultra|out_adf|high|off|on"; -#else - static const char cmd[] = "low|lna|ultra|ultra_lna|out|out_direct|out_ultra|out_adf|high|off|on"; -#endif + static const char cmd[] = "low|lna|ultra|ultra_lna|direct|direct_lna|out|out_direct|out_adf|out_ultra|high|off|on"; static const char range[] = "0-19"; #else static const char cmd[] = "low|high"; diff --git a/sa_core.c b/sa_core.c index 1426be4..e2933e5 100644 --- a/sa_core.c +++ b/sa_core.c @@ -366,7 +366,7 @@ void set_input_path(freq_t f) } else if (MODE_HIGH(setting.mode)) signal_path = PATH_HIGH; - else if(config.ultra && ((config.ultra_start == ULTRA_AUTO && f > 700) || (config.ultra_start != ULTRA_AUTO && f >config.ultra_start))) + else if(ultra && ((config.ultra_start == ULTRA_AUTO && f > 700) || (config.ultra_start != ULTRA_AUTO && f >config.ultra_start))) signal_path = PATH_ULTRA; else if (config.direct && f >= config.direct_start && f < config.direct_stop) signal_path = PATH_DIRECT; @@ -603,7 +603,7 @@ void reset_settings(int m) setting.tracking_output = false; setting.measurement = M_OFF; #ifdef __ULTRA__ - setting.ultra = S_AUTO_OFF; +// setting.ultra = S_AUTO_OFF; #endif #ifdef TINYSA4 setting.frequency_IF = config.frequency_IF1; ; @@ -997,6 +997,7 @@ void toggle_below_IF(void) dirty = true; } +#if 0 #ifdef __ULTRA__ void toggle_ultra(void) { @@ -1009,6 +1010,7 @@ void toggle_ultra(void) dirty = true; } #endif +#endif void set_modulation(int m) { @@ -1446,15 +1448,13 @@ void set_actual_power(float o) // Set peak level to known value config.lna_level_offset += new_offset; else #endif - { - if (setting.atten_step) - config.receive_switch_offset += new_offset; - else - config.low_level_offset += new_offset; - } + if (setting.atten_step) + config.receive_switch_offset += new_offset; + else + config.low_level_offset += new_offset; } dirty = true; - config_save(); +// config_save(); // dirty = true; // No HW update required, only status panel refresh } @@ -1472,13 +1472,16 @@ float get_level_offset(void) lev = config.direct_level_offset; } else if (signal_path == PATH_ULTRA) { lev = config.ultra_level_offset; - } else if (setting.extra_lna) { - lev = config.lna_level_offset; } else #endif { lev = config.low_level_offset; } +#ifdef TINYSA4 + if (lev != 1000 && setting.extra_lna) { + lev += config.lna_level_offset; + } +#endif return(lev == 100? 0 : lev); } if (setting.mode == M_GENLOW) { @@ -7036,6 +7039,7 @@ void calibrate(void) int local_test_status; int old_sweep_points = setting._sweep_points; #ifdef TINYSA4 + int old_ultra = config.ultra; // setting.auto_IF = true; // set in selftest // setting.frequency_IF = config.frequency_IF1; // set in selftest float direct_level=0.0; @@ -7098,6 +7102,11 @@ again: for (int j= 0; j < CALIBRATE_RBWS; j++ ) { #if 1 reset_settings(M_LOW); + + config.ultra = true; // Enable ultra + maxFreq = 12000000000; + ultra = true; + set_refer_output(0); #ifdef TINYSA4 set_attenuation(0); @@ -7217,6 +7226,10 @@ again: goto again; setting.below_IF = S_AUTO_OFF; in_calibration = false; +#ifdef TINYSA4 + ultra = old_ultra; + config.ultra = old_ultra; +#endif #if 0 // No high input calibration as CAL OUTPUT is unreliable @@ -7254,15 +7267,8 @@ quit: set_sweep_points(old_sweep_points); in_selftest = false; // set_refer_output(-1); -#ifdef TINYSA4 reset_settings(M_LOW); -// set_extra_lna(false); -// set_average(0,AV_OFF); set_refer_output(-1); -#else - reset_settings(M_LOW); - set_refer_output(-1); -#endif test_wait = false; }