For the "BASE0/1" in the doc of infocenter: does it mean the address before "addr_conv", or after?

Hi,

I'm using SDK v14.2.0.

For the workaround of [107] RADIO: Immediate address match for access addresses containing MSBs 0x00

I'm trying to avoid the addresses in the list, then I found there is a function "addr_conv" when Nordic set my 4-byte address (like: 0x11,0x22,0x33,0x44) to registers "BASE0/1", and it converts the address to like: 0x8844CC22.

So my question are:

  • When this workaround saying that "pls avoid BASE0=0x0000XXXX", this "0x0000XXXX" is the one before "addr_conv", or after?
  • My scenario is: BASE0/1 are set by app, so I need provide these addresses to our app to avoid the "NRF_ERROR_INVALID_PARAM" of "nrf_esb_set_base_address_0/1", if these addresses are the ones after "addr_conv", then I have to also provide the function "addr_conv", right?

Thanks!

Parents
  • Hi Kenneth,

    Thank you very much for all the explanation!

    My 2 cents here for Nordic and other viewers, as the user of nfr_esb, or: the caller of "nrf_esb_set_base_address_0/1(p_addr)":

    • The "avoid address" list should be described as an "unsigned char" array, same as "p_addr", like "p_addr != {0xXX, 0xXX, 0x00, 0x00}":
      • When I first time get the info "BASE0=0x0000XXXX", I have to look into the "nrf_esb_set_base_address_0/1" to check its endian for preparing my "p_addr", then I found the "addr_conv" which is used not only for checking, but also before writing "p_addr" to the BASE0/1 registers.
    • Also, the "BASE0/1" in the address list confuses me very much which I think should not be listed here:
      • I found Nordic uses  "addr_conv" to convert my input "p_addr" before writing it to the "BASE0/1" registers. So the question comes out naturally: oh you said "BASE0=0x0000XXXX" is not suggested, then I need to ensure that my input "p_addr" won't become "0x0000XXXX" after your "addr_conv", since I think the "BASE0" here is the register "BASE0", not my input parameter "p_addr"。
      • I know the  "addr_conv" won't change the value like "0000" actually, but it still confused me much when it is just before writing to register "BASE0".
    • Totally, although there are many open-source in Nordic and helps us engineering very much, there still should be a clear and easy-understanding description for every function.

    Thanks!

Reply
  • Hi Kenneth,

    Thank you very much for all the explanation!

    My 2 cents here for Nordic and other viewers, as the user of nfr_esb, or: the caller of "nrf_esb_set_base_address_0/1(p_addr)":

    • The "avoid address" list should be described as an "unsigned char" array, same as "p_addr", like "p_addr != {0xXX, 0xXX, 0x00, 0x00}":
      • When I first time get the info "BASE0=0x0000XXXX", I have to look into the "nrf_esb_set_base_address_0/1" to check its endian for preparing my "p_addr", then I found the "addr_conv" which is used not only for checking, but also before writing "p_addr" to the BASE0/1 registers.
    • Also, the "BASE0/1" in the address list confuses me very much which I think should not be listed here:
      • I found Nordic uses  "addr_conv" to convert my input "p_addr" before writing it to the "BASE0/1" registers. So the question comes out naturally: oh you said "BASE0=0x0000XXXX" is not suggested, then I need to ensure that my input "p_addr" won't become "0x0000XXXX" after your "addr_conv", since I think the "BASE0" here is the register "BASE0", not my input parameter "p_addr"。
      • I know the  "addr_conv" won't change the value like "0000" actually, but it still confused me much when it is just before writing to register "BASE0".
    • Totally, although there are many open-source in Nordic and helps us engineering very much, there still should be a clear and easy-understanding description for every function.

    Thanks!

Children
No Data
Related