RX problem of Coordinatior


I have a question about how does frame filter work for Coordinator. I have set up my test as follows:

  1. A coordinator (frame filter [8:0]000000011) with PAN ID 0x0001 and address 0x0001
  2. A tag with short address 0xFF01 and PAN ID 0xdeca
  3. The tag send a data frame without destination address. The format looks like
    [0:2]fctrl [3]seq [4:5]PID [6:7]SourceADDR [8:up]Payload [2 octets]FCS
    • fctrl[7:0]: 00000001 --> thus data frame
    • fctrl[15:8]: 10000000 --> thus PIDC = 0, no destination address and 16bit source address
    • PID: 0x0001 which is the same as the coordinator’s PID

I expect that the frame will be received by the coordinator as according to the manual "A coordinator will accept a frame without a destination address if the source address has the PAN_ID matching the coordinator’s PAN_ID. " However the coordinator fails to receive the frame. Once I turn off the frame filter, the frame can be successfully received.

Any idea where may be wrong? Thanks!