New calibration method and TRACE AVERAGE markers

multi_trace
erikkaashoek 5 years ago
parent c54d49c6b9
commit e99047c295

@ -18,7 +18,7 @@
*/ */
#include "ch.h" #include "ch.h"
#ifdef TINYSA_F303 //#ifdef TINYSA_F303
#include "adc_F303.h" #include "adc_F303.h"
#ifdef TINYSA_F072 #ifdef TINYSA_F072
#error "Remove comment for #ifdef TINYSA_F303" #error "Remove comment for #ifdef TINYSA_F303"
@ -27,7 +27,7 @@
#define TINYSA4 #define TINYSA4
#endif #endif
#define TINYSA4_PROTO #define TINYSA4_PROTO
#endif //#endif
#ifdef TINYSA_F072 #ifdef TINYSA_F072
#ifdef TINYSA_F303 #ifdef TINYSA_F303
@ -685,7 +685,7 @@ int shell_serial_printf(const char *fmt, ...);
// marker // marker
enum { enum {
M_NORMAL=0,M_REFERENCE=1, M_DELTA=2, M_NOISE=4, M_STORED=8, M_TRACKING=16, M_DELETE=32 // Tracking must be last. M_NORMAL=0,M_REFERENCE=1, M_DELTA=2, M_NOISE=4, M_STORED=8, M_AVER=16, M_TRACKING=32, M_DELETE=64 // Tracking must be last.
}; };
enum { enum {

@ -288,7 +288,14 @@ marker_to_value(const int i)
ref_marker_levels = stored_t; ref_marker_levels = stored_t;
else else
ref_marker_levels = actual_t; ref_marker_levels = actual_t;
return(value(ref_marker_levels[markers[i].index])); float v = value(ref_marker_levels[markers[i].index]);
if (markers[i].mtype & M_AVER) {
v = 0;
for (int i=0; i<sweep_points; i++)
v += value(ref_marker_levels[i]);
v /= sweep_points;
}
return(v);
} }
#ifdef TINYSA3 #ifdef TINYSA3

@ -5866,7 +5866,6 @@ 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;
in_selftest = true;
#ifdef TINYSA4 #ifdef TINYSA4
setting.test_argument = -7; setting.test_argument = -7;
self_test(0); self_test(0);
@ -5877,13 +5876,25 @@ void calibrate(void)
} }
#endif #endif
reset_calibration(); reset_calibration();
reset_settings(M_LOW);
#ifdef TINYSA4 #ifdef TINYSA4
bool calibrate_lna = false; bool calibrate_lna = false;
again: again:
#endif #endif
for (int k = 0; k<2; k++) { for (int k = 0; k<2; k++) {
for (int j= 0; j < CALIBRATE_RBWS; j++ ) { for (int j= 0; j < CALIBRATE_RBWS; j++ ) {
#if 1
reset_settings(M_LOW);
set_refer_output(0);
set_sweep_frequency(ST_STOP, 60000000);
int test_case = TEST_POWER;
set_extra_lna(calibrate_lna);
set_average(AV_100);
for (int m=1; m<20; m++) {
test_acquire(test_case); // Acquire test
local_test_status = test_validate(test_case);
}
local_test_status = TS_PASS;
#else
// set_RBW(power_rbw[j]); // set_RBW(power_rbw[j]);
// set_sweep_points(21); // set_sweep_points(21);
#if 0 #if 0
@ -5920,6 +5931,7 @@ again:
test_acquire(test_case); // Acquire test test_acquire(test_case); // Acquire test
test_acquire(test_case); // Acquire test test_acquire(test_case); // Acquire test
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
if (k ==0 || k == 1) { if (k ==0 || k == 1) {
if (peakLevel < -50) { if (peakLevel < -50) {
@ -5972,7 +5984,6 @@ again:
} }
#endif #endif
config_save(); config_save();
ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN);
ili9341_drawstring_7x13("Calibration complete", 40, 140); ili9341_drawstring_7x13("Calibration complete", 40, 140);
@ -5983,8 +5994,11 @@ quit:
set_sweep_points(old_sweep_points); set_sweep_points(old_sweep_points);
in_selftest = false; in_selftest = false;
sweep_mode = SWEEP_ENABLE; sweep_mode = SWEEP_ENABLE;
set_refer_output(-1); // set_refer_output(-1);
reset_settings(M_LOW); // reset_settings(M_LOW);
set_extra_lna(false);
set_average(AV_OFF);
} }

@ -2286,6 +2286,7 @@ const menuitem_t menu_marker_modify[] = {
{ MT_ADV_CALLBACK, M_NOISE, "NOISE", menu_marker_modify_acb}, { MT_ADV_CALLBACK, M_NOISE, "NOISE", menu_marker_modify_acb},
{ MT_ADV_CALLBACK, M_TRACKING, "TRACKING", menu_marker_modify_acb}, { MT_ADV_CALLBACK, M_TRACKING, "TRACKING", menu_marker_modify_acb},
{ MT_ADV_CALLBACK, M_STORED, "STORED", menu_marker_modify_acb}, { MT_ADV_CALLBACK, M_STORED, "STORED", menu_marker_modify_acb},
{ MT_ADV_CALLBACK, M_AVER, "TRACE\nAVERAGE", menu_marker_modify_acb},
{ MT_SUBMENU, 0, "SEARCH", menu_marker_search}, { MT_SUBMENU, 0, "SEARCH", menu_marker_search},
{ MT_CALLBACK, M_DELETE, "DELETE", menu_marker_delete_cb}, { MT_CALLBACK, M_DELETE, "DELETE", menu_marker_delete_cb},
{ MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_CANCEL, 0, S_LARROW" BACK", NULL },

Loading…
Cancel
Save

Powered by TurnKey Linux.