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

nRF52832 ESB Rx/Tx

Hi,

I am using 2 nRF52832, one for ESB Tx and one for ESB Rx used to send payload through UART using SDK11.

Tx board is used has a low power transmitter which transmit data on power up and shutdown after transmission as succeeded using event flag NRF_ESB_EVENT_TX_SUCCESS.

Rx board is used to retrieve those intermittent payload with event flag NRF_ESB_EVENT_RX_RECEIVED. Once a payload is received, it is send to uart via app_uart_put. This works great. The problems we have is that we require a call to nrf_esb_flush_rx after receiving the first payload, otherwise no payload will ever be received again. With the flush_rx call, the Rx works forever without trouble. In some rare occasion, we will receive 2 payload, back-to-back (normal use-case). Using the nrf_esb_flush_rx, the second payload is always drop from the rx_fifo. Why is the nrf_esb_flush_rx require ?

As a starting point, we used the esb_low_power_prx/ptx example and stripping out all the LEDs/gpio part. Prior to that, pressing a button didn't required the nrf_esb_flush_rx to works.

Attached, is the simplex prx code to reproduce the problem. prx.cpp ptx.cpp

Any help would be appreciated.

HoTiX

Parents
  • I have done some testing with the ESB as well, using the esb_low_power_ptx from SDK11. The receiver side (esb_prx example) works fine every time we pressed the button to transmit. We changed the ptx code so that it transmit at boot without waiting for the button pressed. On power on both prx did receive the packet but subsequence restart of the ptx, prx no longer receives. prx only receives from fresh boot once with this scheme. The interesting part is that although it did not receive from the ptx power on but if we pressed the button to make another transmit, then the prx continues to receive. That was the problem described by OP and his solution seems to work. But we don't know the exact cause of it. I hope Nordic employee can shed a light on this.

Reply
  • I have done some testing with the ESB as well, using the esb_low_power_ptx from SDK11. The receiver side (esb_prx example) works fine every time we pressed the button to transmit. We changed the ptx code so that it transmit at boot without waiting for the button pressed. On power on both prx did receive the packet but subsequence restart of the ptx, prx no longer receives. prx only receives from fresh boot once with this scheme. The interesting part is that although it did not receive from the ptx power on but if we pressed the button to make another transmit, then the prx continues to receive. That was the problem described by OP and his solution seems to work. But we don't know the exact cause of it. I hope Nordic employee can shed a light on this.

Children
No Data
Related