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

How to relay packets for nrf52811

Hi

    In my application, I use nrf52811 to relay data to make the data go further. If data is sent from point A to point B, point B receives the data and then forwards to point C. The sending and

receiving of point B use the same chip and wireless transceiver circuit.

I see the following state diagram from the specification of 52811 and think that 52811 should be able to achieve this function. I tried, but no success!

Can receive the data packet at point A, but failed to forward the data to point C.

Can anyone help me solve this problem?  thanks

 NRF_RADIO->TASKS_STOP = 1U;

packet[0]=13; //
for(i=1;i<13;i++)
packet[i]=j;

j=(j+1)%10;
send_packet();

/**@brief Function for sending packet.
*/
void send_packet()
{
// send the packet:
NRF_RADIO->EVENTS_READY = 0U;
NRF_RADIO->TASKS_TXEN = 1;

while (NRF_RADIO->EVENTS_READY == 0U)
{
// wait
}
NRF_RADIO->EVENTS_END = 0U;
NRF_RADIO->TASKS_START = 1U;

while (NRF_RADIO->EVENTS_END == 0U)
{
// wait
}

uint32_t err_code = bsp_indication_set(BSP_INDICATE_SENT_OK);
NRF_LOG_INFO("The packet was sent");
APP_ERROR_CHECK(err_code);

NRF_RADIO->EVENTS_DISABLED = 0U;
// Disable radio
NRF_RADIO->TASKS_DISABLE = 1U;

while (NRF_RADIO->EVENTS_DISABLED == 0U)
{
// wait
}


}

Related