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

Why the data received are different from its sent in the packet ?

Hello,

I want to realize the data receiving and sending function,so I adapt the transmitter demo in '\nRF5_SDK_16.0.0_98a08e2\examples\peripheral\radio\',and my code is in attachment.

I use PPI and timer to record the timestamp when the packet is trying to be transmitted, like this:

NRF_PPI->CH[chn4].EEP = (uint32_t) &NRF_RADIO->EVENTS_READY;
NRF_PPI->CH[chn4].TEP = (uint32_t) &m_params.high_freq_timer[0]->TASKS_CAPTURE[3];
NRF_PPI->FORK[chn4].TEP = (uint32_t) &m_params.high_freq_timer[1]->TASKS_CAPTURE[1];
NRF_PPI->CHENSET = (1 << chn4);

NRF_RADIO->PACKETPTR = (uint32_t) p_pkt;
cur_time_send = m_params.high_freq_timer[0]->CC[3] + TX_CHAIN_DELAY;
……
p_pkt->time = cur_time_send;
NRF_LOG_RAW_INFO("p=%d,c=%d,s=%d\r\n",m_period,p_pkt->count,p_pkt->time);

And I print its value when receiving packet, like this:

uint32_t peer_time = p_pkt->time;
NRF_LOG_RAW_INFO("pt=%d,pc=%d,t=%d,c=%d\r\n",peer_time,peer_count,cur_time_receive,last_count);

In my opining, the data received from other node should be the same as they sent, however, I found the time I sent is 1239 but it turn to 1421 when other nodes received. And some of the data I intercepted are as follows, 

Could anyone tell me what will make the data changed in the packet? And I found that the packet cannot be received sometimes, so if there are some reason will affact the transmitting process?

By the way, I use NRF53832+nRF5_SDK_16.0.0_98a08e2.

Thanks very much!

7140.test.rar

Related