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

Frequency Hopping affect transmission stability

Dear all

I'm testing for RF stability. As i used 24LU1(host) with 51822(device) be the platform. For audio data transmission.  8k 8bits data rate.

Timeslot set as 1008us & 2016us ,2 conditions for comparing.

1.single channel

2.hopping 5 channel

Its obvious that single channel performance better than hopping.

I don't know that is normal or not?

24lu1.rar

51822.rar

  • Hi,

    The timeslot period (nrf51) vs. GZLL_DEFAULT_PARAM_RX_PERIOD (nrf24l) seems to be correct. The timeslot set should be RX_PERIOD/2.

    In your case, you're sending audio data. Let's say that you buffer up 32 bytes: 1/8kHz * 1 byte * 32 byte = 4 ms

    So, you're going to be sending 32 bytes every 4 ms.

    Setting Gazell device mode 0 (asynchronous):

    Set channel policy to: NRF_GZLL_DEVICE_CHANNEL_SELECTION_POLICY_USE_CURRENT
    Set "nrf_gzll_set_sync_lifetime" to 0
    

    Setting Gazell device mode 2 (synchronous):

    Set channel policy to: NRF_GZLL_DEVICE_CHANNEL_SELECTION_POLICY_USE_SUCCESSFUL
    Setup "nrf_gzll_set_timeslots_per_channel_when_device_out_of_sync" to equal channel-tab size * timeslots_pr_chan
    

    Setting Gazell device mode 4 (semi-synchronous, will follow host):

    Set channel policy to: NRF_GZLL_DEVICE_CHANNEL_SELECTION_POLICY_USE_CURRENT
    Setup "nrf_gzll_set_timeslots_per_channel_when_device_out_of_sync" to equal channel-tab size * timeslots_pr_chan
    

    In your case, a semi-synchronous mode (legacy mode 4) would make sense, as audio data is very sensitive to jitter.

    Proposed settings for sending each 4 ms:

    
    err = nrf_gzll_set_timeslots_per_channel_when_device_out_of_sync(timeslot * sizeof(channel_tab));
    err = nrf_gzll_set_device_channel_selection_policy(NRF_GZLL_DEVICE_CHANNEL_SELECTION_POLICY_USE_CURRENT);
    
    

    In addition to this, the channel tab and other RF settings must match the host side. Note that in nRF51x22 gazell, this must be set in your init (like channel tab, timeslot period), but GZP specific data is set in nrf_gzp_config.h.

    Best regards Håkon

Related