From dcea41711140b523afe21eb798f9a6ec94aa0186 Mon Sep 17 00:00:00 2001 From: bartool Date: Sun, 1 Oct 2023 10:30:58 +0200 Subject: [PATCH] fix spi protocol --- Core/Src/spi.c | 2 +- Makefile | 2 +- app/core/app.c | 16 +++++++++++----- fun_gen_amp_test.ioc | 3 ++- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Core/Src/spi.c b/Core/Src/spi.c index 5bcf106..aea0b8f 100644 --- a/Core/Src/spi.c +++ b/Core/Src/spi.c @@ -42,7 +42,7 @@ void MX_SPI2_Init(void) hspi2.Init.Mode = SPI_MODE_MASTER; hspi2.Init.Direction = SPI_DIRECTION_1LINE; hspi2.Init.DataSize = SPI_DATASIZE_8BIT; - hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; + hspi2.Init.CLKPolarity = SPI_POLARITY_HIGH; hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; hspi2.Init.NSS = SPI_NSS_SOFT; hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_32; diff --git a/Makefile b/Makefile index 7e915c2..8406338 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ ########################################################################################################################## -# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Fri Sep 29 20:40:01 CEST 2023] +# File automatically-generated by tool: [projectgenerator] version: [3.17.1] date: [Sat Sep 30 08:45:04 CEST 2023] ########################################################################################################################## # ------------------------------------------------ diff --git a/app/core/app.c b/app/core/app.c index a9dfdc7..54d1cd1 100644 --- a/app/core/app.c +++ b/app/core/app.c @@ -12,6 +12,8 @@ #include "ad5303.h" #define MAX_VOLT 330 +#define MAX_REF 256 + typedef enum { FREQ, @@ -178,12 +180,16 @@ void update_display(void) DISP_writeString(&disp, &font5x7Info, (uint8_t *)"*", 0, 40, BM_NORMAL); break; case OFFS: - snprintf((char *)data, 8, "%03u", var[OFFS]); + temp = (MAX_REF * var[REF] + 127) / UINT8_MAX; + snprintf((char *)data, 16, "%03u (%01d.%02d)", var[REF], temp / 100, temp % 100); + // snprintf((char *)data, 8, "%03u", var[OFFS]); DISP_writeString(&disp, &font5x7Info, data, 48, 48, BM_NORMAL); DISP_writeString(&disp, &font5x7Info, (uint8_t *)"*", 0, 48, BM_NORMAL); break; case ZERO: - snprintf((char *)data, 8, "%03u", var[ZERO]); + temp = (MAX_REF * var[REF] + 127) / UINT8_MAX; + snprintf((char *)data, 16, "%03u (%01d.%02d)", var[REF], temp / 100, temp % 100); + // snprintf((char *)data, 8, "%03u", var[ZERO]); DISP_writeString(&disp, &font5x7Info, data, 48, 56, BM_NORMAL); DISP_writeString(&disp, &font5x7Info, (uint8_t *)"*", 0, 56, BM_NORMAL); break; @@ -221,7 +227,7 @@ void changeValue(int8_t inc) } var[FREQ] += inc; - ad9833_setFrequency(&had9833, CHAN_0, var[FREQ]); + ad9833_setFrequency(&had9833, CHAN_0, var[FREQ] * 1000); break; } @@ -315,13 +321,13 @@ void changeValue(int8_t inc) case OFFS: { var[OFFS] = (var[OFFS] + inc) & UINT8_MAX; - ad5303_set_value(&hdac, var[OFFS], AD_DAC1); + ad5303_set_value(&hdac, var[OFFS], AD_DAC2); break; } case ZERO: { var[ZERO] = (var[ZERO] + inc) & UINT8_MAX; - ad5303_set_value(&hdac, var[ZERO], AD_DAC2); + ad5303_set_value(&hdac, var[ZERO], AD_DAC1); break; } default: diff --git a/fun_gen_amp_test.ioc b/fun_gen_amp_test.ioc index 564082d..578ffc9 100644 --- a/fun_gen_amp_test.ioc +++ b/fun_gen_amp_test.ioc @@ -264,10 +264,11 @@ SH.S_TIM3_CH1.ConfNb=1 SH.S_TIM3_CH2.0=TIM3_CH2,Encoder_Interface SH.S_TIM3_CH2.ConfNb=1 SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_32 +SPI2.CLKPolarity=SPI_POLARITY_HIGH SPI2.CalculateBaudRate=750.0 KBits/s SPI2.DataSize=SPI_DATASIZE_8BIT SPI2.Direction=SPI_DIRECTION_1LINE -SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler,DataSize +SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler,DataSize,CLKPolarity SPI2.Mode=SPI_MODE_MASTER SPI2.VirtualType=VM_MASTER SPI3.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_32