An IEEE 802.15.4 network node can be operated as:
Use Cases:
/* AT86RF231::[CONFIG] */ trx_reg_write(RG_PAN_ID_0, panid_7_0); trx_reg_write(RG_PAN_ID_1, panid_15_8); trx_reg_write(RG_SHORT_ADDR_0, short_addr_7_0); trx_reg_write(RG_SHORT_ADDR_1, short_addr_15_8); trx_reg_write(RG_IEEE_ADDR_0, ext_addr_7_0); trx_reg_write(RG_IEEE_ADDR_1, ext_addr_15_8); trx_reg_write(RG_IEEE_ADDR_2, ext_addr_23_16); trx_reg_write(RG_IEEE_ADDR_3, ext_addr_31_24); trx_reg_write(RG_IEEE_ADDR_4, ext_addr_39_32); trx_reg_write(RG_IEEE_ADDR_5, ext_addr_47_40); trx_reg_write(RG_IEEE_ADDR_6, ext_addr_55_48); trx_reg_write(RG_IEEE_ADDR_7, ext_addr_63_56); trx_bit_write(SR_RX_SAFE_MODE, safe_mode); trx_bit_write(SR_SLOTTED_OPERATION, slotted_op); trx_bit_write(SR_AACK_FVN_MODE, fvn_mode); trx_bit_write(SR_AACK_PROM_MODE, 0); trx_bit_write(SR_AACK_I_AM_COORD, 0); trx_bit_write(SR_AACK_ACK_TIME, 0); trx_bit_write(SR_AACK_UPLD_RES_FT, 0); trx_bit_write(SR_AACK_FLTR_RES_FT, 0); trx_bit_write(SR_AACK_DIS_ACK, 0);
Compared to a device node, a PAN coordinator implements different address filtering mechanisms, which is described in detail in section section 7.2.3.5 (Frame Filter) of the AT86RF231 datasheet.
/* AT86RF231::[CONFIG] */ trx_reg_write(RG_PAN_ID_0, panid_7_0); trx_reg_write(RG_PAN_ID_1, panid_15_8); trx_reg_write(RG_SHORT_ADDR_0, short_addr_7_0); trx_reg_write(RG_SHORT_ADDR_1, short_addr_15_8); trx_reg_write(RG_IEEE_ADDR_0, ext_addr_7_0); trx_reg_write(RG_IEEE_ADDR_1, ext_addr_15_8); trx_reg_write(RG_IEEE_ADDR_2, ext_addr_23_16); trx_reg_write(RG_IEEE_ADDR_3, ext_addr_31_24); trx_reg_write(RG_IEEE_ADDR_4, ext_addr_39_32); trx_reg_write(RG_IEEE_ADDR_5, ext_addr_47_40); trx_reg_write(RG_IEEE_ADDR_6, ext_addr_55_48); trx_reg_write(RG_IEEE_ADDR_7, ext_addr_63_56); trx_bit_write(SR_RX_SAFE_MODE, safe_mode); trx_bit_write(SR_SLOTTED_OPERATION, slotted_op); trx_bit_write(SR_AACK_FVN_MODE, fvn_mode); trx_bit_write(SR_AACK_PROM_MODE, 0); trx_bit_write(SR_AACK_I_AM_COORD, 1); trx_bit_write(SR_AACK_ACK_TIME, 0); trx_bit_write(SR_AACK_UPLD_RES_FT, 0); trx_bit_write(SR_AACK_FLTR_RES_FT, 0); trx_bit_write(SR_AACK_DIS_ACK, 0);
/* AT86RF231::[CONFIG] */ trx_reg_write(RG_PAN_ID_0, 0); trx_reg_write(RG_PAN_ID_1, 0); trx_reg_write(RG_SHORT_ADDR_0, 0); trx_reg_write(RG_SHORT_ADDR_1, 0); trx_reg_write(RG_IEEE_ADDR_0, 0); trx_reg_write(RG_IEEE_ADDR_1, 0); trx_reg_write(RG_IEEE_ADDR_2, 0); trx_reg_write(RG_IEEE_ADDR_3, 0); trx_reg_write(RG_IEEE_ADDR_4, 0); trx_reg_write(RG_IEEE_ADDR_5, 0); trx_reg_write(RG_IEEE_ADDR_6, 0); trx_reg_write(RG_IEEE_ADDR_7, 0); trx_bit_write(SR_RX_SAFE_MODE, safe_mode); trx_bit_write(SR_AACK_FVN_MODE, fvn_mode); trx_bit_write(SR_AACK_PROM_MODE, 1); trx_bit_write(SR_AACK_I_AM_COORD, 0); trx_bit_write(SR_AACK_UPLD_RES_FT, 0); trx_bit_write(SR_AACK_FLTR_RES_FT, 0); trx_bit_write(SR_AACK_DIS_ACK, 1);
1.5.2