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.

CC2652R: 寻找 .rfMode = RF_MODE_PROPRIETARY_2_4, 1M 2M 通讯速率例程

Part Number: CC2652R

最近在使用代码工程,测试 cc2652R1 RF 在私有模式 1M 2M  通讯速率。了解到需要使用 HS API, 可测试一直没有成功。

曾经尝试使用 E2E 网站推荐方法,

e2e.ti.com/.../cc2640r2f-rfpackettx-with-2m-phy-rf_mode_ble-how-to-increase-payload-size

在2640R2 Development Kit 板上实验,未成功。

实验方法如下:

1. SmartRF Studio 选择 BLE 2M 速率生成 .c / .h 文件。

2. 完整 copy 前述网站文件。命名为 rfPacketTx.c .

3. 添加 HS API 头文件。

#include DeviceFamily_constructPath(driverlib/rf_hs_mailbox.h)
#include DeviceFamily_constructPath(driverlib/rf_hs_cmd.h)

4. build / load  / Run

发现问题, RF_runCmd  函数运行时异常,代码不能正常运行。

后尝试手工修改  .rfMode = RF_MODE_PROPRIETARY_2_4, 

再次运行,RF_runCmd 发送数据包函数能执行完,返回值是2 --- RF_EventLastCmdDone
但是 HS 的 cmdStatus 状态错误 0x3800

还请支持!

  • 问题补充:

    第一次编译是报错,没有 RF_cmdTxHS 数据结构。之后手工造了一个 RF_cmdTxHS,内容如下。也不知道构造的对不对 ?
    // CMD_HS_TX
    //! High-Speed Transmit Command
    rfc_CMD_HS_TX_t RF_cmdTxHS =
    {
    .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,
    // Leeson annotate
    //.pktLen = 0x1e, // SET APPLICATION PAYLOAD LENGTH
    //.syncWord = 0xD391D391,
    //.pPkt = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx
    // Leeson add
    .pQueue = 0, // INSERT APPLICABLE POINTER: (dataQueue_t*)&xxx
    };

  • 专有模式BLE没有例程,可以参考例程drivers\rfPacketErrorRate

    关于RF可以参考https://dev.ti.com/tirex/content/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/rflib/html/index.html