微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > cc1310如何配置433M频段

cc1310如何配置433M频段

时间:12-23 整理:3721RD 点击:

使用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,不能收到数据。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top