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

About 802.15.0.4 wireless uart example problem

Hi Nordic team

I tested the example[802_15_4\wireless_uart\raw\first] period 1s send 20 Byte data to example[\802_15_4\wireless_uart\raw\second]serial tool to printf these data.

send/receive run nRF52840 demo board.

But now appeared a phemon:first and second demo board work well and serial tool printf data period 1s,But after servel minutes. serial tool has no any data printf.

I reset the demo board(raw/second),it also can receive data on the serial tool. 

Base on the above,I had no modify any Configuration.

What can I debug this problem?

And encountered another problem: I also run 2 demo board(run the raw/first),the third demo board(run the raw/second) can not printf 2 demo board data on serial tool.

I remember I had tested the orginal example,it can run on the serial tool, 2 board(run raw/first) can send data successfully to third board(run raw/second) show successfully on the serial tool,in spite of I should click manually by myself to send the data.

Thanks!

Parents
  • It seem that error this API(void mcps_data_ind(mcps_data_ind_t * p_ind))

    when I debug,I had found it appeared these log   

    <info> app: Assertion info: Number of lost frames: -18
    <error> app: Assertion fault: !(next_counter_val == rx_counter) line: 94 file: E:\Beck\SDK\nRF5_SDK_15.3.0_59ac345-1\examples\802_15_4\wireless_uart\main.c
    <error> app: ASSERTION FAILED at E:\Beck\SDK\nRF5_SDK_15.3.0_59ac345-1\examples\802_15_4\wireless_uart\main.c:94

    run over 15min,it has encountered this phemon.

    I capture 15min packet data,it lost 8 times. 

    My test environment is inside, so why cause this lost frames?

    Thanks!

  • Hello,

    I did not manage to replicate the assertion by transferring a large file from one board to the other. The screenshot below shows how my test was set up. And I used the original example without security from SDK 17.0.0.  Could you try the same?

  • Hi Vidor Berg

    I had found the default is channel 15 on 2425MHZ the same with the blue5.0 broadcast frequnecy.

    If had the interface from this frequency,the serial tool can not printf the packet from the raw/first 20Byte data periodly 1s.

    I thinks that the demo example(SDK15.3) has no handle about this inteface packet data,

    Because I just start the app_timer at the end of the init sector main function.and then will callback the timer events function.use the source code as follows:

    memcpy(&m_radio_tx_buffer[COUNTER_POSITION], &tx_sequence_number, MAX_APP_SEQUENCE_NUMBER_SIZE);
    #if (CONFIG_SECURE == 1)
    memcpy(m_radio_tx_buffer_shadow, &m_radio_tx_buffer[COUNTER_POSITION],
    sz + MAX_APP_SEQUENCE_NUMBER_SIZE);
    #endif

    m_data_req.dst_addr_mode = MAC_ADDR_SHORT;
    m_data_req.dst_addr.short_address = CONFIG_OTHER_ADDRESS;
    m_data_req.dst_pan_id = CONFIG_PAN_ID;
    m_data_req.src_addr_mode = MAC_ADDR_SHORT;
    m_data_req.msdu = (uint8_t *)&m_radio_tx_buffer[MAC_MAX_MHR_SIZE];
    m_data_req.msdu_length = sz + MAX_APP_SEQUENCE_NUMBER_SIZE;
    m_data_req.msdu_handle++;
    m_data_req.tx_options.ack = true;
    m_data_req.tx_options.gts = false;
    m_data_req.tx_options.indirect = false;
    #if (CONFIG_SECURE == 1)
    m_data_req.security_level = CONFIG_DATA_SECURITY_LEVEL;
    m_data_req.key_id_mode = 0;
    #endif
    mcps_data_req(&m_data_req, mcps_data_conf);

    The assert log show that lost the ack packet answer frame number,so it will enter it.

    So I wiil check can add the function about handle the packet interface.I think I had no entirely understand the run process this project example.

    From my test log and test steps,it seem that no using IEE802.15.4-2006.

    I will try to find this out and feedback to you. 

    Thanks!

Reply
  • Hi Vidor Berg

    I had found the default is channel 15 on 2425MHZ the same with the blue5.0 broadcast frequnecy.

    If had the interface from this frequency,the serial tool can not printf the packet from the raw/first 20Byte data periodly 1s.

    I thinks that the demo example(SDK15.3) has no handle about this inteface packet data,

    Because I just start the app_timer at the end of the init sector main function.and then will callback the timer events function.use the source code as follows:

    memcpy(&m_radio_tx_buffer[COUNTER_POSITION], &tx_sequence_number, MAX_APP_SEQUENCE_NUMBER_SIZE);
    #if (CONFIG_SECURE == 1)
    memcpy(m_radio_tx_buffer_shadow, &m_radio_tx_buffer[COUNTER_POSITION],
    sz + MAX_APP_SEQUENCE_NUMBER_SIZE);
    #endif

    m_data_req.dst_addr_mode = MAC_ADDR_SHORT;
    m_data_req.dst_addr.short_address = CONFIG_OTHER_ADDRESS;
    m_data_req.dst_pan_id = CONFIG_PAN_ID;
    m_data_req.src_addr_mode = MAC_ADDR_SHORT;
    m_data_req.msdu = (uint8_t *)&m_radio_tx_buffer[MAC_MAX_MHR_SIZE];
    m_data_req.msdu_length = sz + MAX_APP_SEQUENCE_NUMBER_SIZE;
    m_data_req.msdu_handle++;
    m_data_req.tx_options.ack = true;
    m_data_req.tx_options.gts = false;
    m_data_req.tx_options.indirect = false;
    #if (CONFIG_SECURE == 1)
    m_data_req.security_level = CONFIG_DATA_SECURITY_LEVEL;
    m_data_req.key_id_mode = 0;
    #endif
    mcps_data_req(&m_data_req, mcps_data_conf);

    The assert log show that lost the ack packet answer frame number,so it will enter it.

    So I wiil check can add the function about handle the packet interface.I think I had no entirely understand the run process this project example.

    From my test log and test steps,it seem that no using IEE802.15.4-2006.

    I will try to find this out and feedback to you. 

    Thanks!

Children
Related