From 730fd6558dc8293d78ddbd5744626c8a9e5cbcb9 Mon Sep 17 00:00:00 2001 From: erikkaashoek Date: Mon, 23 Mar 2020 12:08:01 +0100 Subject: [PATCH] V0.2 pinning and power RF control --- NANOVNA_STM32_F072/board.h | 124 +++++++++++++++++++------------------ si4432.c | 51 ++++++++------- 2 files changed, 92 insertions(+), 83 deletions(-) diff --git a/NANOVNA_STM32_F072/board.h b/NANOVNA_STM32_F072/board.h index 1a43c50..2a6af10 100644 --- a/NANOVNA_STM32_F072/board.h +++ b/NANOVNA_STM32_F072/board.h @@ -47,12 +47,12 @@ /* on-board */ -#define GPIOA_PE_SEL 0 +//#define GPIO_PE_SEL 0 #define GPIOA_LEVER1 1 #define GPIOA_LEVER2 2 #define GPIOA_PUSH 3 -#define GPIOA_RX_SEL 4 -#define GPIOA_LO_SEL 5 +//#define GPIO_RX_SEL 4 +//#define GPIO_LO_SEL 5 #define GPIOA_XP 6 #define GPIOA_YP 7 #define GPIOA_MCO 8 @@ -72,12 +72,17 @@ #define GPIOB_LCD_CS 6 #define GPIOB_LCD_CD 7 #define GPIOB_I2C1_SCL 8 -#define GPIOB_I2C1_SDA 9 -#define GPIOB_SD_GP2 10 +#define GPIO_RF_PWR 9 +#define GPIO_SPI2_CLK 10 #define GPIOB_SD_CS 11 -#define GPIOB_SPI2_CLK 12 -#define GPIOB_SPI2_SDO 13 -#define GPIOB_SPI2_SDI 15 +#define GPIO_SPI2_SDO 14 +#define GPIO_SPI2_SDI 15 + +// Port C +#define GPIO_PE_SEL 13 +#define GPIO_RX_SEL 14 +#define GPIO_LO_SEL 15 + #define GPIOC_LED 13 @@ -116,12 +121,12 @@ * PA13 - SWDIO (alternate 0). * PA14 - SWCLK (alternate 0). */ -#define VAL_GPIOA_MODER (PIN_MODE_OUTPUT(GPIOA_PE_SEL) | \ +#define VAL_GPIOA_MODER (PIN_MODE_INPUT(0U) | \ PIN_MODE_INPUT(1U) | \ PIN_MODE_INPUT(2U) | \ PIN_MODE_INPUT(3U) | \ - PIN_MODE_OUTPUT(GPIOA_RX_SEL) | \ - PIN_MODE_OUTPUT(GPIOA_LO_SEL) | \ + PIN_MODE_INPUT(4U) | \ + PIN_MODE_INPUT(5U) | \ PIN_MODE_ANALOG(GPIOA_XP) | \ PIN_MODE_ANALOG(GPIOA_YP) | \ PIN_MODE_ALTERNATE(GPIOA_MCO) | \ @@ -132,7 +137,7 @@ PIN_MODE_ALTERNATE(GPIOA_JTMS) | \ PIN_MODE_ALTERNATE(GPIOA_JTCK) | \ PIN_MODE_OUTPUT(GPIOA_LCD_RESET)) -#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(GPIOA_PE_SEL) | \ +#define VAL_GPIOA_OTYPER (PIN_OTYPE_PUSHPULL(0U) | \ PIN_OTYPE_PUSHPULL(1U) | \ PIN_OTYPE_PUSHPULL(2U) | \ PIN_OTYPE_PUSHPULL(3U) | \ @@ -148,7 +153,7 @@ PIN_OTYPE_PUSHPULL(GPIOA_JTMS) | \ PIN_OTYPE_PUSHPULL(GPIOA_JTCK) | \ PIN_OTYPE_PUSHPULL(GPIOA_LCD_RESET)) -#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_100M(GPIOA_PE_SEL) | \ +#define VAL_GPIOA_OSPEEDR (PIN_OSPEED_2M(0) | \ PIN_OSPEED_2M(1) | \ PIN_OSPEED_2M(2) | \ PIN_OSPEED_2M(3) | \ @@ -164,7 +169,7 @@ PIN_OSPEED_100M(GPIOA_JTMS) | \ PIN_OSPEED_100M(GPIOA_JTCK) | \ PIN_OSPEED_100M(GPIOA_LCD_RESET)) -#define VAL_GPIOA_PUPDR (PIN_PUPDR_PULLDOWN(GPIOA_PE_SEL) | \ +#define VAL_GPIOA_PUPDR ( PIN_PUPDR_PULLDOWN(0) | \ PIN_PUPDR_PULLDOWN(1) | \ PIN_PUPDR_PULLDOWN(2) | \ PIN_PUPDR_PULLDOWN(3) | \ @@ -180,7 +185,7 @@ PIN_PUPDR_PULLDOWN(GPIOA_JTMS) | \ PIN_PUPDR_PULLDOWN(GPIOA_JTCK) | \ PIN_PUPDR_PULLDOWN(GPIOA_LCD_RESET)) -#define VAL_GPIOA_ODR (PIN_ODR_HIGH(GPIOA_PE_SEL) | \ +#define VAL_GPIOA_ODR ( PIN_ODR_HIGH(0) | \ PIN_ODR_HIGH(1) | \ PIN_ODR_HIGH(2) | \ PIN_ODR_HIGH(3) | \ @@ -196,7 +201,7 @@ PIN_ODR_HIGH(GPIOA_JTMS) | \ PIN_ODR_HIGH(GPIOA_JTCK) | \ PIN_ODR_HIGH(GPIOA_LCD_RESET)) -#define VAL_GPIOA_AFRL (PIN_AFIO_AF(GPIOA_PE_SEL, 0) | \ +#define VAL_GPIOA_AFRL (PIN_AFIO_AF(0, 0) | \ PIN_AFIO_AF(1, 0) | \ PIN_AFIO_AF(2, 0) | \ PIN_AFIO_AF(3, 0) | \ @@ -235,14 +240,14 @@ PIN_MODE_ALTERNATE(GPIOB_SPI_MOSI) | \ PIN_MODE_OUTPUT(6) | \ PIN_MODE_OUTPUT(7) | \ - PIN_MODE_ALTERNATE(GPIOB_I2C1_SCL) | \ - PIN_MODE_ALTERNATE(GPIOB_I2C1_SDA) | \ - PIN_MODE_OUTPUT(10) | \ + PIN_MODE_OUTPUT(8) | \ + PIN_MODE_OUTPUT(GPIO_RF_PWR) | \ + PIN_MODE_OUTPUT(GPIO_SPI2_CLK) | \ PIN_MODE_OUTPUT(11) | \ - PIN_MODE_OUTPUT(GPIOB_SPI2_CLK) | \ - PIN_MODE_INPUT(GPIOB_SPI2_SDO) | \ - PIN_MODE_ALTERNATE(14) | \ - PIN_MODE_OUTPUT(GPIOB_SPI2_SDI)) + PIN_MODE_OUTPUT(12) | \ + PIN_MODE_OUTPUT(13) | \ + PIN_MODE_INPUT(GPIO_SPI2_SDO) | \ + PIN_MODE_OUTPUT(GPIO_SPI2_SDI)) #define VAL_GPIOB_OTYPER (PIN_OTYPE_PUSHPULL(0) | \ PIN_OTYPE_PUSHPULL(1) | \ PIN_OTYPE_PUSHPULL(2) | \ @@ -251,14 +256,14 @@ PIN_OTYPE_PUSHPULL(5) | \ PIN_OTYPE_PUSHPULL(6) | \ PIN_OTYPE_PUSHPULL(7) | \ - PIN_OTYPE_PUSHPULL(GPIOB_I2C1_SCL) | \ - PIN_OTYPE_PUSHPULL(GPIOB_I2C1_SDA) | \ - PIN_OTYPE_PUSHPULL(10) | \ + PIN_OTYPE_PUSHPULL(8) | \ + PIN_OTYPE_PUSHPULL(GPIO_RF_PWR) | \ + PIN_OTYPE_PUSHPULL(GPIO_SPI2_CLK) | \ PIN_OTYPE_PUSHPULL(11) | \ - PIN_OTYPE_PUSHPULL(GPIOB_SPI2_CLK) | \ - PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SDO) | \ - PIN_OTYPE_PUSHPULL(14) | \ - PIN_OTYPE_PUSHPULL(GPIOB_SPI2_SDI)) + PIN_OTYPE_PUSHPULL(12) | \ + PIN_OTYPE_PUSHPULL(13) | \ + PIN_OTYPE_PUSHPULL(GPIO_SPI2_SDO) | \ + PIN_OTYPE_PUSHPULL(GPIO_SPI2_SDI)) #define VAL_GPIOB_OSPEEDR (PIN_PUPDR_FLOATING(GPIOB_XN) | \ PIN_PUPDR_FLOATING(GPIOB_YN) | \ PIN_OSPEED_100M(2) | \ @@ -267,14 +272,14 @@ PIN_OSPEED_100M(5) | \ PIN_OSPEED_100M(6) | \ PIN_OSPEED_100M(7) | \ - PIN_OSPEED_100M(GPIOB_I2C1_SCL) | \ - PIN_OSPEED_100M(GPIOB_I2C1_SDA) | \ + PIN_OSPEED_100M(8) | \ + PIN_OSPEED_100M(9) | \ PIN_OSPEED_100M(10) | \ PIN_OSPEED_100M(11) | \ - PIN_OSPEED_100M(GPIOB_SPI2_CLK) | \ - PIN_OSPEED_100M(GPIOB_SPI2_SDO) | \ + PIN_OSPEED_100M(12) | \ + PIN_OSPEED_100M(13) | \ PIN_OSPEED_100M(14) | \ - PIN_OSPEED_100M(GPIOB_SPI2_SDI)) + PIN_OSPEED_100M(15)) #define VAL_GPIOB_PUPDR (PIN_PUPDR_PULLUP(0) | \ PIN_PUPDR_PULLUP(1) | \ PIN_PUPDR_PULLUP(2) | \ @@ -283,14 +288,14 @@ PIN_PUPDR_PULLUP(5) | \ PIN_PUPDR_PULLUP(6) | \ PIN_PUPDR_PULLUP(7) | \ - PIN_PUPDR_PULLUP(GPIOB_I2C1_SCL) | \ - PIN_PUPDR_PULLUP(GPIOB_I2C1_SDA) | \ + PIN_PUPDR_PULLUP(8) | \ + PIN_PUPDR_PULLUP(9) | \ PIN_PUPDR_PULLUP(10) | \ PIN_PUPDR_PULLUP(11) | \ - PIN_PUPDR_PULLUP(GPIOB_SPI2_CLK) | \ - PIN_PUPDR_PULLUP(GPIOB_SPI2_SDO) | \ + PIN_PUPDR_PULLUP(12) | \ + PIN_PUPDR_PULLUP(13) | \ PIN_PUPDR_PULLUP(14) | \ - PIN_PUPDR_PULLUP(GPIOB_SPI2_SDI)) + PIN_PUPDR_PULLUP(14)) #define VAL_GPIOB_ODR (PIN_ODR_HIGH(0) | \ PIN_ODR_HIGH(1) | \ PIN_ODR_HIGH(2) | \ @@ -299,14 +304,14 @@ PIN_ODR_HIGH(5) | \ PIN_ODR_HIGH(6) | \ PIN_ODR_HIGH(7) | \ - PIN_ODR_HIGH(GPIOB_I2C1_SCL) | \ - PIN_ODR_HIGH(GPIOB_I2C1_SDA) | \ + PIN_ODR_HIGH(8) | \ + PIN_ODR_HIGH(9) | \ PIN_ODR_HIGH(10) | \ PIN_ODR_HIGH(11) | \ - PIN_ODR_HIGH(GPIOB_SPI2_CLK) | \ - PIN_ODR_HIGH(GPIOB_SPI2_SDO) | \ + PIN_ODR_HIGH(12) | \ + PIN_ODR_HIGH(13) | \ PIN_ODR_HIGH(14) | \ - PIN_ODR_HIGH(GPIOB_SPI2_SDI)) + PIN_ODR_HIGH(15)) #define VAL_GPIOB_AFRL (PIN_AFIO_AF(0, 0) | \ PIN_AFIO_AF(1, 0) | \ PIN_AFIO_AF(2, 0) | \ @@ -315,20 +320,21 @@ PIN_AFIO_AF(GPIOB_SPI_MISO, 0) | \ PIN_AFIO_AF(6, 0) | \ PIN_AFIO_AF(7, 0)) -#define VAL_GPIOB_AFRH (PIN_AFIO_AF(GPIOB_I2C1_SCL, 1) | \ - PIN_AFIO_AF(GPIOB_I2C1_SDA, 1) | \ +#define VAL_GPIOB_AFRH (PIN_AFIO_AF(8, 1) | \ + PIN_AFIO_AF(9, 1) | \ PIN_AFIO_AF(10, 0) | \ PIN_AFIO_AF(11, 0) | \ - PIN_AFIO_AF(GPIOB_SPI2_CLK, 0) | \ - PIN_AFIO_AF(GPIOB_SPI2_SDO, 0) | \ + PIN_AFIO_AF(12, 0) | \ + PIN_AFIO_AF(13, 0) | \ PIN_AFIO_AF(14, 0) | \ - PIN_AFIO_AF(GPIOB_SPI2_SDI, 0)) + PIN_AFIO_AF(15, 0)) /* * GPIOC setup: * * PC13 - LED (output pushpull maximum). * PC14 - USB DISC (output pushpull maximum). */ + #define VAL_GPIOC_MODER (PIN_MODE_INPUT(0) | \ PIN_MODE_INPUT(1) | \ PIN_MODE_INPUT(2) | \ @@ -342,9 +348,9 @@ PIN_MODE_INPUT(10) | \ PIN_MODE_INPUT(11) | \ PIN_MODE_INPUT(12) | \ - PIN_MODE_OUTPUT(GPIOC_LED) | \ - PIN_MODE_INPUT(14) | \ - PIN_MODE_INPUT(15)) + PIN_MODE_OUTPUT(GPIO_PE_SEL) | \ + PIN_MODE_OUTPUT(GPIO_RX_SEL) | \ + PIN_MODE_OUTPUT(GPIO_LO_SEL)) #define VAL_GPIOC_OTYPER (PIN_OTYPE_PUSHPULL(0) | \ PIN_OTYPE_PUSHPULL(1) | \ PIN_OTYPE_PUSHPULL(2) | \ @@ -358,7 +364,7 @@ PIN_OTYPE_PUSHPULL(10) | \ PIN_OTYPE_PUSHPULL(11) | \ PIN_OTYPE_PUSHPULL(12) | \ - PIN_OTYPE_PUSHPULL(GPIOC_LED) | \ + PIN_OTYPE_PUSHPULL(13) | \ PIN_OTYPE_PUSHPULL(14) | \ PIN_OTYPE_PUSHPULL(15)) #define VAL_GPIOC_OSPEEDR (PIN_OSPEED_100M(0) | \ @@ -374,7 +380,7 @@ PIN_OSPEED_100M(10) | \ PIN_OSPEED_100M(11) | \ PIN_OSPEED_100M(12) | \ - PIN_OSPEED_100M(GPIOC_LED) | \ + PIN_OSPEED_100M(13) | \ PIN_OSPEED_100M(14) | \ PIN_OSPEED_100M(15)) #define VAL_GPIOC_PUPDR (PIN_PUPDR_PULLUP(0) | \ @@ -390,8 +396,8 @@ PIN_PUPDR_PULLUP(10) | \ PIN_PUPDR_PULLUP(11) | \ PIN_PUPDR_PULLUP(12) | \ - PIN_PUPDR_FLOATING(GPIOC_LED) | \ - PIN_PUPDR_FLOATING(14) | \ + PIN_PUPDR_PULLUP(13) | \ + PIN_PUPDR_PULLUP(14) | \ PIN_PUPDR_PULLUP(15)) #define VAL_GPIOC_ODR (PIN_ODR_HIGH(0) | \ PIN_ODR_HIGH(1) | \ @@ -406,7 +412,7 @@ PIN_ODR_HIGH(10) | \ PIN_ODR_HIGH(11) | \ PIN_ODR_HIGH(12) | \ - PIN_ODR_HIGH(GPIOC_LED) | \ + PIN_ODR_HIGH(13) | \ PIN_ODR_HIGH(14) | \ PIN_ODR_HIGH(15)) #define VAL_GPIOC_AFRL (PIN_AFIO_AF(0, 0) | \ @@ -422,7 +428,7 @@ PIN_AFIO_AF(10, 0) | \ PIN_AFIO_AF(11, 0) | \ PIN_AFIO_AF(12, 0) | \ - PIN_AFIO_AF(GPIOC_LED, 0) | \ + PIN_AFIO_AF(13, 0) | \ PIN_AFIO_AF(14, 0) | \ PIN_AFIO_AF(15, 0)) diff --git a/si4432.c b/si4432.c index 6efbd8f..9cff2fa 100644 --- a/si4432.c +++ b/si4432.c @@ -22,21 +22,24 @@ #include "si4432.h" -#define CS_SI0_HIGH palSetPad(GPIOA, GPIOA_RX_SEL) -#define CS_SI1_HIGH palSetPad(GPIOA, GPIOA_LO_SEL) -#define CS_PE_HIGH palSetPad(GPIOA, GPIOA_PE_SEL) +#define CS_SI0_HIGH palSetPad(GPIOC, GPIO_RX_SEL) +#define CS_SI1_HIGH palSetPad(GPIOC, GPIO_LO_SEL) +#define CS_PE_HIGH palSetPad(GPIOC, GPIO_PE_SEL) -#define CS_SI0_LOW palClearPad(GPIOA, GPIOA_RX_SEL) -#define CS_SI1_LOW palClearPad(GPIOA, GPIOA_LO_SEL) -#define CS_PE_LOW palClearPad(GPIOA, GPIOA_PE_SEL) +#define RF_POWER_HIGH palSetPad(GPIOC, GPIO_RF_PWR) -#define SPI2_CLK_HIGH palSetPad(GPIOB, GPIOB_SPI2_CLK) -#define SPI2_CLK_LOW palClearPad(GPIOB, GPIOB_SPI2_CLK) -#define SPI2_SDI_HIGH palSetPad(GPIOB, GPIOB_SPI2_SDI) -#define SPI2_SDI_LOW palClearPad(GPIOB, GPIOB_SPI2_SDI) +#define CS_SI0_LOW palClearPad(GPIOC, GPIO_RX_SEL) +#define CS_SI1_LOW palClearPad(GPIOC, GPIO_LO_SEL) +#define CS_PE_LOW palClearPad(GPIOC, GPIO_PE_SEL) -#define SPI2_SDO ((palReadPort(GPIOB) & (1< 6207) WISH=6207; // Final value in RBW_choices[] if (WISH > 1379) dwn3 = 1 ; @@ -231,6 +231,7 @@ int settingSpeed = 0; float SI4432_RSSI(uint32_t i, int s) { + (void) i; int RSSI_RAW; // SEE DATASHEET PAGE 61 #ifdef USE_SI4463 @@ -252,7 +253,7 @@ float SI4432_RSSI(uint32_t i, int s) } -void SI4432_Sub_Init() +void SI4432_Sub_Init(void) { SI4432_Reset(); SI4432_Write_Byte(0x05, 0x0); @@ -311,8 +312,10 @@ void SI4432_Sub_Init() void SI4432_Init() { + RF_POWER_HIGH; // Power the RF part + chThdSleepMilliseconds(25); -//DebugLine("IO set"); + //DebugLine("IO set"); SI4432_Sel = 0; SI4432_Sub_Init();