Skip to content

Commit a82429d

Browse files
committed
Release v2.2.0
1 parent de10d43 commit a82429d

File tree

6 files changed

+254
-0
lines changed

6 files changed

+254
-0
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [2.2.0] - 2023-03-27
8+
9+
### Added
10+
11+
- `llcc68_driver_version_get_version_string()` function - produces a c-string representation of the driver version
12+
- `LLCC68_DRIVER_VERSION_CHECK` macro - validates the provided version information is compatible with the driver
13+
14+
## [2.1.0] - 2022-05-18
15+
16+
### Added
17+
18+
- `llcc68_set_gfsk_pkt_address()` function - configure both GFSK node and brodcast filtering addresses
19+
- `llcc68_handle_rx_done()` function - perform all requested actions when the chip leaves the Rx mode
20+
721
## [2.0.1] - 2021-11-23
822

923
### Added

src/llcc68.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,6 +741,14 @@ llcc68_status_t llcc68_set_lora_pkt_params( const void* context, const llcc68_pk
741741
return status;
742742
}
743743

744+
llcc68_status_t llcc68_set_gfsk_pkt_address( const void* context, const uint8_t node_address,
745+
const uint8_t broadcast_address )
746+
{
747+
const uint8_t addresses[2] = { node_address, broadcast_address };
748+
749+
return llcc68_write_register( context, LLCC68_REG_GFSK_NODE_ADDRESS, addresses, 2 );
750+
}
751+
744752
llcc68_status_t llcc68_set_cad_params( const void* context, const llcc68_cad_params_t* params )
745753
{
746754
const uint8_t buf[LLCC68_SIZE_SET_CAD_PARAMS] = {
@@ -1241,6 +1249,11 @@ uint32_t llcc68_convert_timeout_in_ms_to_rtc_step( uint32_t timeout_in_ms )
12411249
return ( uint32_t )( timeout_in_ms * ( LLCC68_RTC_FREQ_IN_HZ / 1000 ) );
12421250
}
12431251

1252+
llcc68_status_t llcc68_handle_rx_done( const void* context )
1253+
{
1254+
return llcc68_stop_rtc( context );
1255+
}
1256+
12441257
//
12451258
// Registers access
12461259
//

src/llcc68.h

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ extern "C" {
8989
*/
9090
#define LLCC68_OCP_PARAM_VALUE_140_MA 0x38
9191

92+
/**
93+
* @brief XTA and XTB trimming capacitor default value after the chip entered @ref LLCC68_STANDBY_CFG_XOSC mode
94+
*/
95+
#define LLCC68_XTAL_TRIMMING_CAPACITOR_DEFAULT_VALUE_STDBY_XOSC 0x12
96+
9297
/**
9398
* @brief Maximum value for parameter nb_of_symbs in @ref llcc68_set_lora_symb_nb_timeout
9499
*/
@@ -713,6 +718,8 @@ llcc68_status_t llcc68_set_tx_with_timeout_in_rtc_step( const void* context, con
713718
* | ----------------------| --------------------------------------------------------------------------------------|
714719
* | LLCC68_RX_SINGLE_MODE | Single: the chip stays in RX mode until a reception occurs, then switch to standby RC |
715720
*
721+
* @remark Refer to @ref llcc68_handle_rx_done
722+
*
716723
* @param [in] context Chip implementation context
717724
* @param [in] timeout_in_ms The timeout configuration in millisecond for Rx operation
718725
*
@@ -741,6 +748,8 @@ llcc68_status_t llcc68_set_rx( const void* context, const uint32_t timeout_in_ms
741748
* | LLCC68_RX_SINGLE_MODE | Single: the chip stays in RX mode until a reception occurs, then switch to standby RC |
742749
* | LLCC68_RX_CONTINUOUS | Continuous: the chip stays in RX mode even after reception of a packet |
743750
*
751+
* @remark Refer to @ref llcc68_handle_rx_done
752+
*
744753
* @param [in] context Chip implementation context
745754
* @param [in] timeout_in_rtc_step The timeout configuration for Rx operation
746755
*
@@ -1174,6 +1183,20 @@ llcc68_status_t llcc68_set_gfsk_pkt_params( const void* context, const llcc68_pk
11741183
*/
11751184
llcc68_status_t llcc68_set_lora_pkt_params( const void* context, const llcc68_pkt_params_lora_t* params );
11761185

1186+
/*!
1187+
* @brief Set the Node and Broadcast address used for GFSK
1188+
*
1189+
* This setting is used only when filtering is enabled.
1190+
*
1191+
* @param [in] context Chip implementation context
1192+
* @param [in] node_address The node address used as filter
1193+
* @param [in] broadcast_address The broadcast address used as filter
1194+
*
1195+
* @returns Operation status
1196+
*/
1197+
llcc68_status_t llcc68_set_gfsk_pkt_address( const void* context, const uint8_t node_address,
1198+
const uint8_t broadcast_address );
1199+
11771200
/**
11781201
* @brief Set the parameters for CAD operation
11791202
*
@@ -1448,6 +1471,18 @@ uint32_t llcc68_convert_freq_in_hz_to_pll_step( uint32_t freq_in_hz );
14481471
*/
14491472
uint32_t llcc68_convert_timeout_in_ms_to_rtc_step( uint32_t timeout_in_ms );
14501473

1474+
/**
1475+
* @brief Generic finalizing function after reception
1476+
*
1477+
* @remark This function can be called after any reception sequence and must be called after any reception with timeout
1478+
* active sequence.
1479+
*
1480+
* @param [in] context Chip implementation context
1481+
*
1482+
* @returns Operation status
1483+
*/
1484+
llcc68_status_t llcc68_handle_rx_done( const void* context );
1485+
14511486
//
14521487
// Registers access
14531488
//

src/llcc68_driver_version.c

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
/*!
2+
* @file llcc68_driver_version.c
3+
*
4+
* @brief Placeholder to keep the version of LLCC68 driver.
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+
35+
/*
36+
* -----------------------------------------------------------------------------
37+
* --- DEPENDENCIES ------------------------------------------------------------
38+
*/
39+
40+
#include "llcc68_driver_version.h"
41+
42+
/*
43+
* -----------------------------------------------------------------------------
44+
* --- PRIVATE MACROS-----------------------------------------------------------
45+
*/
46+
47+
#define STR_HELPER( x ) #x
48+
#define STR( x ) STR_HELPER( x )
49+
50+
#define LLCC68_DRIVER_VERSION_FULL \
51+
"v" STR( LLCC68_DRIVER_VERSION_MAJOR ) "." STR( LLCC68_DRIVER_VERSION_MINOR ) "." STR( LLCC68_DRIVER_VERSION_PATCH )
52+
53+
/*
54+
* -----------------------------------------------------------------------------
55+
* --- PRIVATE CONSTANTS -------------------------------------------------------
56+
*/
57+
58+
/*
59+
* -----------------------------------------------------------------------------
60+
* --- PRIVATE TYPES -----------------------------------------------------------
61+
*/
62+
63+
/*
64+
* -----------------------------------------------------------------------------
65+
* --- PRIVATE VARIABLES -------------------------------------------------------
66+
*/
67+
68+
/*
69+
* -----------------------------------------------------------------------------
70+
* --- PRIVATE FUNCTIONS DECLARATION -------------------------------------------
71+
*/
72+
73+
/*
74+
* -----------------------------------------------------------------------------
75+
* --- PUBLIC FUNCTIONS DEFINITION ---------------------------------------------
76+
*/
77+
78+
const char* llcc68_driver_version_get_version_string( void )
79+
{
80+
return ( const char* ) LLCC68_DRIVER_VERSION_FULL;
81+
}
82+
83+
/*
84+
* -----------------------------------------------------------------------------
85+
* --- PRIVATE FUNCTIONS DEFINITION --------------------------------------------
86+
*/
87+
88+
/* --- EOF ------------------------------------------------------------------ */

src/llcc68_driver_version.h

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
/*!
2+
* @file llcc68_driver_version.h
3+
*
4+
* @brief Placeholder to keep the version of LLCC68 driver.
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+
35+
#ifndef LLCC68_DRIVER_VERSION_H
36+
#define LLCC68_DRIVER_VERSION_H
37+
38+
#ifdef __cplusplus
39+
extern "C" {
40+
#endif
41+
42+
/*
43+
* -----------------------------------------------------------------------------
44+
* --- DEPENDENCIES ------------------------------------------------------------
45+
*/
46+
47+
/*
48+
* -----------------------------------------------------------------------------
49+
* --- PUBLIC MACROS -----------------------------------------------------------
50+
*/
51+
52+
/*
53+
* -----------------------------------------------------------------------------
54+
* --- PUBLIC CONSTANTS --------------------------------------------------------
55+
*/
56+
57+
#define LLCC68_DRIVER_VERSION_MAJOR 2
58+
#define LLCC68_DRIVER_VERSION_MINOR 2
59+
#define LLCC68_DRIVER_VERSION_PATCH 0
60+
61+
/*
62+
* -----------------------------------------------------------------------------
63+
* --- PUBLIC TYPES ------------------------------------------------------------
64+
*/
65+
66+
/*
67+
* -----------------------------------------------------------------------------
68+
* --- PUBLIC FUNCTIONS PROTOTYPES ---------------------------------------------
69+
*/
70+
71+
/*!
72+
* @brief Compare version information with current ones
73+
*
74+
* This macro expands to true boolean value if the version information provided in argument is compatible or
75+
* retro-compatible with the version of this code base
76+
*/
77+
#define LLCC68_DRIVER_VERSION_CHECK( x, y, z ) \
78+
( x == LLCC68_DRIVER_VERSION_MAJOR && \
79+
( y < LLCC68_DRIVER_VERSION_MINOR || \
80+
( y == LLCC68_DRIVER_VERSION_MINOR && z <= LLCC68_DRIVER_VERSION_PATCH ) ) )
81+
82+
const char* llcc68_driver_version_get_version_string( void );
83+
84+
#ifdef __cplusplus
85+
}
86+
#endif
87+
88+
#endif // LLCC68_DRIVER_VERSION_H
89+
90+
/* --- EOF ------------------------------------------------------------------ */

src/llcc68_regs.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,20 @@
202202
*/
203203
#define LLCC68_REG_RETENTION_LIST_BASE_ADDRESS 0x029F
204204

205+
/**
206+
* @brief GFSK node address
207+
*
208+
* @remark Reset value is 0x00
209+
*/
210+
#define LLCC68_REG_GFSK_NODE_ADDRESS 0x06CD
211+
212+
/**
213+
* @brief GFSK broadcast address
214+
*
215+
* @remark Reset value is 0x00
216+
*/
217+
#define LLCC68_REG_GFSK_BROADCAST_ADDRESS 0x06CE
218+
205219
/*
206220
* -----------------------------------------------------------------------------
207221
* --- PUBLIC TYPES ------------------------------------------------------------

0 commit comments

Comments
 (0)