First SPI communication validated

This commit is contained in:
2024-06-23 00:25:50 -03:00
parent 1cef4cf69a
commit 3e4dbfe9a3
3 changed files with 30 additions and 4 deletions

View File

@@ -29,8 +29,14 @@ GPIO_Pin_STM32 sx1280_a_txen(SX1280_A_TXEN_GPIO_Port, SX1280_A_TXEN_Pin);
GPIO_Pin_STM32 sx1280_a_rst(SX1280_A_RST_GPIO_Port, SX1280_A_RST_Pin);
GPIO_Pin_STM32 sx1280_a_busy(SX1280_A_BUSY_GPIO_Port, SX1280_A_BUSY_Pin);
GPIO_Pin_STM32 sx1280_a_irq(SX1280_A_IRQ_GPIO_Port, SX1280_A_IRQ_Pin);
SX1280Hal pRadio(&spiRadio, &sx1280_a_nss, &sx1280_a_busy, &sx1280_a_irq, &sx1280_a_rst, nullptr);
GPIO_Pin_STM32 sx1280_b_nss(SX1280_B_NSS_GPIO_Port, SX1280_B_NSS_Pin);
GPIO_Pin_STM32 sx1280_b_rxen(SX1280_B_RXEN_GPIO_Port, SX1280_B_RXEN_Pin);
GPIO_Pin_STM32 sx1280_b_txen(SX1280_B_TXEN_GPIO_Port, SX1280_B_TXEN_Pin);
GPIO_Pin_STM32 sx1280_b_rst(SX1280_B_RST_GPIO_Port, SX1280_B_RST_Pin);
GPIO_Pin_STM32 sx1280_b_busy(SX1280_B_BUSY_GPIO_Port, SX1280_B_BUSY_Pin);
GPIO_Pin_STM32 sx1280_b_irq(SX1280_B_IRQ_GPIO_Port, SX1280_B_IRQ_Pin);
SX1280Hal pRadio2(&spiRadio, &sx1280_b_nss, &sx1280_b_busy, &sx1280_b_irq, &sx1280_b_rst, nullptr);
GPIO_Pin_STM32 blueButton(B1_GPIO_Port, B1_Pin);
SSL_Comms radio0(&blueButton);
@@ -40,8 +46,27 @@ void start(){
spiRadio.init();
radio0.init();
pRadio.Init();
RadioRegulatorModes_t regulatorMode = USE_LDO;
pRadio.SetRegulatorMode(regulatorMode);
RadioStandbyModes_t standbyMode = STDBY_XOSC;
pRadio.SetStandby(standbyMode);
uint16_t firmwareVersion = pRadio.GetFirmwareVersion();
printf("Radio firmware version: %u\n", firmwareVersion);
TickTime_t timeout = {RADIO_TICK_SIZE_0015_US, 0xFFFF};
pRadio.SetRx(timeout);
int8_t rssiInst = pRadio.GetRssiInst();
printf("Radio RSSI: %d\n", rssiInst);
RadioStatus_t status = pRadio.GetStatus();
printf("CMD status: 0x%X, Chip mode: 0x%X\n", status.Fields.CmdStatus, status.Fields.ChipMode);
pRadio2.Init();
RadioRegulatorModes_t regulatorMode2 = USE_LDO;
pRadio2.SetRegulatorMode(regulatorMode2);
RadioStandbyModes_t standbyMode2 = STDBY_XOSC;
pRadio2.SetStandby(standbyMode2);
uint16_t firmwareVersion2 = pRadio2.GetFirmwareVersion();
printf("Radio2 firmware version: %u\n", firmwareVersion2);
int8_t rssiInst2 = pRadio2.GetRssiInst();
printf("Radio2 RSSI: %d\n", rssiInst2);
RadioStatus_t status2 = pRadio2.GetStatus();
printf("CMD2 status: 0x%X, Chip2 mode: 0x%X\n", status2.Fields.CmdStatus, status2.Fields.ChipMode);
}

View File

@@ -55,7 +55,7 @@ void MX_GPIO_Init(void)
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOE, CS_I2C_SPI_Pin|SX1280_A_TXEN_Pin|SX1280_B_RST_Pin|SX1280_B_TXEN_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE, CS_I2C_SPI_Pin|SX1280_A_RXEN_Pin|SX1280_B_NSS_Pin|SX1280_B_RXEN_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(OTG_FS_PowerSwitchOn_GPIO_Port, OTG_FS_PowerSwitchOn_Pin, GPIO_PIN_SET);
@@ -67,7 +67,7 @@ void MX_GPIO_Init(void)
HAL_GPIO_WritePin(GPIOB, SX1280_A_RST_Pin|NRF24_A_CE_Pin|LCD_RST_Pin|LCD_DR_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOE, SX1280_A_RXEN_Pin|SX1280_B_NSS_Pin|SX1280_B_RXEN_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE, SX1280_A_TXEN_Pin|SX1280_B_RST_Pin|SX1280_B_TXEN_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, ESP8266_RST_Pin|LD4_Pin|LD3_Pin|LD5_Pin

View File

@@ -509,11 +509,12 @@ PE15.GPIO_Label=NRF24_A_IRQ
PE15.GPIO_PuPd=GPIO_PULLDOWN
PE15.Locked=true
PE15.Signal=GPXTI15
PE3.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
PE3.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label
PE3.GPIO_Label=CS_I2C/SPI [LIS302DL_CS_I2C/SPI]
PE3.GPIO_PuPd=GPIO_NOPULL
PE3.GPIO_Speed=GPIO_SPEED_FREQ_LOW
PE3.Locked=true
PE3.PinState=GPIO_PIN_SET
PE3.Signal=GPIO_Output
PE7.GPIOParameters=PinState,GPIO_Label
PE7.GPIO_Label=SX1280_A_RXEN