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.

[参考译文] CC1200:频率扫描:需要重新校准?

Guru**** 2540720 points
Other Parts Discussed in Thread: CC1200

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/573435/cc1200-frequency-sweep-recalibration-needed

部件号:CC1200

我正在使用CC1200,并希望出于测试目的实施频率扫描。 目前,我的初始化例程如下所示:

void configureRF(){

//重置对讲机
TxSpiCmdStrobe(CC120X_SRES);

//将寄存器写入对讲机
U8写入字节;
对于(U16 i = 0;i <(sizeof (preferredSettings)/sizeof (registerSetting_t));i ++){
writeByte = preferredSettings[I].data;
cc120xSpiWriteReg (首选设置[i].addr,&writeByte,1);
}

//设置地址
cc120xSpiWriteReg (CC1200_DEP_ADDR,&address,1);

//校准收音机
TxSpiCmdStrobe(CC120X_SCAL);

//等待校准完成(对讲机返回空闲状态)
8国市场;
执行{
	cc120xSpiReadReg (CC1200_MARCSTATE,&marcState, 1);}
while (marcState != 0x41);

//校准RCOSC
//读取当前寄存器值
U8温度;
cc120xSpiReadReg (CC1200_WOR_CFG0,&temp,1);

//屏蔽寄存器位字段并写入新值
Temp =(temp和0xF9)|(0x02 << 1);

//写入新的寄存器值
cc120xSpiWriteReg (CC1200_WOR_CFG0,&temp,1);

//空闲选通以校准RCOSC
TxSpiCmdStrobe(CC120X_sidle);

//禁用RC校准
Temp =(temp和0xF9)|(0x00 << 1);
cc120xSpiWriteReg (CC1200_WOR_CFG0,&temp,1);

//默认进入RX
rfStateAsync(RX);
} 

为了执行频率扫描,我希望定期更改频率,如下所示:

cc120xSpiWriteReg (CC1200_FREQ0,&channelByte0,1);
cc120xSpiWriteReg (CC1200_FREQ1,&channelByte1, 1);
cc120xSpiWriteReg (CC1200_FREQ2,&channelByte2, 1); 

这样更改通道后,我是否必须重新校准或重新初始化任何内容?  

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您应该为每兆赫左右重新校准一次,以确保PLL处于锁定状态。