265 lines
8.2 KiB
C
265 lines
8.2 KiB
C
/**
|
|
******************************************************************************
|
|
* @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.</center></h2>
|
|
*
|
|
* 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****/
|