/** ****************************************************************************** * @file radio_board_if.h * @author YunHorn Technology Limited Application Team * @brief Header for Radio interface configuration ****************************************************************************** * @attention * * Copyright (c) 2023 YunHorn Technology Limited. * All rights reserved. * * This software component is licensed by ST under Ultimate Liberty license * SLA0044, the "License"; You may not use this file except in compliance with * the License. You may obtain a copy of the License at: * www.st.com/SLA0044 * ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef RADIO_BOARD_IF_H #define RADIO_BOARD_IF_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include "platform.h" /* USER CODE BEGIN include */ /* USER CODE END include */ /* Exported defines ----------------------------------------------------------*/ // #ifdef MX_BOARD_PSEUDODRIVER #define YUNHORN_STS_WLE5CCxx // #endif /* MX_BOARD_PSEUDODRIVER */ #if defined(USE_BSP_DRIVER) /* code generated by MX does not support BSP */ /* In order to use BSP driver, add the correspondent files in the IDE workspace */ /* and define USE_BSP_DRIVER in the preprocessor definitions or in platform.h */ #define RBI_CONF_RFO_LP_HP RADIO_CONF_RFO_LP_HP #define RBI_CONF_RFO_LP RADIO_CONF_RFO_LP #define RBI_CONF_RFO_HP RADIO_CONF_RFO_HP #elif defined(YUNHORN_STS_WLE5CCxx) #define RBI_CONF_RFO_LP_HP 0 #define RBI_CONF_RFO_LP 1 #define RBI_CONF_RFO_HP 2 #define YUNHORN_STS_RF_CHANNEL_SWITCH 1 #else /* USER CODE BEGIN Board Definition */ #error user to provide its board definitions /* USER CODE END Board Definition */ #endif /* USE_BSP_DRIVER || YUNHORN_STS_WLE5CCxx */ #if defined(USE_BSP_DRIVER) /* code generated by MX does not support BSP */ /* In order to use BSP driver, add the correspondent files in the IDE workspace */ /* and define USE_BSP_DRIVER in the preprocessor definitions or in platform.h */ #elif defined(YUNHORN_STS_WLE5CCxx) /* Indicates the type of switch between the ones proposed by CONFIG Constants */ #if defined(YUNHORN_STS_RF_CHANNEL_SWITCH) #define RBI_CONF_RFO RBI_CONF_RFO_HP #else #define RBI_CONF_RFO RBI_CONF_RFO_LP_HP #endif /* Radio maximum wakeup time (in ms) */ #define RF_WAKEUP_TIME 10U /* Indicates whether or not TCXO is supported by the board * 0: TCXO not supported * 1: TCXO supported */ #define IS_TCXO_SUPPORTED 0U /* Indicates whether or not DCDC is supported by the board * 0: DCDC not supported * 1: DCDC supported */ #define IS_DCDC_SUPPORTED 1U #else /* USER CODE BEGIN Exported Parameters */ #error user to provide its board definitions /* USER CODE END Exported Parameters */ #endif /* USE_BSP_DRIVER || MX_NUCLEO_WL55JC1 */ #if defined(USE_BSP_DRIVER) /* code generated by MX does not support BSP */ /* In order to use BSP driver, add the correspondent files in the IDE workspace */ /* and define USE_BSP_DRIVER in the preprocessor definitions or in platform.h */ #elif defined(YUNHORN_STS_WLE5CCxx) #if defined(YUNHORN_STS_RF_CHANNEL_SWITCH) #define RF_SW_CTRL1_PIN GPIO_PIN_8 #define RF_SW_CTRL1_GPIO_PORT GPIOB #define RF_SW_CTRL1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() #define RF_SW_CTRL1_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() #define RF_SW_CTRL2_PIN GPIO_PIN_13 #define RF_SW_CTRL2_GPIO_PORT GPIOC #define RF_SW_CTRL2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() #define RF_SW_CTRL2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() #else #define RF_SW_CTRL3_PIN GPIO_PIN_3 #define RF_SW_CTRL3_GPIO_PORT GPIOC #define RF_SW_CTRL3_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() #define RF_SW_CTRL3_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() #define RF_SW_CTRL1_PIN GPIO_PIN_4 #define RF_SW_CTRL1_GPIO_PORT GPIOC #define RF_SW_CTRL1_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() #define RF_SW_RX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() #define RF_SW_CTRL2_PIN GPIO_PIN_5 #define RF_SW_CTRL2_GPIO_PORT GPIOC #define RF_SW_CTRL2_GPIO_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() #define RF_SW_CTRL2_GPIO_CLK_DISABLE() __HAL_RCC_GPIOC_CLK_DISABLE() #endif /* To be checked vs TCXO management in RCC config */ #define RF_TCXO_VCC_PIN GPIO_PIN_0 #define RF_TCXO_VCC_GPIO_PORT GPIOB #define RF_TCXO_VCC_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() #define RF_TCXO_VCC_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE() #else /* USER CODE BEGIN Exported PinMapping */ #error user to provide its board definitions /* USER CODE END Exported PinMapping */ #endif /* USE_BSP_DRIVER || YUNHORN_STS_WLE5CCxx */ /* USER CODE BEGIN Exported_Defines */ /* USER CODE END Exported_Defines */ /* Exported types ------------------------------------------------------------*/ #if defined(USE_BSP_DRIVER) /* code generated by MX does not support BSP */ /* In order to use BSP driver, add the correspondent files in the IDE workspace */ /* and define USE_BSP_DRIVER in the preprocessor definitions or in platform.h */ typedef enum { RBI_SWITCH_OFF = RADIO_SWITCH_OFF, RBI_SWITCH_RX = RADIO_SWITCH_RX, RBI_SWITCH_RFO_LP = RADIO_SWITCH_RFO_LP, RBI_SWITCH_RFO_HP = RADIO_SWITCH_RFO_HP, } RBI_Switch_TypeDef; #elif defined(YUNHORN_STS_WLE5CCxx) typedef enum { RBI_SWITCH_OFF = 0, RBI_SWITCH_RX = 1, RBI_SWITCH_RFO_LP = 2, RBI_SWITCH_RFO_HP = 3, } RBI_Switch_TypeDef; typedef enum { RBI_RFO_LP_MAXPOWER = 0, RBI_RFO_HP_MAXPOWER = 1, } RBI_RFOMaxPowerConfig_TypeDef; #else /* USER CODE BEGIN Exported Types */ #error user to provide its board definitions /* USER CODE END Exported Types */ #endif /* USE_BSP_DRIVER || YUNHORN_STS_WLE5CCxx */ /* USER CODE BEGIN ET */ /* USER CODE END ET */ /* Exported constants --------------------------------------------------------*/ /* USER CODE BEGIN EC */ /* USER CODE END EC */ /* External variables --------------------------------------------------------*/ /* USER CODE BEGIN EV */ /* USER CODE END EV */ /* Exported macro ------------------------------------------------------------*/ /* USER CODE BEGIN EM */ /* USER CODE END EM */ /* Exported functions ------------------------------------------------------- */ /** * @brief Init Radio Switch * @return BSP status */ int32_t RBI_Init(void); /** * @brief DeInit Radio Switch * @return BSP status */ int32_t RBI_DeInit(void); /** * @brief Configure Radio Switch. * @param Config: Specifies the Radio RF switch path to be set. * This parameter can be one of following parameters: * @arg RADIO_SWITCH_OFF * @arg RADIO_SWITCH_RX * @arg RADIO_SWITCH_RFO_LP * @arg RADIO_SWITCH_RFO_HP * @return BSP status */ int32_t RBI_ConfigRFSwitch(RBI_Switch_TypeDef Config); /** * @brief Return Board Configuration * @retval RBI_CONF_RFO_LP_HP * @retval RBI_CONF_RFO_LP * @retval RBI_CONF_RFO_HP */ int32_t RBI_GetTxConfig(void); /** * @brief Get Radio Wake Time * @return the wake upt time in ms */ int32_t RBI_GetWakeUpTime(void); /** * @brief Get If TCXO is to be present on board * @note never remove called by MW, * @retval return 1 if present, 0 if not present */ int32_t RBI_IsTCXO(void); /** * @brief Get If DCDC is to be present on board * @note never remove called by MW, * @retval return 1 if present, 0 if not present */ int32_t RBI_IsDCDC(void); /** * @brief Get RFO Max Power Config on board * @note never remove called by MW, * @retval return 15 dBm for low power, 22 dBm for high power */ int32_t RBI_GetRFOMaxPowerConfig(RBI_RFOMaxPowerConfig_TypeDef Config); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ #ifdef __cplusplus } #endif #endif /* RADIO_BOARD_IF_H */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/