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.

CC2674P10: 下载的SDK没有相关例程,且无法配置2440MHz频率

Part Number: CC2674P10
Other Parts Discussed in Thread: CC1354P10, , SYSCONFIG

目前下载了官方最新固件simplelink_cc13xx_cc26xx_sdk_7_10_01_24,安装后发现里面没有CC2674P10这个型号,之后选择LP_EM_CC1354P10_1的串口例程,修改了targetConfigs文件,将型号改成了CC2674P10

之后通过编译烧录,可以正常使用串口功能。

接着在smart RF strudio 7里面找到了CC2674P10型号,并进行了通信,说明模块无异常

之后下载CC1354P10的例程rfPacketTx以及rfPacketRx,烧录到两个板子发现不能通信,体现在rx回调函数没反应,接着检查syscfg配置,发现只能配置779-930频段,因此,说明不能用此例程

问题:我应该选择哪一个型号,或者哪一个例程,才能用于CC2674P10进行通信。如果一个个试的话,会加长开发周期。

  • 您好,已经跟进您的问题,这需要一些时间

  • 我在syscfg里面吧之前的Proprietary删了,改成了BLE

    但是主函数会在发送的时候卡住,我把/RF_cmdBle5AdvAux_bt5le1m_0.pParams->pAdvPkt这个注释掉之后,可以跑,同时频谱仪也能出功率,

    但是对于这个参数,我需要自己定义我的广播数据,同时让接收例程能够收到我自己的数据,因为我在这个结构体内,没有发现对于数据长度的相关说明,也没有相关例程来参考这个如何设置

  • 问题:我应该选择哪一个型号,或者哪一个例程,才能用于CC2674P10进行通信。如果一个个试的话,会加长开发周期。

    您这边CC1354P10的sdk可以进行参考。

    https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_7_10_01_24/docs/thread/html/cc13xx_cc26xx/software-on-cc13x4-26x4.html

    您参考这个迁移指南

  • 我昨天已经按照这个迁移指南迁移过了,但这并不是我目前遇到的问题,现在的问题如我上面回复的一致,当我迁移过去之后,我的Syscfg文件里面可以选择的Custom只有BLE 和IEEE 802

    我已经在smart RF 7上面验证过当我使用BLE是可以正常通信的,但是当我在工程里将其设置为BLE之后,我发现例程里面的一些初始化的内容是需要修改的,部分结构体参数差别,在我上一个回复中可以提现出来。而当我注释掉旧参数并将其修改为新参数后,我的接收模块能触发callback函数,但事件e的参数值为2,不匹配接收完成。

    目前我需要的解决方法是,是否有途径能找到关于一个例程,是关于将Syscfg文件里面的Custom修改为BLE 1Mbps LE 1M之后,射频的通信例程或初始化参考。

  • 我想问一下您这边的sysconfig版本是哪个?

  • 版本是1.16.2

  • 我这边刚刚尝试去进行迁移,跟您显示的结果不太一样呢

  • 这边是已经转过来了的,按照教程来的

  • 您好,请您现在总结一下您的问题,以及需求,我这边收集进行升级到e2e,等待工程师的回复。

  • 主要现在我转来后,需要一个例程告诉我下面图片里面的应该怎么做

    因为,现在有个问题是,我把syscfg里面把射频改成BLE,之后,这些配置参数的结构体变了,导致我不知道我应该如何初始化我的这些参数,才能正常通信,就像那个callback函数,当我rx工程接收到了tx发过来的数据,但我无法和RF_EventRxEntryDone匹配,也可能里面的函数不能用现在截图中的。

  • 这个里面的内容您这边阅读了吗

  • 总结一下,我现在的问题就是,我已经将工程变成了CC2674P10的工程,我现在需要一个针对于BLE这个Custom的例程,包括Tx、Rx的初始化参数配置,以及callback函数如何获取射频数据。

  • 好的,我将会跟进您的问题,有更新会立即回复您

  • 我看过了,但是这个并不能解决我的问题,就像我说的,因为修改为BLE之后,我初始化函数的结构体发生了变化,例如Tx工程中,我原本的结构体包括了发送字节数和发送包地址两个参数,但是修改后,只有发送包地址,而没有字节数,这就意味着我并没有一个参考来让我分析,我到底是初始化阶段还是后面的回调函数出现的问题

  • 好的,明白了,我这边会跟进的,谢谢您的回复

  • 工程师这边提供了完成您正在寻找的功能的说明:

    使用 rfPacketRX 示例的 rfPacketTX 作为起点,并执行以下步骤将其移植到正确的设备。

    使用您想要使用的 BLE 设置构建项目(不会编译,因为您使用的是 BLE 设置,并且示例使用 prop 命令,但这并不重要)。

    获取 sysConfig 生成的 ti_radio_config.c/h 并将它们手动添加到您的项目中,然后将它们从 sysConfig 中排除。

    以 SmartRF Studio 为例,打开一个 prop 示例。使用使用正常 RX 和 TX 命令(不是高级)的设置,并且

    • 将所需命令(CMD_PROP_TX 和 CMD_PROP_RX)复制到 ti_radio_config.c/h
    • 重命名 CMD_FS
    • 更改示例中请求访问无线电的方式:
    /* Request access to the radio */
    rfHandle = RF_open(&rfObject, &RF_prop_bt5le1m_0, (RF_RadioSetup*)&RF_cmdBle5RadioSetup_bt5le1mp10_1, &rfParams);
    // CMD_PROP_TX
    // Proprietary Mode Transmit Command
    rfc_CMD_PROP_TX_t RF_cmdPropTx =
    {
        .commandNo = 0x3801,
        .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,
        .pktConf.bFsOff = 0x0,
        .pktConf.bUseCrc = 0x1,
        .pktConf.bVarLen = 0x1,
        .pktLen = 0x14,
        .syncWord = 0x930B51DE,
        .pPkt = 0 // INSERT APPLICABLE POINTER: (uint8_t*)&xxx
    };
    
    
    // CMD_PROP_RX
    // Proprietary Mode Receive Command
    rfc_CMD_PROP_RX_t RF_cmdPropRx =
    {
        .commandNo = 0x3802,
        .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,
        .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, // INSERT APPLICABLE POINTER: (dataQueue_t*)&xxx
        .pOutput = 0 // INSERT APPLICABLE POINTER: (uint8_t*)&xxx
    };
    // CMD_FS
    // Frequency Synthesizer Programming Command
    rfc_CMD_FS_t RF_cmdFs =
    {
        .commandNo = 0x0803,
        .status = 0x0000,
        .pNextOp = 0,
        .startTime = 0x00000000,
        .startTrigger.triggerType = 0x0,
        .startTrigger.bEnaCmd = 0x0,
        .startTrigger.triggerNo = 0x0,
        .startTrigger.pastTrig = 0x0,
        .condition.rule = 0x1,
        .condition.nSkip = 0x0,
        .frequency = 0x0988,
        .fractFreq = 0x0000,
        .synthConf.bTxMode = 0x0,
        .synthConf.refFreq = 0x0,
        .__dummy0 = 0x00,
        .__dummy1 = 0x00,
        .__dummy2 = 0x00,
        .__dummy3 = 0x0000
    };
    
    #ifndef _TI_RADIO_CONFIG_H_
    #define _TI_RADIO_CONFIG_H_
    
    #include <ti/devices/DeviceFamily.h>
    #include DeviceFamily_constructPath(driverlib/rf_mailbox.h)
    #include DeviceFamily_constructPath(driverlib/rf_common_cmd.h)
    #include DeviceFamily_constructPath(driverlib/rf_ble_cmd.h)
    #include DeviceFamily_constructPath(driverlib/rf_prop_cmd.h)
    #include <ti/drivers/rf/RF.h>
    
    // TI-RTOS RF Mode object
    extern RF_Mode RF_prop_bt5le1m_0;
    
    // RF Core API commands
    extern rfc_CMD_BLE5_RADIO_SETUP_t RF_cmdBle5RadioSetup_bt5le1m_0;
    extern rfc_CMD_FS_t RF_cmdFs;
    extern rfc_CMD_BLE5_ADV_AUX_t RF_cmdBle5AdvAux_bt5le1m_0;
    extern rfc_CMD_BLE5_GENERIC_RX_t RF_cmdBle5GenericRx_bt5le1m_0;
    extern rfc_CMD_PROP_TX_t RF_cmdPropTx;
    extern rfc_CMD_PROP_RX_t RF_cmdPropRx;
    
    // RF Core API overrides
    extern uint32_t pOverrides_bt5le1m_0Common[];
    extern uint32_t pOverrides_bt5le1m_01Mbps[];
    extern uint32_t pOverrides_bt5le1m_02Mbps[];
    extern uint32_t pOverrides_bt5le1m_0Coded[];
    
    #endif // _TI_RADIO_CONFIG_H_
    我能够成功使用 CC1345P10-6 rfPacketTx 项目将 BLE RF 数据包发送到自定义 CC2674P10 LaunchPad rfPacketRx 项目。
  • 是否可以理解为,打开射频的时候选择BLE模式,即RF_open()这个API选择RF_cmdBle5RadioSetup_bt5le1mp10_1,同时RF_prop也被RF_prop_bt5le1m_0替换,只是后面的Tx,Rx模式就不选择RF_cmdBle5AdvAux_bt5le1m_0以及RF_cmdBle5GenericRx_bt5le1m_0这两个结构体,而选择

    RF_cmdPropTx还有RF_cmdPropRx结构体

  • 您好,   已经跟进您的问题,有更新会立即回复您,谢谢。

  • 我现在用你们提供的方法,Rx可以接收到Tx发来的消息,但是现在我有个疑问就是,我必须在callback里面再次post一次Rx,才能触发callback函数,否则就只能触发第一次,请问这是什么原因呢?

  • 您好,   已经跟进您的问题,有更新会立即回复您,谢谢。

  • 使用RF_runCmd时,我没有观察到类似的行为,我建议您查看 RF 驱动程序命令差异,如无线电软件包 (rflib) API中所述。