This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC1101-Q1: How to configure the frequency related registers according to input carrier frequency?

Part Number: CC1101-Q1

Hi,

In my application, the user would input a value to specify the carrier frequency they would like to use. And based on this frequency value, I need to configure the related registers in my code.

According to my current understanding, this should include the registers highlighted in the red box in the diagram below.


Since this is like I'm facing a challenge akin to dealing with a multivariable function, where I know one function value(the frequency input by user) and need to deduce the values of several independent variables(the register bits). Since one function value may correspond to several different combinations of independent variable values, I find myself perplexed about how to configure the registers correctly. I'm worried that different register configurations might lead to unexpected issues.

I work as a software engineer, and despite going through numerous posts, I still lack sufficient understanding of RF theory. Hence, I'm seeking guidance on how to ensure reliability and effectiveness. I'm aware that in SmartRF Studio, one can input the Base Frequency, and the software automatically configures relevant registers, but I'm not quite clear on the specific mechanism and algorithm involved.

Any assistance would be greatly appreciated. Thanks in advance!"

  • Hi there, 

    We will look into your posts and give follow up by early next week. Please note some of the team who are experts on this are on vacation and will be back next week. 

  • Thanks Evan, looking forward.

  • Hi,

    If you do not have a channeled system, it is very easy to the carrier frequency. If you want to set a desired carrier frequency, set CHANNR.CHAN register to 0. Then, you should be able to set the frequency in the three FREQ registers (FREQ2, FREQ1, FREQ0). The frequency is given by f_carrier = f_xosc*FREQ/(2^16), where f_xosc is the crystal oscillating frequency. 

    Regards,

    HG

  • Thank you for simplifying the issue for me. I appreciate the clarification.

    To ensure a thorough understanding and rigorous development process, I would like to know when it is necessary to consider using channels. My client's technical documentation does not currently mention this aspect, so I'm unsure whether their product does not require channels or if the details are simply not described in enough detail.

    Could you provide some insights into when and why channels might be needed, and how they impact the configuration of the frequency registers?

    Thank you for your assistance.

  • Hi,

    Channeled systems are used when you want to operate at discrete frequencies with equal spacing in between. It is will not be possible to operate in the frequencies between two channels. From your initial comment, it sounded like you want the users to be able to set any frequency they want.

    It is up to each application whether or not to use channelization. If you decide to use a channeled system, you can use SmartRF Studio to find the right register settings for MDMCFG0.CHANSPC_M and MDMCFG1.CHANSPC_E.

    Regards,

    HG

  • Thank you for the clarification. I'll initially refrain from using channels and explore further if any issues arise in the future.