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  

  • Hi Roman,

     

    The call to "radio_rx()" does not wait until the radio is up and running. if you add a small delay (130 us + a bit of extra margin, lets say 200 us in total), it should properly log the RSSI.

     

    Remember to read out the RSSI as a negative number (rssi = -rssi;).

     

    Kind regards,

    Håkon

Reply Children
No Data
Related