pull/94/head
erikkaashoek 2 years ago
parent 1806825b38
commit dbc78b7fac

@ -1151,12 +1151,12 @@ const int to_calibrate[5] = {8,9,10,11,12};
#ifdef TINYSA4
const freq_t v5_2_correction_frequency[CORRECTION_SIZE][CORRECTION_POINTS]=
{
/* low */ { 100000, 300000, 600000, 2000000, 3000000, 30000000, 60000000, 80000000, 120000000, 150000000, 230000000, 360000000, 520000000, 560000000, 640000000, 750000000, 800000000, 810000000, 820000000, 830000000},
/* low lna */ { 100000, 300000, 1000000, 5000000, 40000000, 70000000, 180000000, 210000000, 240000000, 250000000, 270000000, 300000000, 330000000, 540000000, 650000000, 740000000, 790000000, 810000000, 820000000, 830000000},
/* ultra */ { 30000000, 700000000, 980000000, 1910000000, 2550000000, 2800000000, 2810000000, 3020000000, 3120000000, 3430000000, 3750000000, 4230000000, 4480000000, 4810000000, 5430000000, 5640000000, 6390000000, 6660000000, 6980000000, 7250000000},
/* ultra lna */ { 30000000, 700000000, 1130000000, 1840000000, 2490000000, 2800000000, 2810000000, 3110000000, 3500000000, 3940000000, 4480000000, 4610000000, 4940000000, 5450000000, 6030000000, 6200000000, 6580000000, 6650000000, 7150000000, 7250000000},
/* direct */ { 140000000, 150000000, 160000000, 180000000, 280000000, 290000000, 300000000, 330000000, 340000000, 350000000, 410000000, 480000000, 560000000, 823000000, 830000000, 850000000, 890000000, 950000000, 1090000000, 1120000000},
/* direct lna */ { 140000000, 150000000, 170000000, 180000000, 280000000, 290000000, 310000000, 370000000, 440000000, 470000000, 480000000, 560000000, 823000000, 830000000, 850000000, 890000000, 950000000, 1040000000, 1090000000, 1120000000, },
/* low */ { 100000, 500000, 8000000, 40000000, 60000000, 70000000, 110000000, 300000000, 330000000, 420000000, 450000000, 460000000, 510000000, 560000000, 620000000, 710000000, 760000000, 800000000, 810000000, 830000000},
/* low lna */ { 100000, 200000, 400000, 700000, 1000000, 2000000, 4000000, 30000000, 50000000, 210000000, 240000000, 260000000, 270000000, 300000000, 330000000, 510000000, 720000000, 790000000, 820000000, 830000000},
/* ultra */ { 30000000, 700000000, 1900000000, 2600000000, 2800000000, 2850000000, 3200000000, 3750000000, 4300000000, 4600000000, 4900000000, 5000000000, 5300000000, 5600000000, 5750000000, 6000000000, 6450000000, 6700000000, 7050000000, 7250000000},
/* ultra lna */ { 30000000, 700000000, 2050000000, 2300000000, 2600000000, 2800000000, 2900000000, 3100000000, 3550000000, 3850000000, 4400000000, 4800000000, 5000000000, 5200000000, 5400000000, 6000000000, 6200000000, 6450000000, 6550000000, 7250000000},
/* direct */ { 140000000, 160000000, 180000000, 280000000, 300000000, 400000000, 420000000, 430000000, 510000000, 560000000, 823000000, 880000000, 930000000, 940000000, 960000000, 990000000, 1060000000, 1080000000, 1110000000, 1130000000},
/* direct lna */ { 140000000, 180000000, 280000000, 300000000, 330000000, 400000000, 410000000, 430000000, 460000000, 470000000, 490000000, 550000000, 560000000, 823000000, 850000000, 870000000, 940000000, 960000000, 980000000, 1130000000, },
/* harm */ { 30000000, 6000000000, 6195991091, 6302895323, 6400890869, 6899777283, 7104677060, 7398663697, 7701559020, 7799554566, 8200445434, 8298440980, 8503340757, 8904231626, 9002227171, 9100222717, 9198218263, 9296213808, 9501113586, 9804008909, },
/* harm lna */ { 30000000, 6000000000, 6097995546, 6204899777, 6498886414, 6596881960, 6801781737, 7496659243, 7701559020, 7995545657, 8102449889, 8298440980, 8396436526, 8699331849, 8904231626, 9100222717, 9198218263, 9403118040, 9697104677, 10000000000, },
/* out */ { 10000, 30000, 100000, 200000, 600000, 5000000, 170000000, 250000000, 300000000, 390000000, 490000000, 650000000, 690000000, 740000000, 780000000, 800000000, 810000000, 820000000, 823000000, 830000000, },
@ -1167,12 +1167,12 @@ const freq_t v5_2_correction_frequency[CORRECTION_SIZE][CORRECTION_POINTS]=
const float v5_2_correction_value[CORRECTION_SIZE][CORRECTION_POINTS]=
{
/* low */ { 2.39, 1.18, 1.2, 0.33, 0.87, 0.4, 1.24, 0.64, 0.99, 0.35, 0.04, 0.88, -0.64, -0.2, -0.36, 0.4, 3.45, 4.8, 8.04, 13.94, },
/* low lna */ { 5.48, 0.9, -1.57, -3.5, 1.8, 2.47, 2.75, 4.08, 8.47, 9.22, 6.07, 4.54, 4.56, 3.73, 3.77, 4.9, 7.06, 9.11, 12.48, 19.18, },
/* ultra */ { -0.01, -0.42, -0.53, 0.38, 1.65, 1.35, 2.24, 2.96, 2.88, 4.4, 4.85, 5.43, 7.64, 8.82, 8.2, 11.3, 12.94, 15.53, 22.44, 29.28, },
/* ultra lna */ { 0.65, 4.24, 4.91, 5.15, 7.38, 6.29, 7.14, 7.09, 10.38, 10.66, 12.3, 11.71, 14.07, 13.1, 19, 19.03, 16.03, 16.88, 32.09, 34.59, },
/* direct */ { 34.02, 31.94, 30.89, 28.88, 20.1, 20.23, 19.04, 18.06, 16.75, 16.94, 13.39, 10.63, 7.2, -1.19, -1.19, -1.29, -1, -0.0399999999999991, 3.04, 4.03, },
/* direct lna */ { 29.65, 28.51, 26.73, 25.82, 19.67, 18.67, 16.64, 13.81, 9.73, 7.62, 7.57, 4.58, -3.66, -3.66, -3.67, -3.68, -2.48, -0.379999999999999, 0.859999999999999, 1.53, },
/* low */ { 2.88, 1.06, 0.9, 0.85, 1.3, 0.72, 0.8, 0.53, 1.03, 0.81, 0.55, 0.05, -0.06, 0.18, -0.28, 0.61, 0.98, 2.89, 3.89, 7.37, },
/* low lna */ { 6.07, 2.97, 0.76, -0.73, -1.37, -2.36, -2.92, 1.36, 2.67, 3.52, 6.12, 9.45, 9.54, 5.97, 4.72, 3.88, 4.51, 6.38, 9.34, 11.81, },
/* ultra */ { 0.8, -0.28, 0.73, 2.69, 2.03, 3.31, 3.66, 5.8, 6.23, 9.6, 9.98, 9.93, 9.51, 12.2, 12.78, 11.56, 15.13, 18.42, 26.5, 32.3, },
/* ultra lna */ { 1.55, 4.69, 6.26, 7.85, 8.56, 7.06, 8.14, 8.05, 11.61, 11.11, 13, 16.08, 15.89, 14.81, 14.94, 19.78, 20.41, 19.04, 19.28, 38, },
/* direct */ { 34.6, 32.01, 29.84, 21.67, 20.24, 14.92, 14.41, 13.69, 10.25, 8.75, -0.01, -0.14, 0.69, 1.18, 1.19, 1.94, 3.52, 4.36, 5.11, 5.69, },
/* direct lna */ { 30.57, 26.24, 22.57, 18.99, 16.02, 12.32, 12.31, 11.59, 10.08, 9.92, 8.18, 5.66, 5.68, -2.2, -2.65, -2.68, -1.79, -0.94, -0.89, 3.09, },
/* harm */ { 18.7, 18.91, 19.91, 19.41, 19.91, 21.91, 22.41, 23.91, 26.91, 28.41, 34.41, 36.41, 37.91, 35.94, 35.94, 36.9, 38.44, 40.94, 44.94, 48.94, },
/* harm lna */ { 13.6, 24.41, 23.41, 23.41, 19.91, 19.41, 21.91, 27.41, 31.91, 39.91, 41.91, 43.41, 42.91, 38.91, 40.91, 44.41, 47.91, 57.91, 61.41, 61.46, },
/* out */ { 3.84, 2.31, 1.04, 0.1, -0.82, -1.51, -2.33, -2.25, -2.04, -1.43, -2.2, -2.36, -1.84, -1.23, 0.51, 1.8, 3.17, 6.28, 7.85, 12.37, },
@ -1786,10 +1786,10 @@ show_one:
do_one = true;
goto show_one;
}
#if MAX_UNIT_TYPE != 6
#if MAX_UNIT_TYPE != 7
#error "Unit type enum possibly changed, check cmd_trace function"
#endif
static const char cmd_type_list[] = "dBm|dBmV|dBuV|RAW|V|W";
static const char cmd_type_list[] = "dBm|dBmV|dBuV|RAW|V|Vpp|W";
if (argc == 1) {
int type = get_str_index(argv[0], cmd_type_list);
if (type >= 0) {
@ -2851,7 +2851,7 @@ void set_freq_boundaries(void) {
MIN_BELOW_IF_FREQ = 2310000000ULL + config.overclock; // Range to use for below IF
} else {
MAX_LO_FREQ = 4350000000ULL + config.overclock;
MAX_ABOVE_IF_FREQ = 3360000000ULL + config.overclock; // Range to use for below IF
MAX_ABOVE_IF_FREQ = 3030000000ULL + config.overclock; // Range to use for below IF
MIN_BELOW_IF_FREQ = 2310000000ULL + config.overclock; // Range to use for below IF
}
set_jump_freq( MAX_ABOVE_IF_FREQ, (config.harmonic_start?config.harmonic_start:ULTRA_MAX_FREQ), MIN_BELOW_IF_FREQ);

@ -757,9 +757,9 @@ enum trace_type {
// Electrical Delay
// Phase
#define MAX_UNIT_TYPE 6 // Index of U_DBC
#define MAX_UNIT_TYPE 7 // Index of U_DBC
enum unit_type {
U_DBM=0, U_DBMV, U_DBUV, U_RAW, U_VOLT, U_WATT, U_DBC // dBc only for displaying delta marker info
U_DBM=0, U_DBMV, U_DBUV, U_RAW, U_VOLT, U_VPP, U_WATT, U_DBC // dBc only for displaying delta marker info
};
#define UNIT_IS_LINEAR(T) ( T >= U_VOLT ? true : false)
@ -1466,7 +1466,7 @@ typedef struct properties {
//sizeof(properties_t) == 0x1200
#define CONFIG_MAGIC 0x434f4e65 /* 'CONF' */
#define CONFIG_MAGIC 0x434f4e66 /* 'CONF' */
#define SETTING_MAGIC 0x434f4e65
extern int16_t lastsaveid;

@ -397,6 +397,9 @@ value(const float v)
case U_VOLT:
// return powf(10.0, (v-30.0)/20.0) * sqrtf(50.0); // powf(10.0, v /20.0) * powf(10, -30.0/20.0) * sqrtf(50)
return expf(v*(logf(10.0)/20.0)) * (powf(10, -30.0/20.0)*sqrtf(50));// expf(v*logf(10.0)/20.0) * powf(10, -30.0/20.0) * sqrtf(50)
case U_VPP:
// return powf(10.0, (v-30.0)/20.0) * sqrtf(50.0); // powf(10.0, v /20.0) * powf(10, -30.0/20.0) * sqrtf(50)
return 2.88 * expf(v*(logf(10.0)/20.0)) * (powf(10, -30.0/20.0)*sqrtf(50));// expf(v*logf(10.0)/20.0) * powf(10, -30.0/20.0) * sqrtf(50)
case U_WATT:
// return powf(10.0, v/10.0)/1000.0; // powf(10.0, v /10.0) / 1000.0
return expf(v*(logf(10.0)/10.0)) / 1000.0; // expf(v*logf(10.0)/10.0) / 1000.0
@ -418,6 +421,9 @@ to_dBm(const float v)
case U_VOLT:
// return log10f(v/(sqrtf(50.0)))* 20.0 + 30.0;
return logf(v/(sqrtf(50.0)))*(20.0/logf(10.0)) + 30.0;
case U_VPP:
// return log10f(v/(sqrtf(50.0)))* 20.0 + 30.0;
return logf((v/2.88)/(sqrtf(50.0)))*(20.0/logf(10.0)) + 30.0;
case U_WATT:
// return log10f(v*1000.0)* 10.0;
return logf(v*1000.0)*(10.0/logf(10.0));
@ -480,6 +486,7 @@ trace_into_index_y_array(index_y_t *y, float *array, int points)
case U_DBMV: ref_shift = 30.0 + 20.0*log10f(sqrtf(50.0));break;
case U_DBUV: ref_shift = 90.0 + 20.0*log10f(sqrtf(50.0));break;
case U_VOLT: vmult = powf(10, -30.0/20.0) * sqrtf(50.0); mult = logf(10.0)/20.0;break;
case U_VPP: vmult = 2.88* powf(10, -30.0/20.0) * sqrtf(50.0); mult = logf(10.0)/20.0;break;
case U_WATT: vmult = 1.0/1000.0; mult = logf(10.0)/10.0;break;
default:
return;

@ -100,7 +100,7 @@ static long real_offset = 0;
static float old_temp = 0.0;
static int LO_spur_shifted;
static int LO_mirrored;
static volatile int LO_shifting;
static int LO_shifting;
void clear_frequency_cache(void)
{
@ -4636,7 +4636,7 @@ again: // Spur redu
if (delta < actual_rbw_x10*100)
spur = '!';
}
char shifted = ( LO_spur_shifted ? '>' : ' ');
char shifted = (LO_shifting ? '/' : ( LO_spur_shifted ? '>' : ' '));
if (SDU1.config->usbp->state == USB_ACTIVE)
shell_printf ("%d:%c%c%c%cLO=%11.6Lq:%11.6Lq\tIF=%11.6Lq:%11.6Lq\tOF=%11.6d\tF=%11.6Lq:%11.6Lq\tD=%.2f:%.2f %c%c%c %d R=%d mod=%d, d=%d\r\n",
i, spur, shifted,(LO_mirrored ? 'm' : ' '), (LO_harmonic ? 'h':' ' ),

@ -1117,7 +1117,7 @@ const uint8_t right_icons [] =
#define KP_n 23
#define KP_p 24
#define KP_ENTER 25
#define KP_EMPTY 26
#define KP_EMPTY 99
#define KP_0 31
#define KP_1 32
@ -5101,7 +5101,8 @@ static const menuitem_t menu_unit[] =
{ MT_ADV_CALLBACK,U_DBM, "dBm", menu_unit_acb},
{ MT_ADV_CALLBACK,U_DBMV, "dBmV", menu_unit_acb},
{ MT_ADV_CALLBACK,U_DBUV, "dB"S_MICRO"V", menu_unit_acb},
{ MT_ADV_CALLBACK,U_VOLT, "Volt", menu_unit_acb},
{ MT_ADV_CALLBACK,U_VOLT, "Vrms", menu_unit_acb},
{ MT_ADV_CALLBACK,U_VPP, "Vpp", menu_unit_acb},
//{ MT_ADV_CALLBACK,U_UVOLT, S_MICRO"Volt", menu_unit_acb},
{ MT_ADV_CALLBACK,U_WATT, "Watt", menu_unit_acb},
//{ MT_ADV_CALLBACK,U_UWATT, S_MICRO"Watt", menu_unit_acb},
@ -5881,7 +5882,7 @@ float my_round(float v)
}
return v;
}
const char * const unit_string[MAX_UNIT_TYPE*2] = { "dBm", "dBmV", "dB"S_MICRO"V", "RAW", "V", "W", "dB", "dB", "dB", "RAW", "V", "W" }; // unit + 6 is delta unit
const char * const unit_string[MAX_UNIT_TYPE*2] = { "dBm", "dBmV", "dB"S_MICRO"V", "RAW", "Vrms", "Vpp", "W", "dB", "dB", "dB", "RAW", "Vrms", "Vpp", "W" }; // unit + 6 is delta unit
//static const float scale_value[]={50000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20,10,5,2,1,0.5,0.2,0.1,0.05,0.02,0.01,0.005,0.002, 0.001,0.0005,0.0002, 0.0001};
//static const char * const scale_vtext[]= {"50000", "20000", "10000", "5000", "2000", "1000", "500", "200", "100", "50", "20","10","5","2","1","0.5","0.2","0.1","0.05","0.02","0.01", "0.005","0.002","0.001", "0.0005","0.0002","0.0001"};

Loading…
Cancel
Save

Powered by TurnKey Linux.