diff --git a/main.c b/main.c index 9492fc7..e878c22 100644 --- a/main.c +++ b/main.c @@ -1143,12 +1143,12 @@ config_t config = { const freq_t v5_2_correction_frequency[CORRECTION_SIZE][CORRECTION_POINTS]= { - /* low */ { 10000, 50000, 200000, 400000, 900000, 20000000, 30000000, 100000000, 160000000, 230000000, 290000000, 400000000, 520000000, 600000000, 660000000, 740000000, 790000000, 810000000, 820000000, 830000000}, - /* low lna */ { 10000, 30000, 80000, 300000, 400000, 800000, 1000000, 10000000, 60000000, 120000000, 270000000, 420000000, 550000000, 600000000, 680000000, 750000000, 770000000, 800000000, 820000000, 830000000}, - /* ultra */ { 30000000, 700000000, 980000000, 1440000000, 1590000000, 1900000000, 2810000000, 3340000000, 3390000000, 3930000000, 4230000000, 4300000000, 4340000000, 4810000000, 5070000000, 5110000000, 5300000000, 5510000000, 5850000000, 6000000000}, - /* ultra lna */ { 30000000, 700000000, 770000000, 990000000, 1230000000, 2390000000, 2800000000, 2810000000, 3150000000, 3210000000, 3810000000, 4060000000, 4180000000, 4230000000, 4300000000, 4400000000, 4490000000, 4960000000, 5070000000, 6000000000}, - /* direct */ { 140000000, 150000000, 160000000, 180000000, 280000000, 300000000, 380000000, 390000000, 410000000, 430000000, 490000000, 520000000, 560000000, 830000000, 840000000, 860000000, 870000000, 960000000, 1040000000, 1130000000}, - /* direct lna */ { 140000000, 150000000, 170000000, 180000000, 280000000, 300000000, 340000000, 360000000, 500000000, 560000000, 830000000, 840000000, 860000000, 870000000, 950000000, 1010000000, 1030000000, 1040000000, 1050000000, 1130000000, }, + /* low */ { 100000, 400000, 1000000, 80000000, 180000000, 260000000, 270000000, 300000000, 320000000, 390000000, 490000000, 660000000, 680000000, 690000000, 750000000, 790000000, 800000000, 810000000, 820000000, 830000000}, + /* low lna */ { 100000, 300000, 2000000, 8000000, 20000000, 40000000, 70000000, 200000000, 230000000, 250000000, 260000000, 270000000, 300000000, 420000000, 540000000, 740000000, 790000000, 810000000, 820000000, 830000000}, + /* ultra */ { 30000000, 700000000, 980000000, 1910000000, 2550000000, 2800000000, 2810000000, 3020000000, 3120000000, 3430000000, 3750000000, 4330000000, 4530000000, 5490000000, 5630000000, 5960000000, 6430000000, 6820000000, 7290000000, 7400000000}, + /* ultra lna */ { 30000000, 700000000, 1130000000, 1840000000, 2490000000, 2800000000, 2810000000, 3120000000, 3500000000, 3890000000, 4410000000, 4610000000, 4940000000, 5450000000, 6110000000, 6550000000, 6610000000, 7150000000, 7280000000, 7400000000}, + /* direct */ { 140000000, 150000000, 160000000, 180000000, 280000000, 300000000, 320000000, 380000000, 400000000, 420000000, 480000000, 510000000, 560000000, 823000000, 830000000, 850000000, 890000000, 950000000, 1090000000, 1120000000}, + /* direct lna */ { 140000000, 150000000, 170000000, 180000000, 280000000, 290000000, 310000000, 370000000, 420000000, 440000000, 460000000, 560000000, 823000000, 830000000, 850000000, 890000000, 950000000, 1040000000, 1090000000, 1120000000, }, /* out */ { 30000, 100000, 200000, 600000, 5000000, 10000000, 110000000, 120000000, 240000000, 300000000, 400000000, 490000000, 650000000, 690000000, 750000000, 780000000, 800000000, 810000000, 823000000, 830000000, }, /* direct */ { 500000000, 823000000, 830000000, 850000000, 860000000, 870000000, 880000000, 890000000, 900000000, 910000000, 920000000, 930000000, 1030000000, 1040000000, 1050000000, 1060000000, 1080000000, 1100000000, 1120000000, 1130000000, }, /* adf */ { 500000000, 1130000000, 1240000000, 1400000000, 1500000000, 1560000000, 1610000000, 1850000000, 1970000000, 2210000000, 2350000000, 2600000000, 2800000000, 2810000000, 2940000000, 3000000000, 3250000000, 3480000000, 3830000000, 4400000000, }, @@ -1157,12 +1157,12 @@ const freq_t v5_2_correction_frequency[CORRECTION_SIZE][CORRECTION_POINTS]= const float v5_2_correction_value[CORRECTION_SIZE][CORRECTION_POINTS]= { - /* low */ { 12.2, 7.57, 4.46, 2.17, 0.36, -0.36, 0, -0.84, -0.39, 0.5, 0.25, 1, 0.08, 0.48, 0.37, 1.53, 2.98, 4.74, 6.25, 8.73, }, - /* low lna */ { 11, 8.54, 6.32, 4.46, 3.18, 1.02, 0.69, 0.2, -0.43, -0.41, 0.58, 0.66, -0.08, 0.58, 0.77, 1.7, 1.77, 3.55, 5.51, 7.99, }, - /* ultra */ { 0, 0.58, 1.7, 4.53, 4.46, 3.23, 4.64, 6.29, 5.67, 7.03, 8.78, 7.04, 8.25, 11.42, 11.63, 13.29, 12.38, 12.58, 15.75, 15.9, }, - /* ultra lna */ { 0, 0.49, 0.52, 1.26, 3.13, 2.68, 2.68, 3.45, 4.7, 6.2, 8.49, 11.54, 13.51, 15.82, 15.82, 18.66, 19.41, 22.6, 22.8, 28.1, }, - /* direct */ { 5.12, 4.22, 2.41, 0, -8.3, -9.59, -13.55, -14.09, -15.14, -15.66, -18.37, -19.29, -21.12, -28.75, -29.37, -28.55, -29.41, -27.8, -26.21, -23.72, }, - /* direct lna */ { 4.3, 3.31, 1.69, 0, -10.15, -11.7, -13.87, -14.84, -20.95, -23.28, -30.7, -30.97, -30.8, -31.32, -30.35, -29.25, -28.19, -28.39, -28.02, -25.85, }, + /* low */ { 1.88, 0.25, 0.26, 0.1, -0.9, -0.73, -0.95, -0.79, -0.3, 0.07, -0.97, -1.02, -0.59, -0.07, 0.13, 2.04, 3.1, 4.02, 7.48, 13.7, }, + /* low lna */ { 5.28, 0.85, -2.91, -3.09, -0.68, 1.58, 2.33, 2.93, 6.23, 8.61, 7.55, 5.9, 4.34, 4.55, 3.08, 4.7, 6.86, 9.37, 12.35, 18.82, }, + /* ultra */ { -0.35, -0.8, -0.87, 0.35, 1.39, 1.07, 2.01, 3.06, 2.22, 3.65, 4.72, 5.45, 8.3, 9.03, 11.43, 11.5, 14.41, 20.05, 30.77, 31.52, }, + /* ultra lna */ { -0.1, 3.86, 4.94, 5.06, 7.32, 6.16, 7.1, 6.96, 10.18, 10.23, 12.36, 12.35, 14.77, 13.75, 20.39, 18.23, 18.74, 33.83, 36.46, 37.46, }, + /* direct */ { 3.39, 2.42, 0.95, -2.02, -10.09, -10.69, -12.27, -15.56, -16.81, -17.04, -20.22, -21.04, -23.22, -31.68, -31.68, -31.78, -31.52, -30.48, -27.36, -26.44, }, + /* direct lna */ { 0.17, -1.96, -3.48, -4.46, -10.47, -12.51, -13.53, -17.12, -20.01, -20.52, -22.43, -26.13, -33.96, -34.05, -34.19, -34.12, -33.02, -30.6, -29.48, -28.66, }, /* out */ { 4.67, 1.06, -0.8, -2.53, -4.01, -4.16, -4.57, -4.67, -3.57, -3.42, -2.95, -3.52, -3.4, -2.96, -2.11, -1.1, 0.02, 0.96, 2.86, 4.87, }, /* direct */ { -7.4, -3.63, -3.52, -3.35, -3.22, -3.1, -2.99, -2.9, -2.79, -2.62, -2.51, -2.47, -1.14, -1.02, -0.87, -0.77, -0.38, -0.22, 0.04, 0.22, }, /* adf */ { -1.05, -0.3, 2.28, 6.72, 8.44, 8.97, 8.96, 8.5, 8.02, 7.74, 8.48, 7.73, 6.22, 5.33, 3.38, 3.11, 3.12, 5.15, 9.5, 11.12, }, @@ -2956,7 +2956,7 @@ int main(void) if (max2871) { ULTRA_MAX_FREQ = 7250000000ULL + config.overclock; // Start of harmonic mode MAX_LO_FREQ = 6300000000ULL + config.overclock; - MAX_ABOVE_IF_FREQ = 4500000000ULL + config.overclock; // Range to use for below IF + MAX_ABOVE_IF_FREQ = 4470000000ULL + config.overclock; // Range to use for below IF MIN_BELOW_IF_FREQ = 2310000000ULL + config.overclock; // Range to use for below IF memcpy(config.correction_frequency, v5_2_correction_frequency, sizeof(config.correction_frequency)); memcpy(config.correction_value, v5_2_correction_value, sizeof(config.correction_value)); @@ -2977,7 +2977,7 @@ int main(void) if (max2871) { ULTRA_MAX_FREQ = 7250000000ULL + config.overclock; // Start of harmonic mode MAX_LO_FREQ = 6300000000ULL + config.overclock; - MAX_ABOVE_IF_FREQ = 4500000000ULL + config.overclock; // Range to use for below IF + MAX_ABOVE_IF_FREQ = 4470000000ULL + config.overclock; // Range to use for below IF MIN_BELOW_IF_FREQ = 2310000000ULL + config.overclock; // Range to use for below IF } else { ULTRA_MAX_FREQ = 5340000000ULL + config.overclock; // Start of harmonic mode diff --git a/sa_core.c b/sa_core.c index 166851b..fa3cd6c 100644 --- a/sa_core.c +++ b/sa_core.c @@ -27,8 +27,8 @@ #pragma GCC optimize ("Os") #endif -#if 0 -#define TRACE(X) { DAC->DHR12R1 = (X*400); } // Enable for realtime tracing +#if 1 +#define TRACE(X) { DAC->DHR12R1 =(uint32_t) ((X)*400); } // Enable for realtime tracing #else #define TRACE(X) // { DAC->DHR12R1 = (X*400); } // Enable for realtime tracing #endif @@ -3645,7 +3645,7 @@ pureRSSI_t perform(bool break_on_operation, int i, freq_t f, int tracking) / TRACE(0); // --------------------------------- Pulse at start of low output sweep -------------------------- - if ((setting.mode == M_GENLOW || (setting.pulse && setting.mode == M_LOW)) && ( setting.frequency_step != 0 || setting.level_sweep != 0.0)) {// pulse high out + if ((setting.mode == M_GENLOW && ( setting.frequency_step != 0 || setting.level_sweep != 0.0)) || (setting.mode == M_LOW && setting.pulse)) {// pulse high out #ifdef __SI4432__ SI4432_Sel = SI4432_LO ; #endif @@ -4373,7 +4373,7 @@ again: // Spur redu } } #endif // __ADF4351__ - TRACE(8); + TRACE(2.5); if (setting.harmonic && lf > ( setting.mode == M_GENLOW ? ULTRA_MAX_FREQ + 60000000:ULTRA_MAX_FREQ) ) { target_f /= setting.harmonic; LO_harmonic = true; @@ -4465,7 +4465,7 @@ again: // Spur redu #endif } // ----------------- LO's set -------------------------- - TRACE(8) + TRACE(2.5) #ifdef __MCU_CLOCK_SHIFT__ if (setting.mode == M_LOW && !in_selftest) { // Avoid 48MHz spur int set_below = false; @@ -4777,7 +4777,7 @@ again: // Spur redu } } } - TRACE(8); + TRACE(5.5); my_microsecond_delay(my_step_delay); ADF4351_frequency_changed = false; SI4463_frequency_changed = false; @@ -7653,6 +7653,11 @@ void calibrate(void) #ifdef TINYSA4 int old_ultra = config.ultra; config.ultra = true; + freq_t old_correction = config.setting_frequency_30mhz; + config.setting_frequency_30mhz = 3000000000; + ADF4351_recalculate_PFDRFout(); + dirty = true; + // setting.auto_IF = true; // set in selftest // setting.frequency_IF = config.frequency_IF1; // set in selftest float direct_level=0.0; @@ -7688,18 +7693,30 @@ void calibrate(void) setting.rbw_x10 = 3; test_path = 3; // Ultra lna path force_signal_path = true; - set_reflevel(-95); +// set_reflevel(-95); + } else if (i == 4) { +// set_sweep_points(51); + set_sweep_frequency(ST_SPAN, 1000); + set_RBW(100); +// setting.rbw_x10 = 3; + test_path = 3; // Ultra lna path + force_signal_path = true; +// set_reflevel(-95); } else if (i <= 1) { if (i == 1) set_RBW(8500); set_refer_output(5); // 2MHz setting.spur_removal = S_OFF; } else { - set_reflevel(-70); +// set_reflevel(-70); set_refer_output(0); // 30MHz setting.spur_removal = S_AUTO_OFF; } test_acquire(TEST_JUMP); // Acquire test + set_reflevel(actual_t[sweep_points/3]+5); + plot_into_index(measured); + redraw_request |= REDRAW_AREA | REDRAW_CAL_STATUS; + draw_all(TRUE); set_jump_config(i, get_jump_config(i) + measure_jump(i)); calibration_busy(); chThdSleepMilliseconds(500); @@ -7878,6 +7895,7 @@ low_level: setting.below_IF = S_AUTO_OFF; in_calibration = false; #ifdef TINYSA4 + config.setting_frequency_30mhz = old_correction; config.ultra = old_ultra; #endif