Skip to content

Add Semtech Lora radio drivers #12741

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 47 commits into from
Apr 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
0d53676
Initial commit
Nov 30, 2017
622d50b
Removing namespace pollution & rf ctrls refactor
Dec 15, 2017
d7e60e4
Merge pull request #1 from ARMmbed/ns_pollution
Dec 15, 2017
6f03969
Buffer Size and missing terminator for SX127 class
Dec 18, 2017
31eeb63
Merge pull request #2 from ARMmbed/bug_fix
Dec 18, 2017
c882dd6
[IOTCELL-284] Removing NULL checks from Callbacks
Jan 3, 2018
fe00a1c
Merge pull request #3 from ARMmbed/radio_event_callbacks
Jan 4, 2018
63b5c84
Add support for Multitech xDot module
Jan 4, 2018
863decd
Enable PA_BOOST for xDOT module
Jan 8, 2018
7407a28
Use PA_BOOST for WISE-1510 module
Jan 16, 2018
b520b5a
Set up DIO4 and 5 interrupts only if pins are connected
Jan 30, 2018
cfa70a7
Add MTB_MTS_XDOT target
Feb 7, 2018
6f45d34
Fixing paths to LoRaRadio and warnings
Feb 9, 2018
9f2ad37
Change WISE-1510 target to new name
Feb 8, 2018
e5bd56e
Enable TCXO always if pin is defined
Feb 14, 2018
247d8a5
Add TCXO pin for SX1272
Feb 15, 2018
94b11be
Checking for pins being NC before writing
Feb 19, 2018
87335ab
Fix IAR compiler warnings
Mar 8, 2018
ad7fc42
Merge pull request #12 from ARMmbed/fix_iar_compiler_warnings
Mar 8, 2018
c5ee522
Added flagging for DEVICE_SPI
Mar 11, 2018
a8fef8f
Remove product specific variables and target flags
Apr 11, 2018
4691c37
Change static variables to class members
Apr 19, 2018
ab8b691
Remove usage of DEVICE_SPI flag
May 14, 2018
4982a15
Remove obsolete FEATURE_COMMON_PAL flag
May 15, 2018
c4dd25e
Fix correct pin check for rxctl
May 18, 2018
7090841
Removing software RX timeouts in RX chain
Jun 15, 2018
1a45254
Changing double precision to float
Jun 20, 2018
914f037
Deprecating receive(uint32_t) API
Jun 21, 2018
1a5f2fc
Adding assert if rx timeout is out of range
Jun 21, 2018
5532d9d
TX timeout issue fix
Jun 27, 2018
1a18f0a
Correcting buffer size and tx timer units
Jul 11, 2018
f067004
Allow configuration of the radio variant
mattbrown015 Jul 16, 2018
a054093
Corrected 'help' in SX1272 config item
mattbrown015 Aug 2, 2018
0c7dce4
Adding support for low power timeouts
Oct 10, 2018
16958f8
Using new rtos::Thread APIs
Nov 27, 2018
bd00868
Removing mbed.h inclusion
Mar 22, 2019
6012fa4
Adding SX126X radio driver
Mar 22, 2019
aed2277
Corrected copyright for sx126x_ds.h
Mar 10, 2020
68beebf
Fix SPI flags for SX1272 and SX1276
Mar 23, 2020
2867b18
Lora: Replace deprecated methods with new ones in Semtech drivers
Mar 25, 2020
444e725
Astyle fixes
Mar 25, 2020
fd6f9bf
BUGFIX: MODEM_LORA rx continuous was timing out
Mar 26, 2020
0f7efe3
set symb_timeout to 0 also in FSK mode
Mar 28, 2020
9bb7e9a
Add 'components/lora/' from commit '0f7efe3ad17c6c619843b8391b3035149…
Apr 1, 2020
6ca66e2
Lora: Fix line endings
Apr 1, 2020
a16a352
Lora: Add driver implementation inside DEVICE_SPI flag
Apr 6, 2020
a1a98ab
Lora: Move drivers to own COMPONENT -directories
Apr 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,342 changes: 1,342 additions & 0 deletions components/lora/COMPONENT_SX126X/SX126X_LoRaRadio.cpp

Large diffs are not rendered by default.

408 changes: 408 additions & 0 deletions components/lora/COMPONENT_SX126X/SX126X_LoRaRadio.h

Large diffs are not rendered by default.

22 changes: 22 additions & 0 deletions components/lora/COMPONENT_SX126X/SleepMode.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Sleep Modes:

The SX126X series LoRa radios define two different sleep modes, namely:

i) Sleep mode with Cold Start (default mode in Mbed LoRaWAN stack)
ii) Sleep mode with Warm Start


Sleep mode with Warm Start:
This is the default sleep mode for this driver. Radio configurations are retained in this mode.
Typical power consumption in this mode is '600 nA'.


Sleep mode with Cold Start:
The driver can be configured to sleep with cold startup. This mode is the lowest power consuming state
for the SX126X series radios. No configurations are retained in this mode, that's why our driver takes
extra measures to keep backups of the configuration in the RAM. Typical power consumption in this mode
is '160 nA'. The radio takes about 3.5 milliseconds to wakeup properly because upon going to sleep all
components gets turned off. The radio thread blocks for that period of time. However, to reduce the impact
of this wakeup time on the time critical operations, the stack shouldn't put the radio to standby rather than
sleep before performing time critical operations. Mbed OS LoRaWAN stack handles this automatically which means
that the user can safely use sleep mode with cold start.
29 changes: 29 additions & 0 deletions components/lora/COMPONENT_SX126X/mbed_lib.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"name": "SX126X-lora-driver",
"config": {
"spi-frequency": {
"help": "SPI frequency, Default: 16 MHz",
"value": 16000000
},
"buffer-size": {
"help": "Max. buffer size the radio can handle, Default: 255 B",
"value": 255
},
"boost-rx": {
"help": "Increases sensitivity at the cost of power ~2mA for around ~3dB in sensitivity 0 = disabled, 1 = enabled",
"value": 0
},
"regulator-mode": {
"help": "Default: DCDC (low power, high BOM). Alternatively, LDO = 0. Check datasheet section 5.1 for more details",
"value": 1
},
"sleep-mode": {
"help": "Default: Cold start = 1, Warm start = 0. Check SleepMode.txt",
"value": 1
},
"standby-mode": {
"help": "Default: STDBY_RC = 0, STDBY_XOSC = 1",
"value": 0
}
}
}
Loading