Skip to content

Commit 084c74a

Browse files
committed
v2.0 release.
1 parent 759a9b5 commit 084c74a

File tree

8 files changed

+325
-169
lines changed

8 files changed

+325
-169
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [v2.0](https://github.com/sigfox-tech-radio/sigfox-ep-rf-api-semtech-lr11xx/releases/tag/v2.0) - 22 Mar 2024
11+
12+
### Changed
13+
14+
* BIDIRECTIONAL flag compilation issue
15+
* Rename **smtc_dpbsk.c** to **smtc_dbpsk.c**.
16+
* Rename `RCx` compilation flags into `RCx_ZONE` for **Microchip MCUs compatibility**.
17+
* Update with 2.4.1 SWDR001 semtech drivers.
18+
19+
### Removed
20+
21+
* Remove **stmtc_sigfox_lr11xx.h** file.
22+
23+
### Added
24+
25+
* New methods in **LR11XX_HW_API** to configure output power board oscillator.
26+
1027
## [v1.2](https://github.com/sigfox-tech-radio/sigfox-ep-rf-api-semtech-lr11xx/releases/tag/v1.2) - 09 Nov 2023
1128

1229
### Added

CMakeLists.txt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ cmake_minimum_required(VERSION 3.15)
22
project(lr11xx_rf_api)
33
include(ExternalProject)
44

5-
#Check if Project configure by himself or by a parent project (like sfx_lib_core_protocol)
5+
#Check if Project configure by himself or by a parent project (like sigfox-ep-lib)
66
if ( ${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} )
77
if (NOT DEFINED SIGFOX_EP_LIB_DIR)
8-
message(FATAL_ERROR "${PROJECT_NAME} cannot be configured without -DSIGFOX_EP_LIB_DIR=<sfx_lib_core_protocol directory>")
8+
message(FATAL_ERROR "${PROJECT_NAME} cannot be configured without -DSIGFOX_EP_LIB_DIR=<sigfox-ep-lib directory>")
99
endif()
1010
add_subdirectory(${SIGFOX_EP_LIB_DIR} "${CMAKE_CURRENT_BINARY_DIR}/${SIGFOX_EP_LIB_DIR}")
1111
else()
@@ -15,13 +15,12 @@ endif()
1515

1616
set (LR11XX_RF_API_SOURCES
1717
src/manuf/lr11xx_rf_api.c
18-
src/manuf/smtc_dpbsk.c
18+
src/manuf/smtc_dbpsk.c
1919
src/board/lr11xx_hw_api.c
2020
)
2121

2222
set (LR11XX_RF_API_HEADERS
2323
inc/manuf/lr11xx_rf_api.h
24-
inc/manuf/smtc_sigfox_lr11xx.h
2524
inc/manuf/smtc_dbpsk.h
2625
inc/board/lr11xx_hw_api.h
2726
)
@@ -41,7 +40,7 @@ if (NOT TARGET lr11xx_driver)
4140
GIT_PROGRESS TRUE
4241
GIT_SHALLOW TRUE
4342
GIT_REPOSITORY https://github.com/Lora-net/SWDR001.git
44-
GIT_TAG v2.3.0
43+
GIT_TAG v2.4.1
4544
)
4645
else ()
4746
list(APPEND CHIP_RF_HEADERS_LIST "$<BUILD_INTERFACE:$<TARGET_PROPERTY:lr11xx_driver,INTERFACE_INCLUDE_DIRECTORIES>>")
@@ -53,7 +52,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
5352
#Precompile module
5453
include(precompile_lr11xx_rf_api)
5554

56-
add_library(${PROJECT_NAME}_obj OBJECT EXCLUDE_FROM_ALL src/manuf/lr11xx_rf_api.c src/manuf/smtc_dpbsk.c)
55+
add_library(${PROJECT_NAME}_obj OBJECT EXCLUDE_FROM_ALL src/manuf/lr11xx_rf_api.c src/manuf/smtc_dbpsk.c)
5756
if (NOT TARGET lr11xx_driver)
5857
add_dependencies(${PROJECT_NAME}_obj lr11xx)
5958
endif()

README.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ The table below shows the versions compatibility between this radio example and
1111

