diff --git a/NANOVNA_STM32_F303/adc.c b/NANOVNA_STM32_F303/adc.c index 9691b80..be96195 100644 --- a/NANOVNA_STM32_F303/adc.c +++ b/NANOVNA_STM32_F303/adc.c @@ -46,6 +46,17 @@ static const ADCConversionGroup adcgrpcfgVBAT = { {ADC_SQR1_SQ1_N(ADC_CHANNEL_IN17) | ADC_SQR1_SQ2_N(ADC_CHANNEL_IN18)/*| ADC_SQR1_SQ3_N(ADC_CHANNEL_IN16)*/, 0, 0, 0} // CHSELR }; +static const ADCConversionGroup adcgrpcfgVersion = { + FALSE, + 1, + NULL, + NULL, + ADC_CFGR1_RES_12BIT, // CFGR1 + ADC_TR(0, 0), // ADC watchdog threshold TR1 + {ADC_SMPR1_SMP_AN1(ADC_TOUCH_XY_SMP_TIME), 0}, /* SMPR[2] */ + {ADC_SQR1_SQ1_N(ADC_CHANNEL_IN1), 0, 0, 0} /* SQR[4] */ +}; + static const ADCConversionGroup adcgrpcfgTouch = { TRUE, // Enables the circular buffer mode for the group. 1, // Number of the analog channels belonging to the conversion group. @@ -91,6 +102,16 @@ uint16_t adc_single_read(uint32_t chsel) return(samples[0]); } +uint16_t adc1_single_read(uint32_t chsel) +{ + /* ADC setup */ +// adcStart(&ADCD2, NULL); + adcgrpcfgXY.sqr[0] = ADC_SQR1_SQ1_N(ADC_CHANNEL_IN1); + adcConvert(&ADCD1, &adcgrpcfgVersion, samples, 1); + return(samples[0]); +} + + int16_t adc_vbat_read(void) { // Vbat measure averange count = 2^VBAT_AVERAGE diff --git a/NANOVNA_STM32_F303/board.h b/NANOVNA_STM32_F303/board.h index df08598..6d7359c 100644 --- a/NANOVNA_STM32_F303/board.h +++ b/NANOVNA_STM32_F303/board.h @@ -147,7 +147,7 @@ * PA13 - SWDIO (alternate 0). * PA14 - SWCLK (alternate 0). */ -#define VAL_GPIOA_MODER (PIN_MODE_OUTPUT(0U) | \ +#define VAL_GPIOA_MODER (PIN_MODE_ANALOG(0U) | \ PIN_MODE_INPUT(1U) | \ PIN_MODE_INPUT(2U) | \ PIN_MODE_INPUT(3U) | \ diff --git a/main.c b/main.c index 1a7bbbf..67675b5 100644 --- a/main.c +++ b/main.c @@ -1394,6 +1394,21 @@ VNA_SHELL_FUNCTION(cmd_trace) } goto usage; } + static const char cmd_load_list[] = "load"; + if (argc == 3) { + switch (get_str_index(argv[0], cmd_load_list)) { + case 0: + { + int i = my_atoi(argv[1]); + if (i>= sweep_points) + goto usage; + float v = my_atof(argv[2]); + stored_t[i] = v; + goto update; + } + } + goto usage; + } update: redraw_request |= REDRAW_CAL_STATUS; return; @@ -1564,7 +1579,7 @@ VNA_SHELL_FUNCTION(cmd_version) { (void)argc; (void)argv; - shell_printf("%s\r\n", TINYSA_VERSION); + shell_printf("%s\r\nHW Version:%d\r\n", TINYSA_VERSION, adc1_single_read(0)); } VNA_SHELL_FUNCTION(cmd_vbat) diff --git a/ui.c b/ui.c index c30172e..1e4d556 100644 --- a/ui.c +++ b/ui.c @@ -508,6 +508,9 @@ show_version(void) do {shift>>=1; y+=5;} while (shift&1); ili9341_drawstring_7x13(info_about[i++], x, y+=bFONT_STR_HEIGHT+2-5); } + char buf[96]; + plot_printf(buf, sizeof(buf), "HW Version:%d", adc1_single_read(0)); + ili9341_drawstring_7x13(buf, x, y+=bFONT_STR_HEIGHT); extern const char *states[]; #define ENABLE_THREADS_COMMAND