We are in the process of getting our product through SRRC certification in China. I am using the radio_test example from SDK 11.0 for this. All is working fine.
However, I am confused by the channel selection parameters. I've been looking for similar questions but have not found any, so I decided to post it here.
Everywhere in the docs/code it is mentioned that you can set the radio to a specific channel by setting the 'channel_start_' and 'channel_end_' parameters.And indeed, in radio_test.c the channel is passed as parameter 'channel' to the carrier functions. But then the channel value is passed to the radio registers as follows:
NRF_RADIO->FREQUENCY = channel;
Taking a look at the actual radio frequency register in the datasheet (RADIO BASE 0x40001000 + OFFSET 'FREQUENCY' 0x508) tells me the following:
Radio channel frequency Frequency = 2400 + FREQUENCY (MHz).
Source:
And thus I believe that we are actually setting frequencies here and not channels. For example: BLE channel 2 should result in a signal at 2408MHz, but in the current implementation results in 2402 MHz (which is actually BLE channel 37).
Or am I wrong in assuming BLE channels while they are actually Bluetooth Classic channels? This would explain why for example a non-BLE frequency of 2401 MHz can be set. But I understood that all NRF chips only support BLE, so that would be confusing as well. If this is the case, do I need to set a different radio mode to ensure that only BLE frequencies are supported?
Any tips are appreciated.