Frame Filtering for 64bits broadcast on a set panID

Hi,
Does the DWM1000 support Frame Filtering for a 64-bit address broadcast?

DWM1000 User Manual says:

The Destination Address if present must:
o Be the (short 16-bit) broadcast address (0xFFFF)
o Or be a short (16-bit) address matching the SHORT_ADDR programmed in Register file: 0x03
– PAN Identifier and Short Address
o Or be a long (64-bit) address matching the Register file: 0x01 –Extended Unique Identifier.

It doesn’t mention anything about 64-bit broadcast address, and tests using 0xFFFFFFFFFFFFFFFF don’t work either.

Our frame format looks like this:
static uint8 tx_msg = {0x61, 0xDC, 0, 0xCA, 0xDE, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x01, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x02, 0xAF, 0, 0};
where 0xAAAAAAAAAAAAAA01 is the receivers ID (and it works). replacing that with F’s doesn’t work.

Regards,
Tomás Ibaceta.

Hi Tomas

Sorry for the late response, it took me some time to reproduce this.

Using a long (64-bit) broadcast address for frame filtering does indeed not seem to work, as the documentation suggests. Only the short 16-bit broadcast address is supported. When using an extended address only the address configured in Register file: 0x01 –Extended Unique Identifier will pass the frame filter.

The DW1000 UM does not explicitly state this. Using a broadcast long (extended) address does not seem to be supported by the IEE 802.15.4 (-2020) specification. It only mentions short broadcast addresses.

1 Like

Hi,

Thanks for taking the time to check the problem out. Luckily, we found a workaround!

DWM1000 UM(2.11), page 49/242:

If the frame is a beacon frame then the Source PAN ID must match the PAN_ID programmed in Register file: 0x03 – PAN Identifier and Short Address, (or be 0xFFFF)

So: Beacon frames don’t need a destination address to pass through the frame filtering. To send a broadcast, set the frame control bits (11-10) so the packet doesn’t use destination address.

This worked for us, extended address devices receive and FF normally:

static uint8 tx_msg = {0x00, 0xD0, 0, 0xCA, 0xDE, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x02, 0xAF, 0, 0};

1 Like