I want to send data from an ESB module in receive mode

I use:
--nrf52840
--nRF5_SDK_17.1.0
--ESB.

Normally, 1:1 communication in one direction is performed from the module with nrf_esb_mode_t = 'NRF_ESB_MODE_PTX'  to the module with NRF_ESB_MODE_PRX. In this case, the ACK reply is also disabled.

Only during maintenance, we want to transfer data from the module of 'NRF_ESB_MODE_PRX' to the module of 'NRF_ESB_MODE_PTX' without changing this mode.

Specifically, from the module of RF_ESB_MODE_PRX we perform the following.
   nrf_esb_write_payload(&tx_payload);
   nrf_esb_start_tx();
I then want to receive the contents of &tx_payload in the module of NRF_ESB_MODE_PTX.

I have tried, but from RF_ESB_MODE_PRX, probably no radio waves are being transmitted.

Is it still not possible to communicate in the opposite direction without exchanging the respective modes?

Parents
  • Hi,

    Specifically, from the module of RF_ESB_MODE_PRX we perform the following.
       nrf_esb_write_payload(&tx_payload);
       nrf_esb_start_tx();

    For PRX, try to use nrf_esb_start_rx() instead of nrf_esb_start_tx().

    PS: We gave a ESB user guide here you might want to take a look at: https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/esb_users_guide.html

  • Thanks for the reply.

    I tried nrf_esb_start_rx() instead of nrf_esb_start_tx(), but the situation is still the same and the sending operation is not working.

    Isn't the operation that the module of 'NRF_ESB_MODE_PRX' transmits with nrf_esb_start_rx(), which means that the module of 'NRF_ESB_MODE_PRX' attaches the contents of the FIFO at the timing when it returns an ACK?

    If that is the case, then as I stated at the beginning, I am using NRF_ESB_MODE_PRX intentionally not to return ACK, and the method you suggest would be invalid.

    If it becomes clear that the NRF_ESB_MODE_PRX module, which does not return ACKs, cannot transmit spontaneously, we would like to consider another method.
    After all, it is impossible for a module of NRF_ESB_MODE_PRX that does not return ACK to transmit spontaneously?

    Translated with www.DeepL.com/Translator (free version)

Reply
  • Thanks for the reply.

    I tried nrf_esb_start_rx() instead of nrf_esb_start_tx(), but the situation is still the same and the sending operation is not working.

    Isn't the operation that the module of 'NRF_ESB_MODE_PRX' transmits with nrf_esb_start_rx(), which means that the module of 'NRF_ESB_MODE_PRX' attaches the contents of the FIFO at the timing when it returns an ACK?

    If that is the case, then as I stated at the beginning, I am using NRF_ESB_MODE_PRX intentionally not to return ACK, and the method you suggest would be invalid.

    If it becomes clear that the NRF_ESB_MODE_PRX module, which does not return ACKs, cannot transmit spontaneously, we would like to consider another method.
    After all, it is impossible for a module of NRF_ESB_MODE_PRX that does not return ACK to transmit spontaneously?

    Translated with www.DeepL.com/Translator (free version)

Children
Related