Update calibrate and default leveloffset direct

pull/34/head
erikkaashoek 3 years ago
parent 20d5c3e6f9
commit 5f2de91cf3

@ -1172,7 +1172,7 @@ static DSTATUS Stat = STA_NOINIT; // Disk Status
static uint8_t CardType = 0; // Type 0:MMC, 1:SDC, 2:Block addressing static uint8_t CardType = 0; // Type 0:MMC, 1:SDC, 2:Block addressing
// Debug functions, 0 to disable // Debug functions, 0 to disable
#define DEBUG 1 #define DEBUG 0
int shell_printf(const char *fmt, ...); int shell_printf(const char *fmt, ...);
#define DEBUG_PRINT(...) do { if (DEBUG) shell_printf(__VA_ARGS__); } while (0) #define DEBUG_PRINT(...) do { if (DEBUG) shell_printf(__VA_ARGS__); } while (0)
#if DEBUG == 1 #if DEBUG == 1

@ -996,7 +996,7 @@ config_t config = {
.drive1_level_offset = 0, .drive1_level_offset = 0,
.drive2_level_offset = -1.5, .drive2_level_offset = -1.5,
.drive3_level_offset = -0.5, .drive3_level_offset = -0.5,
.direct_level_offset = 0.0, // Uncalibrated .direct_level_offset = 30.0, // Uncalibrated
.ultra_level_offset = 0.0, // Uncalibrated .ultra_level_offset = 0.0, // Uncalibrated
.direct_lna_level_offset = 0, .direct_lna_level_offset = 0,
.ultra_lna_level_offset = 0, .ultra_lna_level_offset = 0,

@ -6488,9 +6488,9 @@ common_silent:
saved_direct = config.direct; saved_direct = config.direct;
config.direct = true; config.direct = true;
saved_direct_start = config.direct_start; saved_direct_start = config.direct_start;
config.direct_start = 965000000; config.direct_start = 900000000;
saved_direct_stop = config.direct_stop; saved_direct_stop = config.direct_stop;
config.direct_stop = 1000000000; config.direct_stop = 1100000000;
break; break;
case TP_SILENT_LNA: case TP_SILENT_LNA:
case TP_30MHZ_LNA: case TP_30MHZ_LNA:
@ -7343,7 +7343,7 @@ float get_jump_config(int i) {
} }
enum {CS_NORMAL, CS_LNA, CS_SWITCH, CS_ULTRA, CS_ULTRA_LNA, CS_DIRECT_REF, CS_DIRECT, CS_DIRECT_LNA, CS_MAX }; enum {CS_NORMAL, CS_LNA, CS_SWITCH, CS_ULTRA, CS_ULTRA_LNA, CS_DIRECT_REF, CS_DIRECT, CS_DIRECT_LNA, CS_MAX };
#define DRIRECT_CAL_FREQ 990000000 // 990MHz #define DRIRECT_CAL_FREQ 990000000 // 960MHz
#define ULTRA_HARMONIC_CAL_FREQ 5340000000 #define ULTRA_HARMONIC_CAL_FREQ 5340000000
#else #else
enum {CS_NORMAL, CS_SWITCH, CS_MAX }; enum {CS_NORMAL, CS_SWITCH, CS_MAX };
@ -7412,6 +7412,7 @@ void calibrate(void)
{ {
int local_test_status; int local_test_status;
int old_sweep_points = setting._sweep_points; int old_sweep_points = setting._sweep_points;
reset_calibration();
#ifdef TINYSA4 #ifdef TINYSA4
int old_ultra = config.ultra; int old_ultra = config.ultra;
// setting.auto_IF = true; // set in selftest // setting.auto_IF = true; // set in selftest
@ -7426,6 +7427,8 @@ void calibrate(void)
setting.frequency_IF = config.frequency_IF1; setting.frequency_IF = config.frequency_IF1;
fill_spur_table(); fill_spur_table();
} }
if (peakLevel < -40 || peakLevel > -30)
goto low_level;
#if 1 // Jump calibration not yet enabled #if 1 // Jump calibration not yet enabled
//for (int j = 0; j < CALIBRATE_RBWS; j++) { //for (int j = 0; j < CALIBRATE_RBWS; j++) {
// set_RBW(power_rbw[j]); // set_RBW(power_rbw[j]);
@ -7473,7 +7476,6 @@ void calibrate(void)
#endif #endif
#endif #endif
reset_calibration();
in_calibration = true; in_calibration = true;
for (calibration_stage = CS_NORMAL; calibration_stage < CS_MAX ; calibration_stage++) { for (calibration_stage = CS_NORMAL; calibration_stage < CS_MAX ; calibration_stage++) {
for (int k = 0; k<3; k++) { for (int k = 0; k<3; k++) {
@ -7593,16 +7595,17 @@ void calibrate(void)
local_test_status = test_validate(test_case); // Validate test also sets attenuation if zero span local_test_status = test_validate(test_case); // Validate test also sets attenuation if zero span
#endif #endif
#endif #endif
if (calibration_stage == CS_NORMAL && peakLevel < -50) { if (calibration_stage == CS_NORMAL && peakLevel < -40) {
low_level:
ili9341_set_foreground(LCD_BRIGHT_COLOR_RED); ili9341_set_foreground(LCD_BRIGHT_COLOR_RED);
ili9341_drawstring_7x13("Signal level too low", 30, 200); ili9341_drawstring_7x13("Signal level incorrect", 30, 200);
ili9341_drawstring_7x13("Check cable between High and Low connectors", 30, 220); ili9341_drawstring_7x13("Check cable between connectors", 30, 220);
goto quit; goto quit;
} }
// chThdSleepMilliseconds(1000); // chThdSleepMilliseconds(1000);
if (local_test_status != TS_PASS) { if (local_test_status != TS_PASS) {
ili9341_set_foreground(LCD_BRIGHT_COLOR_RED); ili9341_set_foreground(LCD_BRIGHT_COLOR_RED);
ili9341_drawstring_7x13("Calibration failed", 30, 200); ili9341_drawstring_7x13("Calibration failed", 30, 220);
goto quit; goto quit;
} }
#ifdef TINYSA4 #ifdef TINYSA4
@ -7661,9 +7664,9 @@ void calibrate(void)
config.input_is_calibrated = true; config.input_is_calibrated = true;
config_save(); config_save();
ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN);
ili9341_drawstring_7x13("Calibration complete", 40, 200); ili9341_drawstring_7x13("Calibration complete", 40, 220);
quit: quit:
ili9341_drawstring_7x13("Touch screen to continue", 40, 220); ili9341_drawstring_7x13("Touch screen to continue", 40, 240);
wait_user(); wait_user();
ili9341_clear_screen(); ili9341_clear_screen();
set_sweep_points(old_sweep_points); set_sweep_points(old_sweep_points);

Loading…
Cancel
Save

Powered by TurnKey Linux.