您好!
我有一对 LAUNCHXL-cc1352P1。 我想在1090GHz 下运行一个 TX 和一个 RX、使用完全相同的配置。 当 TX 运行良好、甚至超过1090GHz 时、RX 一直工作到1080GHz、然后停止。 我尝试了两种 SmartRF 设置并从 CCS 更改了代码。 完全相同。 是否有任何设置、例如频率合成器、可以使 RX 在1090GHZ 下工作?
验证代码是否正确。
谢谢!
//绩效指标问题
//由 SmartRF Studio 版本2.29.0生成(内部版本#383)
//应用的模板与 cc13x2_26x2 SDK 版本2.3.0.xx.xx 或更高版本兼容。
//器件:CC1352P 版本 E (2.1)。
//
//绩效指标问题
//绩效指标问题
//参数汇总
// RX 地址0:0xAA
// RX 地址1:0xBB
// RX 地址模式:无地址检查
//频率:1090.00000MHz
//数据格式:串行模式禁用
//偏差:350.000kHz
//数据包长度配置:变量
//最大数据包长度:255
//数据包长度:20
//数据包数据:255
//前导码计数:4字节
//前导码模式:发送0作为第一个前导码位
// RX 滤波器带宽:2185.1kHz
//符号速率:1000.00000kBaud
//同步字:0x930b51de
//同步字长:32位
// TX 功率:13dBm
//启用高输出功率 PA:真
///美白:没有美白
#include "smartrf_settings.h"
#Include DeviceFamily_structPath (rf_patches/rf_patch_cpe_prop.h)
// TI-RTOS 射频模式对象
RF_Mode RF_PROP =
{
.rfMode = RF_MODE_AUTO、
.pePatchFxn =&RF_PATCH_CPE_PROP、
.mcePatchFxn = 0、
.rfePatchFxn = 0
};
//覆盖 CMD_PROP_RADIO_DIV_SETUP_PA
uint32_t pOverrides []=
{
// override_tc784_tc785.xml
// Tx:配置 PA 斜坡时间,PACTL2.RC=0x3 (在 ADI0中,设置 PACTL2[4:3]=0x3)
ADI_2HALFREG_OVERRIDE (0、16、0x8、0x8、17、0x1、0x1)、
// Rx:将 AGC 基准电平设置为0x2E (默认值:0x2E)
HW_REG_OVERRIDE (0x609C、0x002E)、
// Rx:设置 RSSI 偏移以将报告的 RSSI 调整-4dB (默认值:-2)、针对外部偏置和差分配置进行修整
(uint32_t) 0x000488A3、
// Rx:设置 LNA Ib 升压
ADI_HALFREG_OVERRIDE (0、5、0xF、0x2)、
// Rx:将抗混叠滤波器带宽设置为0x0 (在 ADI0中,设置 IFAMPCTL3[7:4]=0xD)
ADI_HALFREG_OVERRIDE (0、61、0xF、0x0)、
// TX:减少模拟斜升等待时间
HW_REG_OVERRIDE (0x6028、0x001A)、
// TX:设置 intFreq = 0
(uint32_t) 0x00000343、
// override_prop_common.xml
// DC/DC 稳压器:在具有14dBm PA 设置的 Tx 中,使用 DCDCCTL5[3:0]=0xF (DITHE_EN=1且 IPEAK=7)。 在 Rx 中、使用默认设置。
(uint32_t) 0x00F788D3、
// override_prop_common_sub1g.xml
//设置 RF_FSCA.ANADIV.DIV_SEL_BIAS = 1。 位[0:16、24、30]无关。
(uint32_t) 0x4001405D、
//设置 RF_FSCA.ANADIV.DIV_SEL_BIAS = 1。 位[0:16、24、30]无关。
(uint32_t) 0x08141131、
(uint32_t) 0xFFFFFFFF
};
//覆盖 CMD_PROP_RADIO_DIV_SETUP_PA
uint32_t pOverridesTxStd[]=
{
// TX 功率元素应始终是列表中的第一个
TX_STD_POWER_OVERRIDE (0x003F)、
//基于 LO 分频器(0)和前端(0)设置的 ANADIV 无线电参数
(uint32_t) 0x11310703、
// override_phy_tx_pa_ramp_genfsk_std.xml
// Tx:配置 PA 斜升、设置关断前的等待时间(16/24us 的0x1A 次滴答= 17.3us)。
HW_REG_OVERRIDE (0x6028、0x001A)、
//在 RX 中将 TXRX 引脚设置为0,在 IDEL/TX 模式下设置为高阻抗。
HW_REG_OVERRIDE (0x60A8、0x0401)、
(uint32_t) 0xFFFFFFFF
};
//覆盖 CMD_PROP_RADIO_DIV_SETUP_PA
uint32_t pOverridesTx20[]=
{
// TX 功率元素应始终是列表中的第一个
Tx20_power_override ()、
//基于 LO 分频器(0)和前端(0)设置的 ANADIV 无线电参数
(uint32_t) 0x11C10703、
// override_phy_tx_pa_ramp_genfsk_hpa.xml
// Tx:配置 PA 斜升、设置关闭前的等待时间(16/24us 的0x1F 次滴答= 20.3us)。
HW_REG_OVERRIDE (0x6028、0x001F)、
//在 RX/TX 和空闲时分别将 TXRX 引脚设置为0和高阻抗。
HW_REG_OVERRIDE (0x60A8、0x0001)、
(uint32_t) 0xFFFFFFFF
};
// CMD_PROP_RADIO_DIV_SETUP_PA
//针对所有频段的专有模式无线电设置命令
RFC_CMD_PROP_RADIO_DIV_SETUP_PA_t RF_cmdPropRadioDivSetup =
{
.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 = 0x578、
.modulation.deviationStepSz = 0x0、
.symbolRate.prescale = 0xF、
.symbolRateWord = 0xA0000、
.symbolRate.decimMode = 0x0、
.rxBw = 0x64、
.前导 Conf.nPreamBytes = 0x4、
.前导 码 Conf.前导 码模式= 0x0、
.formatConf.nSwBits = 0x20、
.formatConf.bBitReversal = 0x0、
.formatConf.bMsbFirst = 0x1、
.formatConf.fecMode = 0x0、
.formatConf.whitenMode = 0x0、
.config.frontEndMode = 0x0、
.config.biasMode = 0x1、
.config.analogCfgMode = 0x0、
.config.bNoFsPowerUp = 0x0、
.config.bSynth窄 带= 0x0、
.txPower = 0x003F、
.pRegOverride = pOverrides、
.centerFreq = 0x0442、
.intFreq = 0x0D99、
.loDivider = 0x05、
.pRegOverrideTxStd = pOverridesTxStd、
.pRegOverrideTx20 = pOverridesTx20
};
// CMD_FS
//频率合成器编程命令
RFC_CMD_FS_t RF_cmdFS =
{
.commandNo = 0x0803、
.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、
.frequency = 0x0442、
.fractFreq = 0x0000、
.synthConf.bTxMode = 0x0、
.synthConf.refFreq = 0x0、
.__dummy0 = 0x00,
.__dummy1 = 0x00,
.__dummy2 = 0x00,
.__dummy3 = 0x0000
};
// CMD_PROP_RX
//专有模式接收命令
RFC_CMD_PROP_RX_t RF_cmdPropRx =
{
.commandNo = 0x3802、
.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、
.pktConf.bFsOff = 0x0、
.pktConf.bRepeatOk = 0x0、
.pktConf.bRepeatNok = 0x0、
.pktConf.bUseCrc = 0x1、
.pktConf.bVarLen = 0x1、
.pktConf.bChkAddress = 0x0、
.pktConf.endType = 0x0、
.pktConf.filterOp = 0x0、
.rxConf.bAutoFlushIgnored = 0x0、
.rxConf.bAutoFlushCrcErr = 0x0、
.rxConf.bIncludeHdr = 0x1、
.rxConf.bIncludeCrc = 0x0、
.rxConf.bAppendRssi = 0x0、
.rxConf.bAppendTimestamp = 0x0、
.rxConf.bAppendStatus = 0x1、
.syncWord = 0x930B51DE、
.maxPktLen = 0xFF、
.address0 = 0xAA、
.address1 = 0xBB、
.endTrigger.triggerType = 0x1、
.endTrigger.bEnaCmd = 0x0、
.endTrigger.triggerNo = 0x0、
.endTrigger.pastTrig = 0x0、
.EndTime = 0x00000000、
.pQueue = 0、//插入适用指针:(dataQueue_t*)&xxx
.pOutput = 0 //插入适用的指针:(uint8_t*)&xxx
};
// CMD_PROP_TX
//专有模式发送命令
RFC_CMD_PROP_TX_t RF_cmdPropTx =
{
.commandNo = 0x3801、
.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、
.pktConf.bFsOff = 0x0、
.pktConf.bUseCrc = 0x1、
.pktConf.bVarLen = 0x1、
.pktLen = 0x14、
.syncWord = 0x930B51DE、
.pPkt = 0 //插入适用的指针:(uint8_t*)&xxx
};