Repaired selftest with new attenuation schema

pull/4/head
erikkaashoek 6 years ago
parent 992973eee2
commit 6ac1d9dfdb

@ -305,6 +305,7 @@ void set_auto_attenuation(void)
setting.attenuate = 0;
}
setting.atten_step = false;
dirty = true;
}
void set_auto_reflevel(int v)
@ -1616,6 +1617,7 @@ again:
}
if (!in_selftest && setting.mode == M_LOW && setting.auto_attenuation && max_index[0] > 0) { // Auto attenuate
setting.atten_step = false; // No step attenuate in low mode auto attenuate
float old_attenuate = get_attenuation();
float actual_max_level = actual_t[max_index[0]] - old_attenuate;
if (actual_max_level < - 31 && setting.attenuate >= 10) {
@ -1630,7 +1632,7 @@ again:
PE4302_Write_Byte((int)(setting.attenuate * 2));
SI4432_Sel = 0;
if (setting.atten_step) {
set_switch_transmit();
set_switch_transmit(); // This should never happen
} else {
set_switch_receive();
}
@ -2274,7 +2276,7 @@ static const struct {
{TC_SIGNAL, TP_10MHZEXTRA, 10, 8, -20, 80, -80 }, // 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, -80, 0, -80}, // 9 LPF cutoff
{TC_SIGNAL, TP_10MHZ_SWITCH,20, 7, -58, 30, -95 }, // 10 Switch isolation
{TC_SIGNAL, TP_10MHZ_SWITCH,20, 7, -38, 30, -65 }, // 10 Switch isolation using high attenuation
{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
@ -2494,7 +2496,7 @@ void test_prepare(int i)
setting.atten_step = false;
setting.frequency_IF = 433800000; // Default frequency
setting.auto_IF = true;
set_attenuation(0.0);
setting.auto_attenuation = false;
switch(test_case[i].setup) { // Prepare test conditions
case TPH_SILENT: // No input signal
set_mode(M_HIGH);
@ -2509,7 +2511,6 @@ common_silent:
case TP_10MHZ_SWITCH:
set_mode(M_LOW);
set_refer_output(2);
setting.atten_step = true;
goto common;
case TP_10MHZEXTRA: // Swept receiver
set_mode(M_LOW);
@ -2547,8 +2548,13 @@ common_silent:
set_refer_output(0);
goto common;
}
setting.auto_attenuation = false;
setting.attenuate = 0;
switch(test_case[i].setup) { // Prepare test conditions
case TP_10MHZ_SWITCH:
set_attenuation(32); // This forces the switch to transmit so isolation can be tested
break;
default:
set_attenuation(0.0);
}
trace[TRACE_STORED].enabled = true;
set_reflevel(test_case[i].pass+10);
set_sweep_frequency(ST_CENTER, (int32_t)(test_case[i].center * 1000000));

Loading…
Cancel
Save

Powered by TurnKey Linux.