first
This commit is contained in:
256
SubGHz_Phy/Target/radio_board_if.c
Normal file
256
SubGHz_Phy/Target/radio_board_if.c
Normal file
@ -0,0 +1,256 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file radio_board_if.c
|
||||
* @author MCD Application Team
|
||||
* @brief This file provides an interface layer between MW and Radio Board
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2022 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "radio_board_if.h"
|
||||
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* External variables ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN EV */
|
||||
|
||||
/* USER CODE END EV */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PTD */
|
||||
|
||||
/* USER CODE END PTD */
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PD */
|
||||
|
||||
/* USER CODE END PD */
|
||||
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PM */
|
||||
|
||||
/* USER CODE END PM */
|
||||
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PV */
|
||||
|
||||
/* USER CODE END PV */
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
/* USER CODE BEGIN PFP */
|
||||
|
||||
/* USER CODE END PFP */
|
||||
|
||||
/* Exported functions --------------------------------------------------------*/
|
||||
int32_t RBI_Init(void)
|
||||
{
|
||||
/* USER CODE BEGIN RBI_Init_1 */
|
||||
|
||||
/* USER CODE END RBI_Init_1 */
|
||||
#if defined(USE_BSP_DRIVER)
|
||||
/* Important note: BSP code is board dependent
|
||||
* STM32WL_Nucleo code can be found
|
||||
* either in STM32CubeWL package under Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* or at https://github.com/STMicroelectronics/STM32CubeWL/tree/main/Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* 1/ For User boards, the BSP/STM32WLxx_Nucleo/ directory can be copied and replaced in the project. The copy must then be updated depending:
|
||||
* on board RF switch configuration (pin control, number of port etc)
|
||||
* on TCXO configuration
|
||||
* on DC/DC configuration
|
||||
* on maximum output power that the board can deliver*/
|
||||
return BSP_RADIO_Init();
|
||||
#else
|
||||
/* 2/ Or implement RBI_Init here */
|
||||
int32_t retcode = 0;
|
||||
/* USER CODE BEGIN RBI_Init_2 */
|
||||
#warning user to provide its board code or to call his board driver functions
|
||||
/* USER CODE END RBI_Init_2 */
|
||||
return retcode;
|
||||
#endif /* USE_BSP_DRIVER */
|
||||
}
|
||||
|
||||
int32_t RBI_DeInit(void)
|
||||
{
|
||||
/* USER CODE BEGIN RBI_DeInit_1 */
|
||||
|
||||
/* USER CODE END RBI_DeInit_1 */
|
||||
#if defined(USE_BSP_DRIVER)
|
||||
/* Important note: BSP code is board dependent
|
||||
* STM32WL_Nucleo code can be found
|
||||
* either in STM32CubeWL package under Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* or at https://github.com/STMicroelectronics/STM32CubeWL/tree/main/Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* 1/ For User boards, the BSP/STM32WLxx_Nucleo/ directory can be copied and replaced in the project. The copy must then be updated depending:
|
||||
* on board RF switch configuration (pin control, number of port etc)
|
||||
* on TCXO configuration
|
||||
* on DC/DC configuration
|
||||
* on maximum output power that the board can deliver*/
|
||||
return BSP_RADIO_DeInit();
|
||||
#else
|
||||
/* 2/ Or implement RBI_DeInit here */
|
||||
int32_t retcode = 0;
|
||||
/* USER CODE BEGIN RBI_DeInit_2 */
|
||||
#warning user to provide its board code or to call his board driver functions
|
||||
/* USER CODE END RBI_DeInit_2 */
|
||||
return retcode;
|
||||
#endif /* USE_BSP_DRIVER */
|
||||
}
|
||||
|
||||
int32_t RBI_ConfigRFSwitch(RBI_Switch_TypeDef Config)
|
||||
{
|
||||
/* USER CODE BEGIN RBI_ConfigRFSwitch_1 */
|
||||
|
||||
/* USER CODE END RBI_ConfigRFSwitch_1 */
|
||||
#if defined(USE_BSP_DRIVER)
|
||||
|
||||
/* Important note: BSP code is board dependent
|
||||
* STM32WL_Nucleo code can be found
|
||||
* either in STM32CubeWL package under Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* or at https://github.com/STMicroelectronics/STM32CubeWL/tree/main/Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* 1/ For User boards, the BSP/STM32WLxx_Nucleo/ directory can be copied and replaced in the project. The copy must then be updated depending:
|
||||
* on board RF switch configuration (pin control, number of port etc)
|
||||
* on TCXO configuration
|
||||
* on DC/DC configuration
|
||||
* on maximum output power that the board can deliver*/
|
||||
return BSP_RADIO_ConfigRFSwitch((BSP_RADIO_Switch_TypeDef) Config);
|
||||
#else
|
||||
/* 2/ Or implement RBI_ConfigRFSwitch here */
|
||||
int32_t retcode = 0;
|
||||
/* USER CODE BEGIN RBI_ConfigRFSwitch_2 */
|
||||
#warning user to provide its board code or to call his board driver functions
|
||||
/* USER CODE END RBI_ConfigRFSwitch_2 */
|
||||
return retcode;
|
||||
#endif /* USE_BSP_DRIVER */
|
||||
}
|
||||
|
||||
int32_t RBI_GetTxConfig(void)
|
||||
{
|
||||
/* USER CODE BEGIN RBI_GetTxConfig_1 */
|
||||
|
||||
/* USER CODE END RBI_GetTxConfig_1 */
|
||||
#if defined(USE_BSP_DRIVER)
|
||||
/* Important note: BSP code is board dependent
|
||||
* STM32WL_Nucleo code can be found
|
||||
* either in STM32CubeWL package under Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* or at https://github.com/STMicroelectronics/STM32CubeWL/tree/main/Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* 1/ For User boards, the BSP/STM32WLxx_Nucleo/ directory can be copied and replaced in the project. The copy must then be updated depending:
|
||||
* on board RF switch configuration (pin control, number of port etc)
|
||||
* on TCXO configuration
|
||||
* on DC/DC configuration
|
||||
* on maximum output power that the board can deliver*/
|
||||
return BSP_RADIO_GetTxConfig();
|
||||
#else
|
||||
/* 2/ Or implement RBI_GetTxConfig here */
|
||||
int32_t retcode = RBI_CONF_RFO;
|
||||
/* USER CODE BEGIN RBI_GetTxConfig_2 */
|
||||
#warning user to provide its board code or to call his board driver functions
|
||||
/* USER CODE END RBI_GetTxConfig_2 */
|
||||
return retcode;
|
||||
#endif /* USE_BSP_DRIVER */
|
||||
}
|
||||
|
||||
int32_t RBI_IsTCXO(void)
|
||||
{
|
||||
/* USER CODE BEGIN RBI_IsTCXO_1 */
|
||||
|
||||
/* USER CODE END RBI_IsTCXO_1 */
|
||||
#if defined(USE_BSP_DRIVER)
|
||||
/* Important note: BSP code is board dependent
|
||||
* STM32WL_Nucleo code can be found
|
||||
* either in STM32CubeWL package under Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* or at https://github.com/STMicroelectronics/STM32CubeWL/tree/main/Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* 1/ For User boards, the BSP/STM32WLxx_Nucleo/ directory can be copied and replaced in the project. The copy must then be updated depending:
|
||||
* on board RF switch configuration (pin control, number of port etc)
|
||||
* on TCXO configuration
|
||||
* on DC/DC configuration
|
||||
* on maximum output power that the board can deliver*/
|
||||
return BSP_RADIO_IsTCXO();
|
||||
#else
|
||||
/* 2/ Or implement RBI_IsTCXO here */
|
||||
int32_t retcode = IS_TCXO_SUPPORTED;
|
||||
/* USER CODE BEGIN RBI_IsTCXO_2 */
|
||||
#warning user to provide its board code or to call his board driver functions
|
||||
/* USER CODE END RBI_IsTCXO_2 */
|
||||
return retcode;
|
||||
#endif /* USE_BSP_DRIVER */
|
||||
}
|
||||
|
||||
int32_t RBI_IsDCDC(void)
|
||||
{
|
||||
/* USER CODE BEGIN RBI_IsDCDC_1 */
|
||||
|
||||
/* USER CODE END RBI_IsDCDC_1 */
|
||||
#if defined(USE_BSP_DRIVER)
|
||||
/* Important note: BSP code is board dependent
|
||||
* STM32WL_Nucleo code can be found
|
||||
* either in STM32CubeWL package under Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* or at https://github.com/STMicroelectronics/STM32CubeWL/tree/main/Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* 1/ For User boards, the BSP/STM32WLxx_Nucleo/ directory can be copied and replaced in the project. The copy must then be updated depending:
|
||||
* on board RF switch configuration (pin control, number of port etc)
|
||||
* on TCXO configuration
|
||||
* on DC/DC configuration
|
||||
* on maximum output power that the board can deliver*/
|
||||
return BSP_RADIO_IsDCDC();
|
||||
#else
|
||||
/* 2/ Or implement RBI_IsDCDC here */
|
||||
int32_t retcode = IS_DCDC_SUPPORTED;
|
||||
/* USER CODE BEGIN RBI_IsDCDC_2 */
|
||||
#warning user to provide its board code or to call his board driver functions
|
||||
/* USER CODE END RBI_IsDCDC_2 */
|
||||
return retcode;
|
||||
#endif /* USE_BSP_DRIVER */
|
||||
}
|
||||
|
||||
int32_t RBI_GetRFOMaxPowerConfig(RBI_RFOMaxPowerConfig_TypeDef Config)
|
||||
{
|
||||
/* USER CODE BEGIN RBI_GetRFOMaxPowerConfig_1 */
|
||||
|
||||
/* USER CODE END RBI_GetRFOMaxPowerConfig_1 */
|
||||
#if defined(USE_BSP_DRIVER)
|
||||
/* Important note: BSP code is board dependent
|
||||
* STM32WL_Nucleo code can be found
|
||||
* either in STM32CubeWL package under Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* or at https://github.com/STMicroelectronics/STM32CubeWL/tree/main/Drivers/BSP/STM32WLxx_Nucleo/
|
||||
* 1/ For User boards, the BSP/STM32WLxx_Nucleo/ directory can be copied and replaced in the project. The copy must then be updated depending:
|
||||
* on board RF switch configuration (pin control, number of port etc)
|
||||
* on TCXO configuration
|
||||
* on DC/DC configuration
|
||||
* on maximum output power that the board can deliver*/
|
||||
return BSP_RADIO_GetRFOMaxPowerConfig((BSP_RADIO_RFOMaxPowerConfig_TypeDef) Config);
|
||||
#else
|
||||
/* 2/ Or implement RBI_RBI_GetRFOMaxPowerConfig here */
|
||||
int32_t ret = 0;
|
||||
/* USER CODE BEGIN RBI_GetRFOMaxPowerConfig_2 */
|
||||
#warning user to provide its board code or to call his board driver functions
|
||||
if (Config == RBI_RFO_LP_MAXPOWER)
|
||||
{
|
||||
ret = 15; /*dBm*/
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = 22; /*dBm*/
|
||||
}
|
||||
/* USER CODE END RBI_GetRFOMaxPowerConfig_2 */
|
||||
return ret;
|
||||
#endif /* USE_BSP_DRIVER */
|
||||
}
|
||||
/* USER CODE BEGIN EF */
|
||||
|
||||
/* USER CODE END EF */
|
||||
|
||||
/* Private Functions Definition -----------------------------------------------*/
|
||||
/* USER CODE BEGIN PrFD */
|
||||
|
||||
/* USER CODE END PrFD */
|
||||
Reference in New Issue
Block a user