This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

When the TX_ADDRESS of the receiver nRF905 is 0x55, 0xA5, and 0xFF, only the data cannot be received.

HI, I recently used nRF905, a one-to-many intercommunication project, because one-to-many will send corresponding instructions for machines with different serial numbers, and need multiple receiving addresses (default is 0xE7). When I set to 0x55 as the receiving address, And other settings are as follows. It is found that devices with receiving addresses of 0x55 (01010101), 0xA5 (10100101), and 0xFF (11111111) can normally send data to other receiving devices and receive them, but other devices have these three values. When sending data for the device receiving the address, you can see that the carrier detect (CD) and address check (AM) pins are set high through the circuit, but you can't read the data, hope to answer, thank you!


// define nRF905 configration register .
#define nRF905_CONFIG_REG_0      0x6A             
#define nRF905_CONFIG_REG_1      0x0C           
#define nRF905_CONFIG_REG_2      0x44              
#define nRF905_CONFIG_REG_3      0x20            
#define nRF905_CONFIG_REG_4      0X20          
#define nRF905_ADDRESS_REG_0   0xE7           //        0x55  or  0xA5  or  0xFFcannot be received.
#define nRF905_ADDRESS_REG_1   0xE7           //        0x55  or  0xA5  or  0xFFcannot be received.
#define nRF905_ADDRESS_REG_2   0xE7           //        0x55  or  0xA5  or  0xFFcannot be received.
#define nRF905_ADDRESS_REG_3   0xE7           //        0x55  or  0xA5  or  0xFFcannot be received.
#define nRF905_CONFIG_REG_9      0x58

Parents
  • In general using address bytes of AA and 55 can be problematic since it resemble the preamble, using 00 and FF is a bad idea since it occurs frequently in random demodulated noise. So try to avoid those 4 bytes in your address (especially as the first byte).

    Also I recommend to enable 2byte CRC instead of 1byte CRC. You may consider readback all 9 bytes in the RF Config register to verify all are set as expected.

    Best regards,
    Kenneth

Reply
  • In general using address bytes of AA and 55 can be problematic since it resemble the preamble, using 00 and FF is a bad idea since it occurs frequently in random demodulated noise. So try to avoid those 4 bytes in your address (especially as the first byte).

    Also I recommend to enable 2byte CRC instead of 1byte CRC. You may consider readback all 9 bytes in the RF Config register to verify all are set as expected.

    Best regards,
    Kenneth

Children
  • Thank you for your reply. I have enabled the 2byte CRC. I have read back the contents of the RF Config register when the device is in the receiving state. There is no problem, but the situation that 0x55 and 0xA5 cannot be received still exists. I will not use these two addresses for the time being. RX_ADDRESS value, do you have other better similar chip models that do not have address restrictions?
    In addition, can you explain in detail how the data packet identification is implemented when nRF905 receives data, for example, how is the preamble and address removed after the CRC check is completed? If the address error is set to 0x55 (01010101), will it Is it recognized as the preamble, caused to be removed and lose the packet ?
  • The only intention of the preamble is for the radio front-end to "lock on" the modulated carrier, it's not part of the received packet that is decoded by the application or radio. It's added automatically by hardware before packet transmission, this ensure that the the receiver to successfully demodulate the address, data and crc.

    You may in your case also look into the design of the nRF905, to make sure you have in great detail follow the schematic and layout (with same clearance, cut-out, vias, matching etc). Verify the layout is working as intended by measure the carrier and output power on a spectrum analyzer. 

    We don't have any other product for the sub 1GHz no.

Related