Skip to content

Commit 23f6d14

Browse files
committed
Release v2.2.0
1 parent 36a03cd commit 23f6d14

File tree

161 files changed

+99534
-6821
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

161 files changed

+99534
-6821
lines changed

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [v2.2.0] - 2023-12-15
9+
10+
### Added
11+
12+
- LR-FHSS demo support for LR11XX and SX126X chips
13+
- SX126X Sigfox demo support
14+
- Bluetooth Low Energy Beaconing Compatibility example for LR1110 and LR1120
15+
- Support for the following shields
16+
- LR1110MB1IPDDIS
17+
- LR1120MB1IPDDIS
18+
- LR1110MB1PIS
19+
- LR1120MB1PIS
20+
21+
### Fixed
22+
23+
- Remove duplicated code in configuration of LR11xx DBPSK configuration
24+
- PA tables for LR1110MB1DxS, LR1110MB1GxS, LR1120MB1DxS, LR1120MB1GxS
25+
- Typos in readme files
26+
- SX126x Ping-Pong example: add handler for Rx CRC error
27+
28+
### Changed
29+
30+
- Renaming from ranging to RTToF
31+
- LR11xx driver upgraded to v2.4.1
32+
- Update latest firmware version definition
33+
834
## [v2.1.0] - 2023-10-06
935

1036
### Added

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# SWSD003
1+
# SWSD003 Transceiver SDK
22

3-
This SDK contain several simple examples for SX126x and LR11XX chip families.
3+
This SDK contain several simple examples for SX126x and LR11XX chip families used in Transceiver mode.
44

55
## Examples
66

@@ -55,7 +55,6 @@ Here are the parameters available at compile time:
5555

5656
| Parameter | Description | Default value |
5757
| ------------ | ---------------------------------------- | -------------------------------------------------- |
58-
| TARGET_BOARD | Board for which the example is compiled | NUCLEO_L476RG |
5958
| RADIO_SHIELD | Shield for which the example is compiled | **lr11xx**: LR1120MB1DIS, **sx126x**: SX1262MB1CAS |
6059

6160
For instance, to build the project `per` with LR1110MB1GJS shield simply run make as follows

