Skip to content

Commit 05dc1f2

Browse files
author
Arto Kinnunen
committed
Sync STM S2LP RF driver to v0.0.2
Sync with v0.0.2 in master repository.
1 parent e8225fb commit 05dc1f2

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

components/802.15.4_RF/stm-s2lp-rf-driver/source/NanostackRfPhys2lp.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ extern void (*fhss_bc_switch)(void);
9999
#define CS_SELECT() {rf->CS = 0;}
100100
#define CS_RELEASE() {rf->CS = 1;}
101101

102+
extern const uint8_t ADDR_UNSPECIFIED[16];
103+
102104
typedef enum {
103105
RF_MODE_NORMAL = 0,
104106
RF_MODE_SNIFFER = 1
@@ -530,6 +532,7 @@ static void rf_init_registers(void)
530532
rf_write_register_field(PCKTCTRL1, PCKT_WHITENING_FIELD, PCKT_WHITENING_ENABLED);
531533
rf_write_register_field(PCKTCTRL2, PCKT_FIXVARLEN_FIELD, PCKT_VARIABLE_LEN);
532534
rf_write_register_field(PCKTCTRL3, PCKT_RXMODE_FIELD, PCKT_RXMODE_NORMAL);
535+
rf_write_register_field(PCKTCTRL3, PCKT_BYTE_SWAP_FIELD, PCKT_BYTE_SWAP_LSB);
533536
rf_write_register(PCKTCTRL5, PCKT_PREAMBLE_LEN);
534537
rf_write_register_field(PCKTCTRL6, PCKT_SYNCLEN_FIELD, PCKT_SYNCLEN);
535538
rf_write_register_field(QI, PQI_TH_FIELD, PQI_TH);
@@ -1154,7 +1157,16 @@ int8_t NanostackRfPhys2lp::rf_register()
11541157
error("Multiple registrations of NanostackRfPhyAtmel not supported");
11551158
return -1;
11561159
}
1160+
if (memcmp(_mac_addr, ADDR_UNSPECIFIED, 8) == 0) {
1161+
randLIB_seed_random();
1162+
randLIB_get_n_bytes_random(s2lp_MAC, 8);
1163+
s2lp_MAC[0] |= 2; //Set Local Bit
1164+
s2lp_MAC[0] &= ~1; //Clear multicast bit
1165+
tr_info("Generated random MAC %s", trace_array(s2lp_MAC,8));
1166+
set_mac_address(s2lp_MAC);
1167+
}
11571168
rf = _rf;
1169+
11581170
int8_t radio_id = rf_device_register(_mac_addr);
11591171
if (radio_id < 0) {
11601172
rf = NULL;

components/802.15.4_RF/stm-s2lp-rf-driver/source/s2lpReg.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,8 @@ extern "C" {
242242
#define PCKT_FORMAT_802_15_4 (1 << 6)
243243
#define PCKT_RXMODE_FIELD 0x30
244244
#define PCKT_RXMODE_NORMAL (0 << 4)
245+
#define PCKT_BYTE_SWAP_FIELD 0x04
246+
#define PCKT_BYTE_SWAP_LSB (1 << 2)
245247

246248
// PCKTCTRL2
247249
#define PCKT_FIXVARLEN_FIELD 0x01

0 commit comments

Comments
 (0)