Using EUI and frame filtering

Hi

I try to use EUI for creating private network between trancivier and reciever.
I am reading user manual and understood for reciever I must to set bits FFEN for enable frame filtering and FFAM for using MAC filtering. Also I use function <set_EUI> for creating my EUI.
But I dont understood what should I do on tranciever part in order to reciever understood my messages.
What registers and functions should I use?
How to transfer EUI correctly?

Hello,

you have to generate frame per IEEE 802.15.4 standard. “Read APPENDIX 2: The IEEE 802.15.4 MAC layer” in user manual.

BR,
Hrvoje

Hi Dmitry,

Here is how I implemented frame filtering (the code is not perfect, but you’ll get a clue):

typedef struct packet_t
{
uint8 mac_hdr[2];
uint8 seq;
uint8 pan_id[2];
uint8 dst_id[2];


uint8 fsc[2];

} packet_t;

// MAC bits
#define MAC_DATA_FRAME_TYPE (1UL << 0)
#define MAC_PAN_ID_COMPRESS (1UL << 6)
#define MAC_DST_ADDR_16BIT (1UL << 11)
#define MAC_SRC_ADDR_16BIT (1UL << 15)
#define MAC_HDR (MAC_DATA_FRAME_TYPE | MAC_SRC_ADDR_16BIT | MAC_DST_ADDR_16BIT | MAC_PAN_ID_COMPRESS)
#define PAN_ID 0x5555

uint16_t mac_hdr = MAC_HDR;
uint16_t pan_id = PAN_ID;
packet_t p;

p.mac_hdr[0] = ((uint8*)&mac_hdr)[0];
p.mac_hdr[1] = ((uint8*)&mac_hdr)[1];
p.pan_id[0] = ((uint8*)&pan_id)[0];
p.pan_id[1] = ((uint8*)&pan_id)[1];
dwt_setpanid(PAN_ID);
then, if you want to enable frame filtering, do this:
dwt_enableframefilter(DWT_FF_DATA_EN);

when you need to disable it:
dwt_enableframefilter(DWT_FF_NOTYPE_EN);

Please also carefully read dw1000 manual, it explains the code above.

Have a nice day,
Stan

forgot one piece:
dwt_setaddress16(some_address_that_you_expect_to_pass_filtering);

Stan

Thank you very much!!!)

It is really help me to understood frame filtering.)

Please note, this implementation is for particular scenario, we used in our project, so pay attention to MAC header