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:查找传输频率

Guru**** 2553450 points
Other Parts Discussed in Thread: CC1101

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/743253/cc1101-find-transmission-frequency

器件型号:CC1101

大家好、我正在尝试找到我从另一个发送器传输到的确切频率、RSSI 近似值高达+- 0.5 MHz、

但是、仅仅正确解码信号是不够的。 是否有任何价值来帮助我更准确地找到它、或以更高的容差范围进行解码?

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Javier、

    CC1101中有一个寄存器、用于估算任何给定数据包的 TX 节点和 RX 节点之间的频率差(或误差)。

    下面是我们的 SmartRF Studio 在线指南的快照。

    下面是一个我们开发的函数、用于将此信息转换为赫兹。

    /*为硬件选择正确的 XTAL 频率*/

    #define SCALE_FREQ (float)((RF_XTAL)/65.536)

    #define SCALE_FREQEST (无符号长整型)((RF_XTAL)/16.384)

     

    /*********

    *@fn radio_freq_error

    *

    *@通过两个补码编码来估算频率误差

    赫兹为单位的*数据到频率误差

    *

    *输入参数

    *

    *@param freq_reg_error -来自收发器的两个补码格式数据

    *

    *输出参数

    *

    *@返回 freq_error -表示的32位有符号整数值

    赫兹为单位的*频率误差

    *

    *

    int radio_freq_error (void){

    long freq_error_est;

    unsigned char regState;

    /*读取 marcstate 以检查频率误差估计值*/

    trx8BitRegAccess (radio_read_access | radio_burg_access、FREQEST、regState、&1);

    /*以 Hz 为单位计算频率误差*/

    FREQ_ERROR_EST = regState;

    /*传入数据为8位二进制补码格式,单独的“符号”*/

    if (freq_error_est > 128){

    FREQ_ERROR_EST = FREQ_ERROR_EST - 256;

    /*以两个步骤将数据转换为赫兹格式,以避免整数过冲*/

    FREQ_ERROR_EST = FREQ_ERROR_EST *() SCALE_FREQEST;

    返回((int) freq_error_est);

    希望这对您有所帮助。

    此致、

    /TA

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它在异步模式下工作? 我在 FIFO 中没有数据包

    谢谢你
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这对您没有帮助吗? 如果不是、则需要进一步说明您正在尝试做什么。

    /TA
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    它正常工作、感谢您的帮助!