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

Radio Test - Logging Results in RX Sweep

Hi,

the evalboard seems successfully implementing the command start_rx_sweep by placing the receiver in the sweep mode.

infocenter.nordicsemi.com/.../nrf_radio_test_example.html

What commands to use to be able to log the measured received power values over UART and corresponding active receive channel?

Ideally 1 power level (dBm) per channel.

Thanks.

Parents
  • Hi,

     

     

    What commands to use to be able to log the measured received power values over UART and corresponding active receive channel?

    Unfortunately, the example does not print the RSSI value. If you require this functionality, you have to modify the example and add it manually, first by enabling the RSSI shorts in radio_test.c::radio_rx():

    NRF_RADIO->SHORTS    = RADIO_SHORTS_READY_START_Msk | RADIO_SHORTS_END_START_Msk | RADIO_SHORTS_DISABLED_RSSISTOP_Msk | RADIO_SHORTS_ADDRESS_RSSISTART_Msk;

     

    You should then be able to read out the RSSISAMPLE register when EVENTS_RSSIEND is set.

     

    Kind regards,

    Håkon

  • I try to help him and use the following code:

    /*active RX MODE*/
    radio_rx(mode, m_channel);
    
    /*start single RSSI Measurement*/
    NRF_RADIO->TASKS_RSSISTART = 1;
    
    /*wait until the measurement is running*/
    while(NRF_RADIO->EVENTS_RSSIEND == 0);
    
    /*overwrite this events*/
    NRF_RADIO->EVENTS_RSSIEND = 0;
    /*sample the RSSI Value*/
    rssi = (int8_t)NRF_RADIO->RSSISAMPLE;
    
    /*print the rssi value and channel information*/
    nrf_cli_fprintf(p_cli_test, NRF_CLI_NORMAL, "RSSI:%d, Channel: %d \r\n",rssi,m_channel);

    but on the UART we see always 127. 

    If i start a debug session, and we go step by step inside the code then we see normal rssi values. 

    What we do wrong?

    Best Regards,

    Roman  

Reply
  • I try to help him and use the following code:

    /*active RX MODE*/
    radio_rx(mode, m_channel);
    
    /*start single RSSI Measurement*/
    NRF_RADIO->TASKS_RSSISTART = 1;
    
    /*wait until the measurement is running*/
    while(NRF_RADIO->EVENTS_RSSIEND == 0);
    
    /*overwrite this events*/
    NRF_RADIO->EVENTS_RSSIEND = 0;
    /*sample the RSSI Value*/
    rssi = (int8_t)NRF_RADIO->RSSISAMPLE;
    
    /*print the rssi value and channel information*/
    nrf_cli_fprintf(p_cli_test, NRF_CLI_NORMAL, "RSSI:%d, Channel: %d \r\n",rssi,m_channel);

    but on the UART we see always 127. 

    If i start a debug session, and we go step by step inside the code then we see normal rssi values. 

    What we do wrong?

    Best Regards,

    Roman  

Children
Related