TXADDRESS, RXADDRESSES registers: what are these and how we can use them?

Based on the NRF Radio manual, the over the air address of the packets, is configured using "BASEn" and "PREFIXn" registers.

However, there are 
also two other registers called "TXADDRESS" and "RXADDRESSES".

ThinkingThinking What is the application of these registers and how we can use them?

My current reading of the specification tells me that these are used to facilitate the filtering of the unwanted packets in the hardware level but I am not sure.

The BLE standard does not seem to have any instructions for this type of addresses (which is called logical addresses sometimes in the NRF Radio specification). Is this something that NRF has designed for extra flexibility and fast filtering and connection?


As far as APIs are concerned, I have found the following:

NRF_RADIO->RXADDRESSES = (uint32_t)(rxaddresses);
NRF_RADIO->TXADDRESS = ((uint32_t)txaddress) << RADIO_TXADDRESS_TXADDRESS_Pos;
 
Could you tell me what does the left shift operation in the second code do? (why we do that)

Thanks
  • Hi,

     

    The BLE standard does not seem to have any instructions for this type of addresses (which is called logical addresses sometimes in the NRF Radio specification). Is this something that NRF has designed for extra flexibility and fast filtering and connection?

    BLE is a full protocol, requiring loads of handling in firmware, and should not be compared to the register content of the NRF_RADIO peripheral.

    What do you actually want to do here? If you need BLE capabilities, please see bluetooth samples.

    As far as APIs are concerned, I have found the following:

    NRF_RADIO->RXADDRESSES = (uint32_t)(rxaddresses);
    NRF_RADIO->TXADDRESS = ((uint32_t)txaddress) << RADIO_TXADDRESS_TXADDRESS_Pos;
     
    Could you tell me what does the left shift operation in the second code do? (why we do that)

    It shifts the data into the RADIO_TXADDRESS bit position. The bit position of this specific register is at bit 0:

    https://infocenter.nordicsemi.com/topic/ps_nrf52833/radio.html?cp=5_1_0_5_17_14_57#register.TXADDRESS

     

    So, it basically does not shift anything in this scenario, but it is considered "good practice" to include this, in cases where you write to bit fields located on other bit positions.

     

    Kind regards,

    Håkon

  • Hi Hokan, thanks, but could you also answer my first question? What is the purpose of these registers? Also, I intentionally mentioned the BLE standard to highlight the fact that this "logical address" is not being discussed anywhere except in the NRF Radio document. Any ways, my main question is what is the purpose of these addresses and what uses that.

  • Hi,

     

    Please see this chapter:

    https://infocenter.nordicsemi.com/topic/ps_nrf52833/radio.html?cp=5_1_0_5_17_1#concept_mdy_kcj_4r

    It is for addressing, a way for the receiver to know which logical address it received a payload on.

     

    Omid said:
    I intentionally mentioned the BLE standard to highlight the fact that this "logical address" is not being discussed anywhere except in the NRF Radio document

    Remember that the nRF5-series radios are backwards compatible with the nRF24-series devices, where some devices are are close to 20 years of age now. There will be features that are not specifically targeted towards Bluetooth LE.

     

    Kind regards,

    Håkon

  • Thanks, I had already read that document. 
    However, I cannot understand from that document how these two logical addresses work:


    1. How these two relate the the air address?

    2. Why we need the logical addresses if we already use the air address?

    3. What happens if I do not use the logical address and only use the air address?


    I appreciate your help. 

  • Omid said:
    1. How these two relate the the air address?

    Please see table 1. in the PS.

    Omid said:

    2. Why we need the logical addresses if we already use the air address?

    You will need the registers and set them according to your needs.

    If you check the register definition for RXADDRESSES, you will see that it enables reception on a given address. You have in total 8 logical addresses, and this register enables/disables each physical RF address.

    Omid said:
    3. What happens if I do not use the logical address and only use the air address?

    A logical address is a lookup table for the on-air address.

    The usage logical vs. on-air address are not mutually exclusive, they are linked to the addressing itself.

     

    Kind regards,

    Håkon

     

Related