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.

[参考译文] CC1310:无法在 cc1310和 cc1312r 之间进行远距离通信

Guru**** 2560190 points
Other Parts Discussed in Thread: CC1310, CC1312R

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/984277/cc1310-cant-communicate-between-cc1310-and-cc1312r-in-long-range

器件型号:CC1310
主题中讨论的其他器件: CC1312R

大家好、

我想了解一些有关远距离通信的信息。 我  使用 cc1312r 发送数据、并使用 cc1310获取数据。 我想通过远距离射频通信来实现它。

但对于远距离、cc1310具有625bps 选项、cc1312r 具有5kbps 字节。

我通过选择 Rx Filter BW = 98.0符号速率= 10偏差5 TX 功率= 14而尝试了这种远距离通信、但没有白化

使用此选择参数、这两个定制板之间没有通信。 我应该怎么做才能在远距离通信这两个板?

此致

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

    CC1310具有与 CC1312R 相同的2.5kbps/5kbps LRM 选项。 我建议您将这些用于测试。

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

    您好、

    感谢您的回答。 但我只能看到我的 cc1310自定义电路板的625bps 远距离。 如图所示。 我可以看到 cc1312r 的2.5kbps/5kbps 选项、但在典型设置中看不到 cc1310的任何选项。 cc1310只有一个缺点。 它是625bps 选项。 我是否必须在设备控制面板中设置某项以查看其他选项?

    谢谢你  

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

    -如果您在未连接电路板的情况下打开 SmartRF Studio,您会看到2.5kbps 设置吗?

    -如果是,这表示您有 CC1310的修订版 A。 您使用的是哪个版本的芯片?

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

    是的、我看到在未连接电路板的情况下、2.5kpbs 和5kbps。 我想我们只能使用我们的板连接到 SmartRFStudio 的设置。 这就是为什么我没有看到2.5kbps 和5bkps。 我不知道版本、但制造商编号为 CC1310F128RGZT

    谢谢你

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

    连接电路板后、您可以在 SmartRF Studio 的左下角看到芯片的版本。  

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

    根据、这两个板之间的 tp 与2.5kbps 通信。 我在没有连接到电路板的情况下保存了这两个文件。  我使用了以下文件。 cc1312r 发送数据,但不从 cc1310接收数据

    我应该错过什么?

    用于 cc1310的智能设置文件:

    // TI-RTOS 射频模式对象
    RF_Mode RF_PROP =

    rfMode = RF_MODE_Proprietary"子模式1、
    .cpePatchFxn =&rf_patch_cpe_sl_longrange、
    .mcePatchFxn =&rf_patch_mce_sl_longrange、
    .rfePatchFxn =&rf_patch_rfe_sl_longrange
    };


    //覆盖 CMD_PROP_RADIO_DIV_SETUP
    uint32_t pOverrides[]=

    // override_use_patch_simplelink_long_range.xml
    // PHY:使用 MCE RAM 补丁、RFE RAM 补丁
    MCE_RFE_OVERRIDE (1、0、0、1、0、0)、
    // override_synth_prop_863_930_div5_lbw60k.xml
    //合成:将推荐的 RTRIM 设置为7
    HW_REG_OVERRIDE (0x4038、0x0037)、
    //合成:将频率设置为4MHz
    (uint32_t) 0x000684A3、
    //合成:配置精细校准设置
    HW_REG_OVERRIDE (0x4020、0x7F00)、
    //合成:配置精细校准设置
    HW_REG_OVERRIDE (0x4064、0x0040)、
    //合成:配置精细校准设置
    (uint32_t) 0xB1070503、
    //合成:配置精细校准设置
    (uint32_t) 0x05330523、
    //合成:将锁定后的环路带宽设置为60kHz
    (uint32_t) 0x40410583、
    //合成:将锁定后的环路带宽设置为60kHz
    (uint32_t) 0x32CC0603、
    //合成:将锁定后的环路带宽设置为60kHz
    (uint32_t) 0x00010623、
    //合成:配置 VCO LDO (在 ADI1中、设置 VCOLDOCFG=0x9F 以使用电压输入基准)
    ADI_REG_OVERRIDE (1、4、0x9F)、
    //合成:配置同步 LDO (在 ADI1中、设置 SLDOCTL0.COMP_CAP=1)
    ADI_HALFREG_OVERRIDE (1、7、0x4、0x4)、
    //合成:使用24MHz XOSC 作为同步时钟、启用额外的 PLL 滤波
    (uint32_t) 0x02010403、
    //合成:配置额外的 PLL 滤波
    (uint32_t) 0x00108463、
    //合成:增加同步编程超时(0x04B0 RAT 节拍= 300us)
    (uint32_t) 0x04B00243、
    // override_synth_disable_bias_div5.xml
    //合成:将分频器偏置设置为禁用
    HW32_array_override (0x405C、1)、
    //合成:将分频器偏置设置为禁用(特定于 loder=5)
    (uint32_t) 0x18000200、
    // override_phy_rx_aaf_bw_0xd.xml
    // Rx:将抗混叠滤波器带宽设置为0xD (在 ADI0中、设置 IFAMPCTL3[7:4]=0xD)
    ADI_HALFREG_OVERRIDE (0、61、0xF、0xD)、
    // override_phy_gfsk_rx.xml
    // Rx:将 LNA 偏置电流修整偏移设置为3
    (uint32_t) 0x00038883、
    // Rx:在发现同步事件时冻结 RSSI
    HW_REG_OVERRIDE (0x6084、0x35F1)、
    // override_phy_gfsk_pa_ramp_agc_reflevel_0x14.xml
    // Tx:配置 PA 斜升设置(0x41)。 RX:将 AGC 基准电平设置为0x14。
    HW_REG_OVERRIDE (0x6088、0x4114)、
    // Tx:配置 PA 斜升设置
    HW_REG_OVERRIDE (0x608C、0x8213)、
    // override_phy_long_range_dsss4.xml
    // PHY:配置 DSSS SF=4
    HW_REG_OVERRIDE (0x505C、0x0303)、
    // override_phy_rx_rssi_offset_5db.xml
    // Rx:设置 RSSI 偏移以将报告的 RSSI 调整+5dB (默认值:0)、针对外部偏置和差分配置进行了修整
    (uint32_t) 0x00FB88A3、
    // TX 功率覆盖
    // Tx:将 PA 调整设置为最大值(在 ADI0中、设置 PACTL0=0xf8)
    ADI_REG_OVERRIDE (0、12、0xF8)、
    (uint32_t) 0xFFFFFFFF
    };


    // CMD_PROP_RADIO_DIV_SETUP
    //针对所有频段的专有模式无线电设置命令
    RFC_CMD_PROP_RADIO_DIV_SETUP_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 = 0x14、
    symbolRate.prescale = 0xF、
    symbolRate.rateWord = 0x3333、
    //.symbolRate.decimMode = 0x0、
    .rxBw = 0x21、
    .PreambBytes = 0x2、
    .Conf.前置 放大器模式= 0x0、
    .formatConf.nSwBits = 0x20、
    .formatConf.bBitVersal = 0x0、
    .formatConf.bMsbFirst = 0x0、
    formatConf.fecMode = 0x8、
    formatConf.whitenMode = 0x1、
    .config.frontEndMode = 0x0、
    config.biasMode = 0x1、
    config.analogCfgMode = 0x0、
    config.bNoFsPowerUp = 0x0、
    TxPower = 0xA73F、
    .pRegOverride = pOverrides、
    .centerFreq = 0x0364、
    .intFreq = 0x8000、
    .loDivider = 0x05
    };


    // CMD_FS
    //频率合成器编程命令
    RFC_CMD_FS_t RF_cmdF =

    .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 = 0x0364、
    fractFreq = 0x0000、
    synthConf.bTxMode = 0x0、
    .synthConf.refFreq = 0x0、
    .__dummy0 = 0x00、
    .__dummy1 = 0x00、
    .__dummy2=0x00,
    .__dummy3=0x0000
    };


    // 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、
    syncdWord = 0x00000000、
    .pPKT = 0 //插入适用的指针:(UINT8_t*)&xxx
    };


    // 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、
    syncdWord = 0x00000000、
    .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
    };

    用于 cc1312r 的智能设置文件:

    // TI-RTOS 射频模式对象
    RF_Mode RF_PROP =

    rfMode = RF_MODE_AUTO、
    .cpePatchFxn =&rf_patch_cpe_prop、
    .mcePatchFxn = 0、
    .rfePatchFxn = 0
    };


    //覆盖 CMD_PROP_RADIO_DIV_SETUP
    uint32_t pOverrides[]=

    // override_prop_common.xml
    //直流/直流稳压器:在 Tx 中、使用 DCDCCTL5[3:0]= 0x7 (DITHER _EN = 0和 IPEAK = 7)。
    (uint32_t) 0x00F788D3、
    // override_prop_common_sub1g.xml
    //设置 RF_FSCA.ANADV.DIV_SEL_BIAS = 1. 位[0:16、24、30]无关...
    (uint32_t) 0x4001405D、
    //设置 RF_FSCA.ANADV.DIV_SEL_BIAS = 1. 位[0:16、24、30]无关...
    (uint32_t) 0x08141131、
    // override_phy_simplelink_long_range_dsss4.xml
    // PHY:为有效载荷数据配置 DSSS SF=4
    HW_REG_OVERRIDE (0x5068、0x030C)、
    // override_tc480_tc481_tc482.xml
    // Tx:配置 PA 斜坡时间、PACTL2.RC=0x3 (在 ADI0中、设置 PACTL2[4:3]=0x3)
    ADI_2HALFREG_OVERRIDE (0、16、0x8、0x8、17、0x1、0x1)、
    // Rx:将 AGC 基准电平设置为0x17 (默认值:0x2E)
    HW_REG_OVERRIDE (0x609C、0x0017)、
    // Rx:设置 RSSI 偏移以将报告的 RSSI 调整-2dB (默认值:-2)、针对外部偏置和差分配置进行了修整
    (uint32_t) 0x000288A3、
    // Rx:将抗混叠滤波器带宽设置为0xD (在 ADI0中、设置 IFAMPCTL3[7:4]=0xD)
    ADI_HALFREG_OVERRIDE (0、61、0xF、0xD)、
    // Tx:将关闭斜坡前的等待时间设置为0x1A (默认值:0x1f)
    HW_REG_OVERRIDE (0x6028、0x001A)、
    // TX 功率覆盖
    // Tx:将 PA 修整设置为最大值以最大化其输出功率(在 ADI0中、设置 PACTL0=0xf8)
    ADI_REG_OVERRIDE (0、12、0xF8)、
    (uint32_t) 0xFFFFFFFF
    };


    // CMD_PROP_RADIO_DIV_SETUP
    //针对所有频段的专有模式无线电设置命令
    RFC_CMD_PROP_RADIO_DIV_SETUP_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 = 0x14、
    .modulation.deviationStepSz = 0x0、
    symbolRate.prescale = 0xF、
    symbolRate.rateWord = 0x3333、
    .symbolRate.decimMode = 0x0、
    .rxBw = 0x4E、
    .PreambBytes = 0x2、
    .Conf.前置 放大器模式= 0x0、
    .formatConf.nSwBits = 0x20、
    .formatConf.bBitVersal = 0x0、
    .formatConf.bMsbFirst = 0x0、
    formatConf.fecMode = 0x8、
    formatConf.whitenMode = 0x1、
    .config.frontEndMode = 0x0、
    config.biasMode = 0x1、
    config.analogCfgMode = 0x0、
    config.bNoFsPowerUp = 0x0、
    CONFIG.bSynthNarrowBand = 0x0、
    TxPower = 0x013F、
    .pRegOverride = pOverrides、
    .centerFreq = 0x0364、
    .intFreq = 0x8000、
    .loDivider = 0x05
    };


    // CMD_FS
    //频率合成器编程命令
    RFC_CMD_FS_t RF_cmdF =

    .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 = 0x0364、
    fractFreq = 0x0000、
    synthConf.bTxMode = 0x0、
    .synthConf.refFreq = 0x0、
    .__dummy0 = 0x00、
    .__dummy1 = 0x00、
    .__dummy2=0x00,
    .__dummy3=0x0000
    };


    // 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、
    syncdWord = 0x00000000、
    .pPKT = 0 //插入适用的指针:(UINT8_t*)&xxx
    };


    // 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、
    syncdWord = 0x00000000、
    .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
    };

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

    -您是否检查了电路板之间的频率偏移?

    -您是否已检查 CC1310的版本?

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

    很抱歉、有点难看到使用了修订版 A。

    尝试为 CC1310注释:

    // Synth: Set divider bias to disabled
    HW32_ARRAY_OVERRIDE(0x405C,1),
    // Synth: Set divider bias to disabled (specific for loDivider=5)

    (uint32_t)0x18000200,

    我强烈建议更新为 CC1310的修订版 B

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

    您好、

    感谢您的回答。 它运行得非常好。这条评论背后的原因是什么?

    现在、我还尝试通过 cc1310发送数据、并通过 cc1310在2.5kbps 远距离内接收数据。 我使用的是相同的 rfsetting 文件 、并为两个 cc1310定制板添加了注释行。 但这次没有解决。 它只发送一次数据 、然后进行剪切。 但是当我取消评论行时、数据会被发送、但这次 不会被其他1310定制板接收。

    -您对此情况有什么意见吗?

    -为什么要更新 cc1310的修订版 B

    此致

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

    请访问 processors.wiki.ti.com/.../CC1310_rev_B_PCN_information

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

    该文件现在不可用。 您能再检查一下吗?

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

    从已下拉的页面:

    "如果在离线模式下使用 SmartRF Studio v2.4.3或更高版本、或者连接了修订版 B 芯片、则生成的设置 将不会与修订版 A 直接向后兼容。例外情况是在779-930 MHz 频段中使用具有50kbps 数据速率的2GFSK。 需要修改使用779MHz - 930MHz 频段的所有其他无线电设置、 以支持修订版 A、方法 是注释掉以下覆盖项。 20μA 将其注释为功耗的小幅增加(约为 μ A) //从 SmartRF Studio 静态 uint32_t pOverrides 生成的覆盖[]={... // override_synth_disable_bias_div5.xml //合成器:将分频器偏置设置为禁用 HW32_array_override (0x405C,1),//<-注释输出//合成器:将分频器偏置设置为禁用(特定于 loder=5)(UINT32_t)0x18000200,//<-注释输出... "