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

About disabling ESB and setting addresses with NRF51822

Hello!

I am working with a NRF51822 and I need to change the address of pipes regularly (so I can use more than 8 NRF communicating together with ESB protocol).

My problem is the following : to make the function nrf_esb_set_address_prefix_byte work, I need to stop ESB via the function nrf_esb_disable() and wait for the nrf_esb_disabled() to be called. Unfortunately, this takes a lot of time : up to 62ms in my tests. This is not acceptable for my need. Changing addresses isn't so long with NRF24. Is there a solution to change addresses more quickly with NRF51822?

Thanks.

PS: I posted the same question here.

Parents
  • Hi Nicolas,

    With your configuration, I'm seeing a delay from 0.14 (nominal) to 0.6 ms when disabling/update config/enabling. Here's my test while-loop:

            nrf_gpio_pin_set(0);
            nrf_esb_disable();
            while(nrf_esb_is_enabled());
            if (nrf_esb_set_channel(cnt & 0x3f))
                nrf_gpio_pin_clear(0);          
            nrf_esb_enable(); 
            while(!nrf_esb_is_enabled());
    

    Could you post your project so I can debug it at my end?

    Best regards Håkon

Reply
  • Hi Nicolas,

    With your configuration, I'm seeing a delay from 0.14 (nominal) to 0.6 ms when disabling/update config/enabling. Here's my test while-loop:

            nrf_gpio_pin_set(0);
            nrf_esb_disable();
            while(nrf_esb_is_enabled());
            if (nrf_esb_set_channel(cnt & 0x3f))
                nrf_gpio_pin_clear(0);          
            nrf_esb_enable(); 
            while(!nrf_esb_is_enabled());
    

    Could you post your project so I can debug it at my end?

    Best regards Håkon

Children
No Data
Related