|
|
|
|
@ -24,6 +24,7 @@ int setting_tracking = false;
|
|
|
|
|
int setting_modulation = MO_NONE;
|
|
|
|
|
int setting_step_delay = 0;
|
|
|
|
|
int setting_frequency_step;
|
|
|
|
|
int setting_test;
|
|
|
|
|
int setting_harmonic;
|
|
|
|
|
int setting_decay;
|
|
|
|
|
int setting_noise;
|
|
|
|
|
@ -1568,14 +1569,14 @@ static const struct {
|
|
|
|
|
{TC_SIGNAL, TP_10MHZ, 30, 7, -32, 30, -80 }, // 4
|
|
|
|
|
{TC_BELOW, TP_SILENT, 200, 100, -70, 0, 0}, // 5 Wide band noise floor low mode
|
|
|
|
|
{TC_BELOW, TPH_SILENT, 600, 720, -65, 0, 0}, // 6 Wide band noise floor high mode
|
|
|
|
|
{TC_SIGNAL, TP_10MHZEXTRA, 10, 8, -13, 55, -60 }, // 7 BPF loss and stop band
|
|
|
|
|
{TC_SIGNAL, TP_10MHZEXTRA, 10, 8, -20, 80, -60 }, // 7 BPF loss and stop band
|
|
|
|
|
{TC_FLAT, TP_10MHZEXTRA, 10, 4, -18, 20, -60}, // 8 BPF pass band flatness
|
|
|
|
|
{TC_BELOW, TP_30MHZ, 430, 60, -65, 0, -75}, // 9 LPF cutoff
|
|
|
|
|
{TC_SIGNAL, TP_10MHZ_SWITCH,20, 7, -58, 30, -90 }, // 10 Switch isolation
|
|
|
|
|
{TC_END, 0, 0, 0, 0, 0, 0},
|
|
|
|
|
{TC_MEASURE, TP_30MHZ, 30, 7, -22.5, 30, -70 }, // 12 Measure power level and noise
|
|
|
|
|
{TC_MEASURE, TP_30MHZ, 270, 4, -50, 30, -75 }, // 13 Measure powerlevel and noise
|
|
|
|
|
{TC_MEASURE, TPH_30MHZ, 270, 4, -50, 30, -65 }, // 14 Calibrate power high mode
|
|
|
|
|
{TC_MEASURE, TPH_30MHZ, 270, 4, -40, 30, -65 }, // 14 Calibrate power high mode
|
|
|
|
|
{TC_END, 0, 0, 0, 0, 0, 0},
|
|
|
|
|
{TC_MEASURE, TP_30MHZ, 30, 1, -20, 30, -70 }, // 16 Measure RBW step time
|
|
|
|
|
{TC_END, 0, 0, 0, 0, 0, 0},
|
|
|
|
|
@ -1855,14 +1856,13 @@ int add_spur(int f)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void self_test(void)
|
|
|
|
|
void self_test(int test)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
if (test ==1) {
|
|
|
|
|
in_selftest = true; // Spur search
|
|
|
|
|
reset_settings(M_LOW);
|
|
|
|
|
test_prepare(4);
|
|
|
|
|
int f; // Start search at 400kHz
|
|
|
|
|
int f = 400000; // Start search at 400kHz
|
|
|
|
|
// int i = 0; // Index in spur table (temp_t)
|
|
|
|
|
float p2, p1, p;
|
|
|
|
|
|
|
|
|
|
@ -1899,16 +1899,12 @@ void self_test(void)
|
|
|
|
|
if ((int)stored_t[j] > 1)
|
|
|
|
|
shell_printf("%d, %d\n\r", ((int)temp_t[j])/1000, (int)stored_t[j]);
|
|
|
|
|
}
|
|
|
|
|
while(1) ;
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#elif 0 // Attenuator test
|
|
|
|
|
int local_test_status;
|
|
|
|
|
} else if (test == 2) {
|
|
|
|
|
// Attenuator test
|
|
|
|
|
in_selftest = true;
|
|
|
|
|
reset_settings(M_LOW);
|
|
|
|
|
int i = 15; // calibrate attenuator at 30 MHz;
|
|
|
|
|
float reference_peak_level;
|
|
|
|
|
float reference_peak_level = 0;
|
|
|
|
|
test_prepare(i);
|
|
|
|
|
for (int j= 0; j < 32; j++ ) {
|
|
|
|
|
test_prepare(i);
|
|
|
|
|
@ -1916,7 +1912,7 @@ void self_test(void)
|
|
|
|
|
float summed_peak_level = 0;
|
|
|
|
|
for (int k=0; k<10; k++) {
|
|
|
|
|
test_acquire(i); // Acquire test
|
|
|
|
|
local_test_status = test_validate(i); // Validate test
|
|
|
|
|
test_validate(i); // Validate test
|
|
|
|
|
summed_peak_level += peakLevel;
|
|
|
|
|
}
|
|
|
|
|
peakLevel = summed_peak_level / 10;
|
|
|
|
|
@ -1925,9 +1921,8 @@ void self_test(void)
|
|
|
|
|
shell_printf("Target %d, actual %f, delta %f\n\r",j, peakLevel, peakLevel - reference_peak_level);
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
#elif 0
|
|
|
|
|
} else if (test == 3) {
|
|
|
|
|
// RBW step time search
|
|
|
|
|
int local_test_status;
|
|
|
|
|
in_selftest = true;
|
|
|
|
|
reset_settings(M_LOW);
|
|
|
|
|
int i = 15; // calibrate low mode power on 30 MHz;
|
|
|
|
|
@ -1939,7 +1934,7 @@ void self_test(void)
|
|
|
|
|
shell_printf("RBW = %d, ",setting_rbw);
|
|
|
|
|
test_prepare(i);
|
|
|
|
|
test_acquire(i); // Acquire test
|
|
|
|
|
local_test_status = test_validate(i); // Validate test
|
|
|
|
|
test_validate(i); // Validate test
|
|
|
|
|
float saved_peakLevel = peakLevel;
|
|
|
|
|
if (peakLevel < -30) {
|
|
|
|
|
shell_printf("Peak level too low, abort\n\r");
|
|
|
|
|
@ -1952,14 +1947,13 @@ void self_test(void)
|
|
|
|
|
test_prepare(i);
|
|
|
|
|
// shell_printf("\n\rRBW = %f",SI4432_force_RBW(j));
|
|
|
|
|
test_acquire(i); // Acquire test
|
|
|
|
|
local_test_status = test_validate(i); // Validate test
|
|
|
|
|
test_validate(i); // Validate test
|
|
|
|
|
// shell_printf(" Step %f, %d",peakLevel, setting_step_delay);
|
|
|
|
|
}
|
|
|
|
|
setting_step_delay = setting_step_delay * 4 / 3;
|
|
|
|
|
shell_printf("End level = %f, step time = %d\n\r",peakLevel, setting_step_delay);
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
#else
|
|
|
|
|
} else if (test == 0) {
|
|
|
|
|
int old_IF = frequency_IF;
|
|
|
|
|
in_selftest = true;
|
|
|
|
|
menu_autosettings_cb(0);
|
|
|
|
|
@ -1992,7 +1986,7 @@ void self_test(void)
|
|
|
|
|
set_refer_output(0);
|
|
|
|
|
reset_settings(M_LOW);
|
|
|
|
|
in_selftest = false;
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void reset_calibration(void)
|
|
|
|
|
|