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

Timeslot ESB PRX becomes stuck soon after PTX keeps sending message.

Hi,

PTX: based on the SDK11 "\examples\proprietary_rf\esb_ptx\pca10040\blank\arm4\esb_ptx_blank_pca10040.uvproj", what I changed is delete the "nrf_delay_us(50000)" in main(), to make it sends ESB message more quickly.

PRX: based on the code devzone.nordicsemi.com/.../0b06eda14f86904e772113776c11034e, what I changed is "nrf_esb_config.mode = NRF_ESB_MODE_PRX". It will hit the app_error_fault_handler after few seconds.

Both PTX and PRX run at PCA10040(V1.1.0 2016.11), you can find the code in this attachment below, thank you very much!

BothRunAt52DK.zip

Parents
  • Hi XiongYin,

    Thanks for the detailed information and the demo code.

    We found that it was due to a bug in the implementation of nrf_esb.c

    So if you in nrf_esb_stop_rx() modify :

    if (m_nrf_esb_mainstate == NRF_ESB_STATE_PRX)
    

    to

     if ((m_nrf_esb_mainstate == NRF_ESB_STATE_PRX)||(m_nrf_esb_mainstate ==NRF_ESB_STATE_PRX_SEND_ACK))
    

    It should work. Please let me know if the issue still occurs.

Reply
  • Hi XiongYin,

    Thanks for the detailed information and the demo code.

    We found that it was due to a bug in the implementation of nrf_esb.c

    So if you in nrf_esb_stop_rx() modify :

    if (m_nrf_esb_mainstate == NRF_ESB_STATE_PRX)
    

    to

     if ((m_nrf_esb_mainstate == NRF_ESB_STATE_PRX)||(m_nrf_esb_mainstate ==NRF_ESB_STATE_PRX_SEND_ACK))
    

    It should work. Please let me know if the issue still occurs.

Children
Related