mirror of https://github.com/ARMmbed/mbed-os.git
Sync STM S2LP RF driver to v0.0.2
Sync with v0.0.2 in master repository.pull/9828/head
parent
e8225fbd7c
commit
05dc1f2f0e
|
@ -99,6 +99,8 @@ extern void (*fhss_bc_switch)(void);
|
|||
#define CS_SELECT() {rf->CS = 0;}
|
||||
#define CS_RELEASE() {rf->CS = 1;}
|
||||
|
||||
extern const uint8_t ADDR_UNSPECIFIED[16];
|
||||
|
||||
typedef enum {
|
||||
RF_MODE_NORMAL = 0,
|
||||
RF_MODE_SNIFFER = 1
|
||||
|
@ -530,6 +532,7 @@ static void rf_init_registers(void)
|
|||
rf_write_register_field(PCKTCTRL1, PCKT_WHITENING_FIELD, PCKT_WHITENING_ENABLED);
|
||||
rf_write_register_field(PCKTCTRL2, PCKT_FIXVARLEN_FIELD, PCKT_VARIABLE_LEN);
|
||||
rf_write_register_field(PCKTCTRL3, PCKT_RXMODE_FIELD, PCKT_RXMODE_NORMAL);
|
||||
rf_write_register_field(PCKTCTRL3, PCKT_BYTE_SWAP_FIELD, PCKT_BYTE_SWAP_LSB);
|
||||
rf_write_register(PCKTCTRL5, PCKT_PREAMBLE_LEN);
|
||||
rf_write_register_field(PCKTCTRL6, PCKT_SYNCLEN_FIELD, PCKT_SYNCLEN);
|
||||
rf_write_register_field(QI, PQI_TH_FIELD, PQI_TH);
|
||||
|
@ -1154,7 +1157,16 @@ int8_t NanostackRfPhys2lp::rf_register()
|
|||
error("Multiple registrations of NanostackRfPhyAtmel not supported");
|
||||
return -1;
|
||||
}
|
||||
if (memcmp(_mac_addr, ADDR_UNSPECIFIED, 8) == 0) {
|
||||
randLIB_seed_random();
|
||||
randLIB_get_n_bytes_random(s2lp_MAC, 8);
|
||||
s2lp_MAC[0] |= 2; //Set Local Bit
|
||||
s2lp_MAC[0] &= ~1; //Clear multicast bit
|
||||
tr_info("Generated random MAC %s", trace_array(s2lp_MAC,8));
|
||||
set_mac_address(s2lp_MAC);
|
||||
}
|
||||
rf = _rf;
|
||||
|
||||
int8_t radio_id = rf_device_register(_mac_addr);
|
||||
if (radio_id < 0) {
|
||||
rf = NULL;
|
||||
|
|
|
@ -242,6 +242,8 @@ extern "C" {
|
|||
#define PCKT_FORMAT_802_15_4 (1 << 6)
|
||||
#define PCKT_RXMODE_FIELD 0x30
|
||||
#define PCKT_RXMODE_NORMAL (0 << 4)
|
||||
#define PCKT_BYTE_SWAP_FIELD 0x04
|
||||
#define PCKT_BYTE_SWAP_LSB (1 << 2)
|
||||
|
||||
// PCKTCTRL2
|
||||
#define PCKT_FIXVARLEN_FIELD 0x01
|
||||
|
|
Loading…
Reference in New Issue