Merge branch 'master' of https://github.com/erikkaashoek/tinySA into DiSlord_test_branch

pull/4/head
DiSlord 6 years ago
commit f491e4b39b

@ -869,6 +869,7 @@ int SI4432_is_fast_mode(void);
void SI4432_Set_Frequency ( uint32_t Freq ); void SI4432_Set_Frequency ( uint32_t Freq );
uint16_t SI4432_SET_RBW(uint16_t WISH); uint16_t SI4432_SET_RBW(uint16_t WISH);
void SI4432_SetReference(int freq); void SI4432_SetReference(int freq);
extern uint16_t SI4432_force_RBW(int i);
// Speed profile definition // Speed profile definition
#define START_PROFILE systime_t time = chVTGetSystemTimeX(); #define START_PROFILE systime_t time = chVTGetSystemTimeX();

@ -782,19 +782,21 @@ void calculate_step_delay(void)
{ {
if (setting.step_delay_mode == SD_MANUAL || setting.step_delay != 0) { // The latter part required for selftest 3 if (setting.step_delay_mode == SD_MANUAL || setting.step_delay != 0) { // The latter part required for selftest 3
SI4432_step_delay = setting.step_delay; SI4432_step_delay = setting.step_delay;
if (setting.offset_delay != 0) // Override if set
SI4432_offset_delay = setting.offset_delay;
} else { } else {
SI4432_offset_delay = 0; SI4432_offset_delay = 0;
if (setting.frequency_step == 0.0) { // zero span mode, not dependent on selected RBW if (setting.frequency_step == 0.0) { // zero span mode, not dependent on selected RBW
SI4432_step_delay = 0; SI4432_step_delay = 0;
} else { } else {
if (actual_rbw_x10 >= 1910) { SI4432_step_delay = 280; SI4432_offset_delay = 200; } if (actual_rbw_x10 >= 1910) { SI4432_step_delay = 280; SI4432_offset_delay = 100; }
else if (actual_rbw_x10 >= 1420) { SI4432_step_delay = 350; SI4432_offset_delay = 200; } else if (actual_rbw_x10 >= 1420) { SI4432_step_delay = 350; SI4432_offset_delay = 100; }
else if (actual_rbw_x10 >= 750) { SI4432_step_delay = 450; SI4432_offset_delay = 200; } else if (actual_rbw_x10 >= 750) { SI4432_step_delay = 450; SI4432_offset_delay = 100; }
else if (actual_rbw_x10 >= 560) { SI4432_step_delay = 650; SI4432_offset_delay = 200; } else if (actual_rbw_x10 >= 560) { SI4432_step_delay = 650; SI4432_offset_delay = 100; }
else if (actual_rbw_x10 >= 370) { SI4432_step_delay = 700; SI4432_offset_delay = 200; } else if (actual_rbw_x10 >= 370) { SI4432_step_delay = 700; SI4432_offset_delay = 100; }
else if (actual_rbw_x10 >= 180) { SI4432_step_delay = 1100; SI4432_offset_delay = 250; } else if (actual_rbw_x10 >= 180) { SI4432_step_delay = 1100; SI4432_offset_delay = 200; }
else if (actual_rbw_x10 >= 90) { SI4432_step_delay = 1700; SI4432_offset_delay = 400; } else if (actual_rbw_x10 >= 90) { SI4432_step_delay = 1700; SI4432_offset_delay = 400; }
else if (actual_rbw_x10 >= 50) { SI4432_step_delay = 3300; SI4432_offset_delay = 800; } else if (actual_rbw_x10 >= 50) { SI4432_step_delay = 3300; SI4432_offset_delay = 400; }
else { SI4432_step_delay = 6400; SI4432_offset_delay =1600; } else { SI4432_step_delay = 6400; SI4432_offset_delay =1600; }
if (setting.step_delay_mode == SD_PRECISE) // In precise mode wait twice as long for RSSI to stabalize if (setting.step_delay_mode == SD_PRECISE) // In precise mode wait twice as long for RSSI to stabalize
SI4432_step_delay *= 2; SI4432_step_delay *= 2;
@ -2798,7 +2800,7 @@ common_silent:
} }
extern void menu_autosettings_cb(int item); extern void menu_autosettings_cb(int item);
extern float SI4432_force_RBW(int i);
int last_spur = 0; int last_spur = 0;
int add_spur(int f) int add_spur(int f)
@ -2949,10 +2951,13 @@ do_again:
setting.step_delay_mode = SD_NORMAL; setting.step_delay_mode = SD_NORMAL;
setting.step_delay = setting.step_delay * 5 / 4; setting.step_delay = setting.step_delay * 5 / 4;
setting.rbw_x10 = SI4432_force_RBW(j); setting.rbw_x10 = SI4432_force_RBW(j);
shell_printf("RBW = %d, ",setting.rbw_x10/10); shell_printf("RBW = %f, ",setting.rbw_x10/10.0);
set_sweep_frequency(ST_SPAN, (uint32_t)(setting.rbw_x10 * 20000)); if (setting.rbw_x10 < 1000)
set_sweep_frequency(ST_SPAN, (uint32_t)(setting.rbw_x10 * 5000));
else
set_sweep_frequency(ST_SPAN, (uint32_t)(18000000));
setting.repeat = 10; // setting.repeat = 10;
test_acquire(i); // Acquire test test_acquire(i); // Acquire test
test_validate(i); // Validate test test_validate(i); // Validate test
if (test_value == 0) { if (test_value == 0) {
@ -2965,17 +2970,19 @@ do_again:
// shell_printf("Peak level too low, abort\n\r"); // shell_printf("Peak level too low, abort\n\r");
// return; // return;
// } // }
#if 0 #if 1
shell_printf("Start level = %f, ",peakLevel); shell_printf("Start level = %f, ",peakLevel);
while (setting.step_delay > 10 && test_value != 0 && test_value > saved_peakLevel - 0.5) { while (setting.step_delay > 10 && test_value != 0 && test_value > saved_peakLevel - 0.5) {
test_prepare(i); test_prepare(i);
setting.spur = 0; setting.spur = 0;
setting.step_delay_mode = SD_NORMAL; setting.step_delay_mode = SD_NORMAL;
setting.step_delay = setting.step_delay * 4 / 5; setting.step_delay = setting.step_delay * 4 / 5;
// shell_printf("\n\rRBW = %f",SI4432_force_RBW(j)); if (setting.rbw_x10 < 1000)
set_sweep_frequency(ST_SPAN, (uint32_t)(setting.rbw_x10 * 5000)); set_sweep_frequency(ST_SPAN, (uint32_t)(setting.rbw_x10 * 5000));
else
set_sweep_frequency(ST_SPAN, (uint32_t)(18000000));
setting.repeat = 10; // setting.repeat = 10;
test_acquire(i); // Acquire test test_acquire(i); // Acquire test
test_validate(i); // Validate test test_validate(i); // Validate test
// shell_printf(" Step %f, %d",peakLevel, setting.step_delay); // shell_printf(" Step %f, %d",peakLevel, setting.step_delay);
@ -2994,9 +3001,11 @@ do_again:
setting.step_delay_mode = SD_FAST; setting.step_delay_mode = SD_FAST;
setting.offset_delay /= 2; setting.offset_delay /= 2;
setting.spur = 0; setting.spur = 0;
// shell_printf("\n\rRBW = %f",SI4432_force_RBW(j)); if (setting.rbw_x10 < 1000)
set_sweep_frequency(ST_SPAN, (uint32_t)(setting.rbw_x10 * 20000)); // 200 times RBW set_sweep_frequency(ST_SPAN, (uint32_t)(setting.rbw_x10 * 5000)); // 50 times RBW
setting.repeat = 10; else
set_sweep_frequency(ST_SPAN, (uint32_t)(18000000)); // Limit to 18MHz
// setting.repeat = 10;
test_acquire(i); // Acquire test test_acquire(i); // Acquire test
test_validate(i); // Validate test test_validate(i); // Validate test
// shell_printf(" Step %f, %d",peakLevel, setting.step_delay); // shell_printf(" Step %f, %d",peakLevel, setting.step_delay);

Loading…
Cancel
Save

Powered by TurnKey Linux.