common/inc/common_version.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ extern "C" {
5050
* --- PUBLIC MACROS -----------------------------------------------------------
5151
*/
5252

53-
#define COMMON_SDK_VERSION "v2.1.0"
53+
#define COMMON_SDK_VERSION "v2.2.0"
5454

5555
/*
5656
* -----------------------------------------------------------------------------

libs/smtc-shields/lr11xx/README.md

Lines changed: 46 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,55 @@
44

55
The list of compatible Semtech LR1110 shields is:
66

7-
| Shield | PCB | Frequency matching | Characteristics |
8-
| ------------ | -------- | ------------------ | -------------------------------------- |
9-
| LR1110MB1DIS | E516V02B | 868/915 MHz | GNSS with LNA for Passive GNSS Antenna |
10-
| LR1110MB1DJS | E592V01B | 868/915 MHz | GNSS without LNA |
11-
| LR1110MB1GIS | E516V02B | 490 MHz | GNSS with LNA for Passive GNSS Antenna |
12-
| LR1110MB1GJS | E592V01B | 490 MHz | GNSS without LNA |
7+
| Shield | PCB | Frequency matching | Characteristics |
8+
| --------------- | -------- | ------------------ | ------------------------------------------------------------------------------ |
9+
| LR1110MB1DIS | E516V02B | 868/915 MHz | GNSS with LNA for Passive GNSS Antenna |
10+
| LR1110MB1IPDDIS | E613V02A | 868/915 MHz | GNSS with LNA for Passive GNSS Antenna and IPD device on RF LF and RF HF paths |
11+
| LR1110MB1PIS | E679V02A | 923 MHz | GNSS with LNA for Passive GNSS Antenna and SAW filter on Tx LF path |
12+
| LR1110MB1DJS | E592V01B | 868/915 MHz | GNSS without LNA |
13+
| LR1110MB1GIS | E516V02B | 490 MHz | GNSS with LNA for Passive GNSS Antenna |
14+
| LR1110MB1GJS | E592V01B | 490 MHz | GNSS without LNA |
1315

1416
The list of compatible Semtech LR1120 shields is:
1517

16-
| Shield | PCB | Frequency matching | Characteristics |
17-
| ------------ | -------- | ------------------ | -------------------------------------- |
18-
| LR1120MB1DIS | E655V01A | 868/915 MHz | GNSS with LNA for Passive GNSS Antenna |
19-
| LR1120MB1DJS | E656V01A | 868/915 MHz | GNSS without LNA |
20-
| LR1120MB1GIS | E655V01A | 490 MHz | GNSS with LNA for Passive GNSS Antenna |
21-
| LR1120MB1GJS | E656V01A | 490 MHz | GNSS without LNA |
18+
| Shield | PCB | Frequency matching | Characteristics |
19+
| --------------- | -------- | ------------------ | ------------------------------------------------------------------------------ |
20+
| LR1120MB1DIS | E655V01A | 868/915 MHz | GNSS with LNA for Passive GNSS Antenna |
21+
| LR1120MB1IPDDIS | E613V02A | 868/915 MHz | GNSS with LNA for Passive GNSS Antenna and IPD device on RF LF and RF HF paths |
22+
| LR1120MB1PIS | E679V02A | 923 MHz | GNSS with LNA for Passive GNSS Antenna and SAW filter on Tx LF path |
23+
| LR1120MB1DJS | E656V01A | 868/915 MHz | GNSS without LNA |
24+
| LR1120MB1GIS | E655V01A | 490 MHz | GNSS with LNA for Passive GNSS Antenna |
25+
| LR1120MB1GJS | E656V01A | 490 MHz | GNSS without LNA |
2226

2327
The list of compatible Semtech LR1121 shields is:
2428

25-
| Shield | PCB | Frequency matching | Characteristics |
26-
| ------------ | --- | ------------------ | --------------- |
27-
| LR1120MB1DIS | ? | 868/915 MHz | |
28-
| LR1120MB1GIS | ? | 490 MHz | |
29+
| Shield | PCB | Frequency matching | Characteristics |
30+
| ------------ | -------- | ------------------ | --------------- |
31+
| LR1121MB1DIS | E655V01A | 868/915 MHz | |
32+
| LR1121MB1GIS | E655V01A | 490 MHz | |
33+
34+
## Note concerning shields with IPDs
35+
36+
The shields `LR1110MB1IPDDIS` and `LR1120MB1IPDDIS` feature Integrated Passive Devices (IPDs) that help to reduce footprints.
37+
These shields have specific Power Amplifier configuration tuning on LR11xx chip that have been evaluated to comply with FCC and ETSI regulations.
38+
39+
The power amplifier configuration that comply with FCC and ETSI regulations have been established only on a limited Tx power configuration.
40+
41+
Therefore the power amplifier configuration given in this code base returns the established FCC or ETSI compliant configuration if available, and fallback to common configuration if not found.
42+
43+
## Note concerning LR11x0MB1PIS shields
44+
45+
The power amplifier configuration provided in this repository for `LR1110MB1PIS` and `LR1120MB1PIS` shields is so that:
46+
47+
- if the requested power corresponds to the configuration used to pass ARIB harmonic test (+6dBm), then this one is returned;
48+
- if the requested power is inferior to the one used during ARIB harmonic test, then the configuration returned is the same as for LR11x0MB1DxS shields;
49+
- otherwise no configuration is returned.
50+
51+
The power amplifier configuration targeting +6dBm provided in this repository has been tested against ARIB harmonic requirements.
52+
However it has not been optimized for power consumption.
53+
54+
The power amplifier configurations returned for power target inferior to +6dBm are the same as for LR11x0MB1DxS shields.
55+
These configurations have not been tested for ARIB harmonic requirements.
56+
57+
The default BIll Of Material of LR11x0MB1PIS shields does not allow to use the High Power RF path.
58+
Therefore the power amplifier configuration must be so that only Low Power RF path is used.

libs/smtc-shields/lr11xx/inc/smtc_shield_lr1110mb1dis.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ extern "C" {
4646
#include <stdbool.h>
4747
#include <stdint.h>
4848
#include "smtc_shield_lr11xx_types.h"
49+
#include "smtc_shield_lr11x0_common.h"
4950

5051
/*
5152
* -----------------------------------------------------------------------------
@@ -59,6 +60,8 @@ extern "C" {
5960
.get_rf_switch_cfg = smtc_shield_lr1110mb1dis_get_rf_switch_cfg, \
6061
.get_reg_mode = smtc_shield_lr1110mb1dis_get_reg_mode, .get_xosc_cfg = smtc_shield_lr1110mb1dis_get_xosc_cfg, \
6162
.get_lfclk_cfg = smtc_shield_lr1110mb1dis_get_lfclk_cfg, .get_pinout = smtc_shield_lr1110mb1dis_get_pinout, \
63+
.get_rttof_recommended_rx_tx_delay_indicator = \
64+
smtc_shield_lr11x0_common_rttof_recommended_rx_tx_delay_indicator, \
6265
}
6366

6467
/*

libs/smtc-shields/lr11xx/inc/smtc_shield_lr1110mb1djs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ extern "C" {
4646
#include <stdbool.h>
4747
#include <stdint.h>
4848
#include "smtc_shield_lr11xx_types.h"
49+
#include "smtc_shield_lr11x0_common.h"
4950

5051
/*
5152
* -----------------------------------------------------------------------------
@@ -59,6 +60,8 @@ extern "C" {
5960
.get_rf_switch_cfg = smtc_shield_lr1110mb1djs_get_rf_switch_cfg, \
6061
.get_reg_mode = smtc_shield_lr1110mb1djs_get_reg_mode, .get_xosc_cfg = smtc_shield_lr1110mb1djs_get_xosc_cfg, \
6162
.get_lfclk_cfg = smtc_shield_lr1110mb1djs_get_lfclk_cfg, .get_pinout = smtc_shield_lr1110mb1djs_get_pinout, \
63+
.get_rttof_recommended_rx_tx_delay_indicator = \
64+
smtc_shield_lr11x0_common_rttof_recommended_rx_tx_delay_indicator, \
6265
}
6366

6467
/*

libs/smtc-shields/lr11xx/inc/smtc_shield_lr1110mb1gis.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ extern "C" {
4646
#include <stdbool.h>
4747
#include <stdint.h>
4848
#include "smtc_shield_lr11xx_types.h"
49+
#include "smtc_shield_lr11x0_common.h"
4950

5051
/*
5152
* -----------------------------------------------------------------------------
@@ -59,6 +60,8 @@ extern "C" {
5960
.get_rf_switch_cfg = smtc_shield_lr1110mb1gis_get_rf_switch_cfg, \
6061
.get_reg_mode = smtc_shield_lr1110mb1gis_get_reg_mode, .get_xosc_cfg = smtc_shield_lr1110mb1gis_get_xosc_cfg, \
6162
.get_lfclk_cfg = smtc_shield_lr1110mb1gis_get_lfclk_cfg, .get_pinout = smtc_shield_lr1110mb1gis_get_pinout, \
63+
.get_rttof_recommended_rx_tx_delay_indicator = \
64+
smtc_shield_lr11x0_common_rttof_recommended_rx_tx_delay_indicator, \
6265
}
6366

6467
/*

libs/smtc-shields/lr11xx/inc/smtc_shield_lr1110mb1gjs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ extern "C" {
4646
#include <stdbool.h>
4747
#include <stdint.h>
4848
#include "smtc_shield_lr11xx_types.h"
49+
#include "smtc_shield_lr11x0_common.h"
4950

5051
/*
5152
* -----------------------------------------------------------------------------
@@ -59,6 +60,8 @@ extern "C" {
5960
.get_rf_switch_cfg = smtc_shield_lr1110mb1gjs_get_rf_switch_cfg, \
6061
.get_reg_mode = smtc_shield_lr1110mb1gjs_get_reg_mode, .get_xosc_cfg = smtc_shield_lr1110mb1gjs_get_xosc_cfg, \
6162
.get_lfclk_cfg = smtc_shield_lr1110mb1gjs_get_lfclk_cfg, .get_pinout = smtc_shield_lr1110mb1gjs_get_pinout, \
63+
.get_rttof_recommended_rx_tx_delay_indicator = \
64+
smtc_shield_lr11x0_common_rttof_recommended_rx_tx_delay_indicator, \
6265
}
6366

6467
/*
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
/*!
2+
* @file smtc_shield_lr1110mb1ipddis.h
3+
*
4+
* @brief Interface specific to LR1110MB1IPDDIS shield
5+
*
6+
* The Clear BSD License
7+
* Copyright Semtech Corporation 2023. All rights reserved.
8+
*
9+
* Redistribution and use in source and binary forms, with or without
10+
* modification, are permitted (subject to the limitations in the disclaimer
11+
* below) provided that the following conditions are met:
12+
* * Redistributions of source code must retain the above copyright
13+
* notice, this list of conditions and the following disclaimer.
14+
* * Redistributions in binary form must reproduce the above copyright
15+
* notice, this list of conditions and the following disclaimer in the
16+
* documentation and/or other materials provided with the distribution.
17+
* * Neither the name of the Semtech corporation nor the
18+
* names of its contributors may be used to endorse or promote products
19+
* derived from this software without specific prior written permission.
20+
*
21+
* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY
22+
* THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
23+
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
24+
* NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
25+
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SEMTECH CORPORATION BE
26+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32+
* POSSIBILITY OF SUCH DAMAGE.
33+
*/
34+
#ifndef SMTC_SHIELD_LR1110MB1IPDDIS_H
35+
#define SMTC_SHIELD_LR1110MB1IPDDIS_H
36+
37+
#ifdef __cplusplus
38+
extern "C" {
39+
#endif
40+
41+
/*
42+
* -----------------------------------------------------------------------------
43+
* --- DEPENDENCIES ------------------------------------------------------------
44+
*/
45+
46+
#include <stdbool.h>
47+
#include <stdint.h>
48+
#include "smtc_shield_lr11xx_types.h"
49+
#include "smtc_shield_lr11x0_common.h"
50+
51+
/*
52+
* -----------------------------------------------------------------------------
53+
* --- PUBLIC MACROS -----------------------------------------------------------
54+
*/
55+
56+
#define SMTC_SHIELD_LR1110MB1IPDDIS_INSTANTIATE \
57+
{ \
58+
.get_pa_pwr_cfg = smtc_shield_lr1110mb1ipddis_get_pa_pwr_cfg, \
59+
.get_rssi_calibration_table = smtc_shield_lr1110mb1ipddis_get_rssi_calibration_table, \
60+
.get_rf_switch_cfg = smtc_shield_lr1110mb1ipddis_get_rf_switch_cfg, \
61+
.get_reg_mode = smtc_shield_lr1110mb1ipddis_get_reg_mode, \
62+
.get_xosc_cfg = smtc_shield_lr1110mb1ipddis_get_xosc_cfg, \
63+
.get_lfclk_cfg = smtc_shield_lr1110mb1ipddis_get_lfclk_cfg, \
64+
.get_pinout = smtc_shield_lr1110mb1ipddis_get_pinout, \
65+
.get_rttof_recommended_rx_tx_delay_indicator = \
66+
smtc_shield_lr11x0_common_rttof_recommended_rx_tx_delay_indicator, \
67+
}
68+
69+
/*
70+
* -----------------------------------------------------------------------------
71+
* --- PUBLIC CONSTANTS --------------------------------------------------------
72+
*/
73+
74+
/*
75+
* -----------------------------------------------------------------------------
76+
* --- PUBLIC TYPES ------------------------------------------------------------
77+
*/
78+
79+
/*
80+
* -----------------------------------------------------------------------------
81+
* --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
82+
*/
83+
84+
/**
85+
* @see smtc_shield_lr11xx_get_pa_pwr_cfg
86+
*/
87+
const smtc_shield_lr11xx_pa_pwr_cfg_t* smtc_shield_lr1110mb1ipddis_get_pa_pwr_cfg( const uint32_t rf_freq_in_hz,
88+
int8_t expected_output_pwr_in_dbm );
89+
90+
/**
91+
* @see smtc_shield_lr11xx_get_rssi_calibration_table
92+
*/
93+
const lr11xx_radio_rssi_calibration_table_t* smtc_shield_lr1110mb1ipddis_get_rssi_calibration_table(
94+
const uint32_t rf_freq_in_hz );
95+
96+
/**
97+
* @see smtc_shield_lr11xx_get_rf_switch_cfg
98+
*/
99+
const lr11xx_system_rfswitch_cfg_t* smtc_shield_lr1110mb1ipddis_get_rf_switch_cfg( void );
100+
101+
/**
102+
* @see smtc_shield_lr11xx_get_reg_mode
103+
*/
104+
lr11xx_system_reg_mode_t smtc_shield_lr1110mb1ipddis_get_reg_mode( void );
105+
106+
/**
107+
* @see smtc_shield_lr11xx_get_xosc_cfg
108+
*/
109+
const smtc_shield_lr11xx_xosc_cfg_t* smtc_shield_lr1110mb1ipddis_get_xosc_cfg( void );
110+
111+
/**
112+
* @see smtc_shield_lr11xx_get_lfclk_cfg
113+
*/
114+
const smtc_shield_lr11xx_lfclk_cfg_t* smtc_shield_lr1110mb1ipddis_get_lfclk_cfg( void );
115+
116+
/**
117+
* @see smtc_shield_lr11xx_get_pinout
118+
*/
119+
const smtc_shield_lr11xx_pinout_t* smtc_shield_lr1110mb1ipddis_get_pinout( void );
120+
121+
#ifdef __cplusplus
122+
}
123+
#endif
124+
125+
#endif // SMTC_SHIELD_LR1110MB1IPDDIS_H

0 commit comments

Comments
 (0)