Other Parts Discussed in Thread: CC1311P3
器件型号: CC1311P3
我们在专有射频模式下使用 CC1311P3 器件、并在高于 430MHz 的条件下运行时观察到频率错误。 我们使用具有覆盖功能的自定义 CMD_PROP_RADIO_DIV_SETUP_PA 配置、专门针对高于 430MHz 的操作。 关键参数:
//以上 430
RFC_CMD_PROP_RADIO_DIV_SETUP_PA_t RF_cmdPropRadioDivSetup_CST_ABOVE_430 =
{
.commandNo = 0x3807、
.status = 0x0000、
.pNextOp = 0、
.StartTime = 0x00000000、
.startTrigger.triggerType = 0x0、
.startTrigger.bEnaCmd = 0x0、
.startTrigger.triggerNo = 0x0、
.startTrigger.pastTrig = 0x0、
.condition.rule = 0x1、
.condition.nSkip = 0x0、
.modulation.modType = 0x0、
.modulation.deviation = 0xC、
.modulation.deviationStepSz = 0x0、
.symbolRate.prescale = 0xF、
.symbolRate.rateWord = 0x3127、
.symbolRate.decimMode = 0x0、
.rxBw = 0x4C、
前导码 Conf.nPreamBytes = 0x4、
前导码 Conf.前导 码模式= 0x0、
.formatConf.nSwBits = 0x20、
.formatConf.bBitReversal = 0x1、
.formatConf.bMsbFirst = 0x0、
.formatConf.fecMode = 0x0、
.formatConf.whitenMode = 0x0、
.config.frontEndMode = 0x0、
config.biasMode = 0x1、
.config.analogCfgMode = 0x0、
config.bNoFsPowerUp = 0x0、
.config.bSynthNarrowBand = 0x0、//将窄带设置为 0 指定高于 430MHz 的工作频率范围
.txPower = 0x0EC2、
.pRegOverride = pOverrides_CST_ABOVE_430、
.centerFreq = 0x01D5、
.intFreq = 0x8000、
.loDivider = 0x0A、
.pRegOverrideTxStd = 0、
.pRegOverrideTx20 = 0
};
//覆盖 CMD_PROP_RADIO_DIV_SETUP_PA
uint32_t pOverrides_CST_ABOVE_430[]=
{
// override_tc112.json
// Tx:配置 PA 斜坡时间、PACTL2.RC = 0x1(在 ADI0 中、设置 PACTL2[4:3]= 0x1)
ADI_2HALFREG_OVERRIDE (0、16、0x8、0x8、17、0x1)、
// Rx:将 AGC 基准电平设置为 0x1C(默认值:0x2E)
HW_REG_OVERRIDE (0x609C、0x001C)、
// Rx:设置 RSSI 偏移以将报告的 RSSI 调整–7dB(默认值:–2)、针对外部偏置和差分配置进行修整
(uint32_t) 0x000788A3、
// Rx:将抗混叠滤波器带宽设置为 0xD(在 ADI0 中、设置 IFAMPCTL3[7:4]=0xD)
ADI_HALFREG_OVERRIDE (0、61、0xF、0xD)、
// Tx:配置 PA 斜升、设置关闭前的等待时间 (0x1A 个周期 16/24us = 17.3us)。
HW_REG_OVERRIDE (0x6028、0x001A)、
// override_prop_common_sub1g.json
// TX:将 FSCA 分频器偏置设置为 1
(uint32_t) 0x4001405D、
// TX:将 FSCA 分频器偏置设置为 1
(uint32_t) 0x08141131、
// override_prop_common.json
// Tx:设置直流/直流转换器设置 ipeak = 7、Diter =关闭
(uint32_t) 0x00F788D3、
//(uint32_t) 0x00000043、
//HW_REG_OVERRIDE (0x1110、0x00000000 | RFC_DBELL_SYSGPOCTL_GPOCTL1_CPEGPO1)、
/*射频温度补偿*/
HPOSC_OVERRIDE (0)、
(uint32_t) 0xFFFFFFFF
};
在高于 430MHz 的条件下运行时、我们会看到与预期载波频率相比存在一致的频率偏移/误差。 在较高的频率 (800Hz 至 1kHz) 下、偏差似乎会增加
1
您能告诉我们、在高于 430MHz 频率时频率误差较高的原因可能是什么?
近似估计误差
406.125 ~ 300Hz(注意:对于以下 430、我们使用了窄带设置以及 LO 和分频器配置更改)
435.5MHz ~800Hz
469.975 ~1.005KHz
//以下 430 CFG 的参考
//覆盖 CMD_PROP_RADIO_DIV_SETUP_PA
uint32_t pOverrides_CST_belower_430[]=
{
// override_tc596.xml
//以下两个覆盖从循环系数覆盖开始
(uint32_t) 0x40024029、
//启用 IIR 滤波器、滤波器 BW 设置= 1
(uint32_t) 0x38000000、
//设置 IIR 时钟分频器 64/2
(uint32_t) 0x01608402、
//锁定到 200kHz 后设置环路带宽 (K2 )
(uint32_t) 0x04150583、
//锁定到 200kHz 后设置环路带宽 (K2 )
(uint32_t) 0x000405A3、
//锁定到 200kHz 后设置环路带宽 (K3、LSB)
(uint32_t) 0xCB2F0603、
//锁定到 200kHz 后设置环路带宽 (K3、MSB)
(uint32_t) 0x00040623、
//将 Fref 设置为 8MHz
(uint32_t) 0x000684A3、
// Tx:配置 PA 斜坡时间、PACTL2.RC = 0x3(在 ADI0 中、设置 PACTL2[4:3]= 0x3)
ADI_2HALFREG_OVERRIDE (0、16、0x8、0x8、17、0x1)、
// Rx:将 AGC 基准电平设置为 0x17(默认值:0x2E)
HW_REG_OVERRIDE (0x609C、0x0017)、
// Rx:设置 RSSI 偏移以将报告的 RSSI 调整 0dB(默认值:–2)、针对外部偏置和差分配置进行修整
(uint32_t) 0x000088A3、
// Rx:将抗混叠滤波器带宽设置为 0xF(在 ADI0 中、将 IFAMPCTL3[7:4]=0xD)
ADI_HALFREG_OVERRIDE (0、61、0xF、0xF)、
// override_prop_common.xml
// Tx:设置直流/直流转换器设置 ipeak = 7、Diter =关闭
(uint32_t) 0x00F788D3、
// override_prop_common_sub1g.xml
// TX:将 FSCA 分频器偏置设置为 1
(uint32_t) 0x4001405D、
// TX:将 FSCA 分频器偏置设置为 1
(uint32_t) 0x08141131、
// override_phy_tx_pa_ramp_genfsk_std.xml
// Tx:配置 PA 斜升、设置关闭前的等待时间 (0x1A 个周期 16/24us = 17.3us)。
HW_REG_OVERRIDE (0x6028、0x001A)、
//在 RX 中将 TXRX 引脚设置为 0、在 IDLE /TX 中将其设置为高阻抗。
HW_REG_OVERRIDE (0x60A8、0x0401)、
//(uint32_t) 0x00000043、
//HW_REG_OVERRIDE (0x1110、0x00000000 | RFC_DBELL_SYSGPOCTL_GPOCTL1_CPEGPO1)、
/*射频温度补偿*/
HPOSC_OVERRIDE (0)、
(uint32_t) 0xFFFFFFFF
};
// CMD_PROP_RADIO_DIV_SETUP_PA
//所有频段的专有模式无线电设置命令
RFC_CMD_PROP_RADIO_DIV_SETUP_PA_t RF_cmdPropRadioDivSetup_CST_belower_430 =
{
.commandNo = 0x3807、
.status = 0x0000、
.pNextOp = 0、//插入适用指针:(UINT8_t*)&xxx
.StartTime = 0x00000000、
.startTrigger.triggerType = 0x0、
.startTrigger.bEnaCmd = 0x0、
.startTrigger.triggerNo = 0x0、
.startTrigger.pastTrig = 0x0、
.condition.rule = 0x1、
.condition.nSkip = 0x0、
.modulation.modType = 0x1、
.modulation.deviation = 0xC0、//0x140、//0x80、//0x8、//0x90、
.modulation.deviationStepSz = 0x2、
.symbolRate.prescale = 0xFC、
.symbolRate.rateWord = 0x339C1、
.symbolRate.decimMode = 0x0、
.rxBw = 0x4C、
前导码 Conf.nPreamBytes = 0x4、//0x4、//0x0、//0x4、
前导码 Conf.前导 码模式= 0x0、
.formatConf.nSwBits = 0x20、
.formatConf.bBitReversal = 0x1、
.formatConf.bMsbFirst = 0x0、
.formatConf.fecMode = 0x0、
.formatConf.whitenMode = 0x0、
.config.frontEndMode = 0x0、
config.biasMode = 0x1、
.config.analogCfgMode = 0x0、
config.bNoFsPowerUp = 0x0、
.config.bSynthNarrowBand = 0x1、//设置窄带会指定工作频率范围 359MHz 至 430MHz
.txPower = 0x20C9、//0x003F、//0x38D2、
.pRegOverride = pOverrides_CST_BEVED_430
.centerFreq = 0x01A8、//0x0197、//0x01A9、//0x01B3、
.intFreq = 0x063D、
.loDivider = 0x0C、
.pRegOverrideTxStd = 0、
.pRegOverrideTx20 = 0
};
谢谢、
专题 B
