cc1310如何配置433M频段
使用cc1310,配置成433M频段,ti给的例子rfEasyLink,里面是868MHz的。EasyLink_setFrequency(868000000);,如果要使用433M,请问除了修改这里还需要修改哪里吗?我修改了这里,程序运行时返回错误。
请指教!谢谢。
smartrf_settings.c里面,需要改几个override和几个settings。
安装最新的martrf studio 7, 然后用code export导出配置,把相关项合到你的.c里就好了。相关项你就是比较一下868和433的配置就好了。
hi~,AZ.我用smartrf studio 生成两个文件,然后把工程里面的smartrf_settings.h和smartrf_settings.c两个文件直接替换掉,smartrf studio用的是最新的,配置界面如下:
然后修改rfEasyLinkTx.c文件里面的EasyLink_setFrequency(433920000);,下载到板子上,运行后还是提示错误。
请问我有什么地方没有操作对吗?
覆盖smartstudio导出的配置就可以了,不需要调用EasyLink_setFrequency,保持
EasyLink_init(EasyLink_Phy_Custom) 就可以了。如下附件供参考
4034.433TxRxCCS.7z
好的,谢谢。我实时看。
我的意思是你还是要用原来可以编译过的,只是替换部分相关参数。
BR.AZ
只是改频率很简单,频率只跟工程里的文件smartrf_settings.c定义的两个结构体有关:
// CMD_PROP_RADIO_div_SETUP
rfc_CMD_PROP_RADIO_div_SETUP_t RF_cmdPropRadioDivSetup =
{
.commandNo = 0x3807,
.status = 0x0000,
.pNextOp = 0, // INSERT APPLICABLE POINTER: (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 = 0x64,
.symbolRate.preScale = 0xF,
.symbolRate.rateWord = 0x8000,
.rxBw = 0x24,
.preamConf.nPreamBytes = 0x4,
.preamConf.preamMode = 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,
.txPower = 0xA73F,
.pRegOverride = pOverrides,
.centerFreq = 0x0364, //=0x0364是868M, =0x01B1是433M
.intFreq = 0x8000,
.loDivider = 0x05,
};
// CMD_FS
rfc_CMD_FS_t RF_cmdFs =
{
.commandNo = 0x0803,
.status = 0x0000,
.pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx
.startTime = 0x00000000,
.startTrigger.triggerType = 0x0,
.startTrigger.bEnaCmd = 0x0,
.startTrigger.triggerNo = 0x0,
.startTrigger.pastTrig = 0x0,
.condition.rule = 0x1,
.condition.nSkip = 0x0,
.frequency = 0x0364, //=0x0364是868M, =0x01B1是433M
.fractFreq = 0x0000,
.synthConf.bTxMode = 0x0,
.synthConf.refFreq = 0x0,
.__dummy0 = 0x00,
.__dummy1 = 0x00,
.__dummy2 = 0x00,
.__dummy3 = 0x0000,
};
只需要修改黄色的地方即可,EasyLink_setFrequency(868000000);,只是改变rfc_CMD_FS_t RF_cmdFs这个结构体里面的值,你还需要改变rfc_CMD_PROP_RADIO_div_SETUP_t RF_cmdPropRadioDivSetup这个结构体的值。
hi,Eggsy Pang
我试验了你的方法,还是有问题。就是只改动两个变量值,依然不能正常。
我尝试了这些方法(1)用smartRF studio2.4.3生成smartrf_settings.c,并对应着工程文件里面的smartrf_settings进行修改了变动的地方,依然无法正常运行;(2)复制TY上传的源代码,直接把工程文件里面的smartrf_settings.c覆盖掉,依然无法正常运行。
对比TY的smartrf_settings.c文件和smartRF studio生成的文件,改动地方是一样的。
最后,我在e2e.ti.com上面找到一篇帖子,http://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/f/156/p/501936/1889589#1889589,只修改这么几个地方,发现就可以正常运行了。
RF_cmdPropRadioDivSetup里面的:
.centerFreq = 0x01B1,
.loDivider = 0x0A,
RF_cmdFs里面的:
.frequency = 0x01B1,
如果不修改.loDivider = 0x0A,,就无法正常运行。
请问这是怎么回事?完全使用smartRF studio生成的文件来替换,不能正常运行,让我很困惑,我也尝试了很多次。
是的,不好意思,我遗漏了这一点,在433M情况下,.loDivider = 0x0A, 和868M的值不同,这个值主要是跟射频内部的驱动电流有关。smartRF studio请下载最新版本,我导出来使用是可以的。
bobai,
(1)用smartRF studio2.4.3生成smartrf_settings.c,并对应着工程文件里面的smartrf_settings进行修改了变动的地方,依然无法正常运行;
关于这个比较,你的版本里没有显示所有的不同吗?比如iodivider寄存器?
hi, Eggsy Pang
感谢你的回答,请问一下我用smartrf studio生成的smartrf_settings.c文件里面,还改动了pOverrides里面的参数。
添加了字段:
// override_synth_disable_bias_div10.xml
// Synth: Set divider bias to disabled
HW32_ARRAY_OVERRIDE(0x405C,1),
// Synth: Set divider bias to disabled (specific for loDivider=10)
(uint32_t)0x18000280,
添加的这两句是disable divider,如果添加了是不是就会禁止loDivider的修改呢?
以及修改了
// Rx: Set RSSI offset to adjust reported RSSI by -2 dB
(uint32_t)0x000288A3,
868M对应的是:
// Rx: Set RSSI offset to adjust reported RSSI by +5 dB
(uint32_t)0x00FB88A3,
这应该是调整接收灵敏度吧?
hi~
AZ,我确实是按照smartrf studio生成的文件对照的修改的,发现接收不到数据。我是直接用的cc1310_LAUNCHXL下面的两个工程:rfEasyLinkRx_CC1310_LAUNCHXL_TI和rfEasyLinkTx_CC1310_LAUNCHXL_TI修改了smartrf_settings.c进行的测试。
Bolai,
芯片版本问题了吧?你是revA 还是RevB呢?http://www.ti.com/lit/er/swrz062b/swrz062b.pdf
BR.az
AZ,你好。首先问下,怎么才能知道手里的芯片是Rev A还是Rev B?
我之前也查到过Rev A版本的芯片不支持433M,从Rev B开始支持。
但是我之前在论坛上看到过帖子,说Rev A强制使用433M也是可以的,另外我也问过用1310做433M开发的。
http://www.deyisupport.com/question_answer/wireless_connectivity/f/45/t/120099.aspx?pi2132219853=1
我现在完全替换按照smartrf studio生成的smartrf_settings,发现接收不到数据.
最后请问下cc1310 RevB现在可以买到了吗?
买不买得到,问一下代理商吧。后续应该都是RevB了。
你用flash programmer 2看一下吧。芯片信息里面有。PGxxxxx
你看一下你的代码,如果有如下内容,把他comment掉试一下。
// Set ANAdiv.div_BIAS_MODE Disable
// Divider 10
// HW32_ARRAY_OVERRIDE(0x405C,1),//////////////////////////////////////////////
// (uint32_t)0x18000280,///////////////////////////////////////////////////////
(uint32_t)0xFFFFFFFF,
hi~, AZ
按照你的提示,把下面这两句话注释掉
// override_synth_disable_bias_div10.xml
// Synth: Set divider bias to disabled
//HW32_ARRAY_OVERRIDE(0x405C,1),
// Synth: Set divider bias to disabled (specific for loDivider=10)
//(uint32_t)0x18000280,
然后添加:
(uint32_t)0xFFFFFFFF,
就可以收到信息了。
我之前直接注释掉上面两句,不添加(uint32_t)0xFFFFFFFF,不能收到数据。