1212
| **LR11XX_RF_API** | **EP_LIB** |
1313
|:---:|:---:|
14-
| [v1.2](https://github.com/sigfox-tech-radio/sigfox-ep-rf-api-semtech-lr11xx/releases/tag/v1.2) | >= [v3.4](https://github.com/sigfox-tech-radio/sigfox-ep-lib/releases/tag/v3.4) |
14+
| [v2.0](https://github.com/sigfox-tech-radio/sigfox-ep-rf-api-semtech-lr11xx/releases/tag/v2.0) | >= [v3.5](https://github.com/sigfox-tech-radio/sigfox-ep-lib/releases/tag/v3.5) |
15+
| [v1.2](https://github.com/sigfox-tech-radio/sigfox-ep-rf-api-semtech-lr11xx/releases/tag/v1.2) | [v3.4](https://github.com/sigfox-tech-radio/sigfox-ep-lib/releases/tag/v3.4) |
1516
| [v1.1](https://github.com/sigfox-tech-radio/sigfox-ep-rf-api-semtech-lr11xx/releases/tag/v1.1) | [v3.2](https://github.com/sigfox-tech-radio/sigfox-ep-lib/releases/tag/v3.2) to [v3.3](https://github.com/sigfox-tech-radio/sigfox-ep-lib/releases/tag/v3.3)|
1617
| [v1.0](https://github.com/sigfox-tech-radio/sigfox-ep-rf-api-semtech-lr11xx/releases/tag/v1.0) | [v3.2](https://github.com/sigfox-tech-radio/sigfox-ep-lib/releases/tag/v3.2) to [v3.3](https://github.com/sigfox-tech-radio/sigfox-ep-lib/releases/tag/v3.3)|
1718

@@ -114,14 +115,14 @@ make precompil_lr11xx_rf_api
114115
```bash
115116
cmake -DSIGFOX_EP_LIB_DIR=<sigfox-ep-lib path> \
116117
-DUSE_SIGFOX_EP_FLAGS_H=OFF \
117-
-DRC1=ON \
118-
-DRC2=ON \
119-
-DRC3C=ON \
120-
-DRC3D=ON \
121-
-DRC4=ON \
122-
-DRC5=ON \
123-
-DRC6=ON \
124-
-DRC7=ON \
118+
-DRC1_ZONE=ON \
119+
-DRC2_ZONE=ON \
120+
-DRC3C_ZONE=ON \
121+
-DRC3D_ZONE=ON \
122+
-DRC4_ZONE=ON \
123+
-DRC5_ZONE=ON \
124+
-DRC6_ZONE=ON \
125+
-DRC7_ZONE=ON \
125126
-DAPPLICATION_MESSAGES=ON \
126127
-DCONTROL_KEEP_ALIVE_MESSAGE=ON \
127128
-DBIDIRECTIONAL=ON \
@@ -176,14 +177,14 @@ make lr11xx_rf_api
176177
```bash
177178
cmake -DSIGFOX_EP_LIB_DIR=<sigfox-ep-lib path> \
178179
-DUSE_SIGFOX_EP_FLAGS_H=OFF \
179-
-DRC1=ON \
180-
-DRC2=ON \
181-
-DRC3C=ON \
182-
-DRC3D=ON \
183-
-DRC4=ON \
184-
-DRC5=ON \
185-
-DRC6=ON \
186-
-DRC7=ON \
180+
-DRC1_ZONE=ON \
181+
-DRC2_ZONE=ON \
182+
-DRC3C_ZONE=ON \
183+
-DRC3D_ZONE=ON \
184+
-DRC4_ZONE=ON \
185+
-DRC5_ZONE=ON \
186+
-DRC6_ZONE=ON \
187+
-DRC7_ZONE=ON \
187188
-DAPPLICATION_MESSAGES=ON \
188189
-DCONTROL_KEEP_ALIVE_MESSAGE=ON \
189190
-DBIDIRECTIONAL=ON \

inc/board/lr11xx_hw_api.h

Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,76 @@ typedef enum
8484
LR11XX_HW_API_FEM_GNSS ,
8585
} LR11XX_HW_API_FEM_t;
8686

87+
/*!******************************************************************
88+
* \enum LR11XX_HW_API_tcxo_ctrl_t
89+
* \brief TCXO voltage configuration
90+
*******************************************************************/
91+
typedef enum
92+
{
93+
LR11XX_HW_API_TCXO_CTRL_1_6V = 0x00,
94+
LR11XX_HW_API_TCXO_CTRL_1_7V ,
95+
LR11XX_HW_API_TCXO_CTRL_1_8V ,
96+
LR11XX_HW_API_TCXO_CTRL_2_2V ,
97+
LR11XX_HW_API_TCXO_CTRL_2_4V ,
98+
LR11XX_HW_API_TCXO_CTRL_2_7V ,
99+
LR11XX_HW_API_TCXO_CTRL_3_0V ,
100+
LR11XX_HW_API_TCXO_CTRL_3_3V ,
101+
LR11XX_HW_API_TCXO_CTRL_LAST,
102+
} LR11XX_HW_API_tcxo_supply_voltage_t;
103+
104+
/*!******************************************************************
105+
* \enum LR11XX_HW_API_radio_pa_selection_t
106+
* \brief Power Amplifier Selection values
107+
* \brief - Low-power Power Amplifier can reach up to 14dBm
108+
* \brief - High-power Power Amplifier can reach up to 22 dBm
109+
*******************************************************************/
110+
typedef enum
111+
{
112+
LR11XX_HW_API_RADIO_PA_SEL_LP = 0x00, //!< Low-power Power Amplifier
113+
LR11XX_HW_API_RADIO_PA_SEL_HP = 0x01, //!< High-power Power Amplifier
114+
LR11XX_HW_API_RADIO_PA_SEL_HF = 0x02, //!< High-frequency Power Amplifier
115+
} LR11XX_HW_API_radio_pa_selection_t;
116+
117+
/*!
118+
* \enum LR11XX_HW_API_radio_pa_reg_supply_t
119+
* @brief Select power amplifier supply source
120+
*/
121+
typedef enum
122+
{
123+
LR11XX_HW_API_RADIO_PA_REG_SUPPLY_VREG = 0x00, //!< Power amplifier supplied by the main regulator
124+
LR11XX_HW_API_RADIO_PA_REG_SUPPLY_VBAT = 0x01 //!< Power amplifier supplied by the battery
125+
} LR11XX_HW_API_radio_pa_reg_supply_t;
126+
127+
/*!******************************************************************
128+
* \struct LR11XX_HW_API_oscillator_type_t
129+
* \brief LR11XX oscillator configuration.
130+
*******************************************************************/
131+
typedef struct {
132+
sfx_u8 has_tcxo;
133+
LR11XX_HW_API_tcxo_supply_voltage_t tcxo_supply_voltage;
134+
sfx_u32 startup_time_in_tick;
135+
} LR11XX_HW_API_xosc_cfg_t;
136+
137+
/*!******************************************************************
138+
* \struct LR11XX_HW_API_pa_cfg_t
139+
* \brief Configuration of Power Amplifier
140+
*******************************************************************/
141+
typedef struct {
142+
LR11XX_HW_API_radio_pa_selection_t pa_sel; //!< Power Amplifier selection
143+
LR11XX_HW_API_radio_pa_reg_supply_t pa_reg_supply; //!< Power Amplifier regulator supply source
144+
sfx_u8 pa_duty_cycle; //!< Power Amplifier duty cycle (Default 0x04)
145+
sfx_u8 pa_hp_sel; //!< Number of slices for HPA (Default 0x07)
146+
} LR11XX_HW_API_pa_cfg_t;
147+
148+
/*!******************************************************************
149+
* \struct LR11XX_HW_API_pa_pwr_cfg_t
150+
* \brief TODO
151+
*******************************************************************/
152+
typedef struct {
153+
sfx_s8 power;
154+
LR11XX_HW_API_pa_cfg_t pa_config;
155+
}LR11XX_HW_API_pa_pwr_cfg_t;
156+
87157
#if (defined TIMER_REQUIRED) && (defined LATENCY_COMPENSATION)
88158
/*!******************************************************************
89159
* \enum LR11XX_HW_API_latency_t
@@ -135,8 +205,8 @@ LR11XX_HW_API_status_t LR11XX_HW_API_delayMs(unsigned short delay_ms);
135205
136206
* \fn LR11XX_HW_API_status_t LR11XX_HW_API_get_fem_mask(LR11XX_HW_API_FEM_t fem, sfx_u8 *rfsw_dio_mask);
137207
* \brief Lock configuration of several pins for a dedicated port.
138-
* \param[in] fem front end module or switch configuration.
139-
* \param[out] rfsw_dio_mask This parameter can be a combination of the following values:
208+
* \param[in] fem: front end module or switch configuration.
209+
* \param[out] rfsw_dio_mask: This parameter can be a combination of the following values:
140210
* \arg \ref LR11XX_HW_API_RFSW0_DIO5
141211
* \arg \ref LR11XX_HW_API_RFSW1_DIO6
142212
* \arg \ref LR11XX_HW_API_RFSW2_DIO7
@@ -146,6 +216,24 @@ LR11XX_HW_API_status_t LR11XX_HW_API_delayMs(unsigned short delay_ms);
146216
*******************************************************************/
147217
LR11XX_HW_API_status_t LR11XX_HW_API_get_fem_mask(LR11XX_HW_API_FEM_t fem, sfx_u8 *rfsw_dio_mask);
148218

219+
/*!******************************************************************
220+
* \fn LR11XX_HW_API_status_t LR11XX_HW_API_get_xosc_cfg(LR11XX_HW_API_xosc_cfg_t *xosc_cfg);
221+
* \brief Get oscillator configuration according to hardware matching. For more informations see LR11XX User Manual (chapter 6.3.2).
222+
* \param[out] xosc_cfg: Pointer to oscillator structure configuration compatible with the hardware.
223+
* \retval Function execution status.
224+
*******************************************************************/
225+
LR11XX_HW_API_status_t LR11XX_HW_API_get_xosc_cfg(LR11XX_HW_API_xosc_cfg_t *xosc_cfg);
226+
227+
/*!******************************************************************
228+
* \fn LR11XX_HW_API_status_t LR11XX_HW_API_get_pa_pwr_cfg(LR11XX_HW_API_pa_pwr_cfg_t *pa_pwr_cfg, sfx_u32 rf_freq_in_hz, sfx_s8 expected_output_pwr_in_dbm);
229+
* \brief Get the LR11XX PA power and configuration according to hardware matching. For more informations see LR11XX User Manual (chapter 9.5.1 / 9.5.2) or contact Semtech.
230+
* \param[in] rf_freq_in_hz: RF frequence in Hz
231+
* \param[in] expected_output_pwr_in_dbm: TX output power in dBm
232+
* \param[out] pa_pwr_cfg: Pointer to PA power configuration structure
233+
* \retval Function execution status.
234+
*******************************************************************/
235+
LR11XX_HW_API_status_t LR11XX_HW_API_get_pa_pwr_cfg(LR11XX_HW_API_pa_pwr_cfg_t *pa_pwr_cfg, sfx_u32 rf_freq_in_hz, sfx_s8 expected_output_pwr_in_dbm);
236+
149237
/*!******************************************************************
150238
* \fn LR11XX_HW_API_status_t LR11XX_HW_API_tx_on(void);
151239
* \brief Radio chipset will be start the TX.

inc/manuf/smtc_sigfox_lr11xx.h

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/board/lr11xx_hw_api.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,22 @@ LR11XX_HW_API_status_t LR11XX_HW_API_get_fem_mask(LR11XX_HW_API_FEM_t fem, sfx_u
8080
RETURN();
8181
}
8282

83+
LR11XX_HW_API_status_t LR11XX_HW_API_get_xosc_cfg(LR11XX_HW_API_xosc_cfg_t *xosc_cfg) {
84+
/* To be implemented by the device manufacturer */
85+
#ifdef ERROR_CODES
86+
LR11XX_HW_API_status_t status = LR11XX_HW_API_SUCCESS;
87+
#endif
88+
RETURN();
89+
}
90+
91+
LR11XX_HW_API_status_t LR11XX_HW_API_get_pa_pwr_cfg(LR11XX_HW_API_pa_pwr_cfg_t *pa_pwr_cfg, sfx_u32 rf_freq_in_hz, sfx_s8 expected_output_pwr_in_dbm){
92+
/* To be implemented by the device manufacturer */
93+
#ifdef ERROR_CODES
94+
LR11XX_HW_API_status_t status = LR11XX_HW_API_SUCCESS;
95+
#endif
96+
RETURN();
97+
}
98+
8399
LR11XX_HW_API_status_t LR11XX_HW_API_tx_on(void) {
84100
/* To be implemented by the device manufacturer */
85101
#ifdef ERROR_CODES

0 commit comments

Comments
 (0)