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.

CC2640R2F: 2.4G proprietary configuration

Part Number: CC2640R2F
Other Parts Discussed in Thread: CC2640, , CC1350

Hello,

Can we set up CC2640 on below configuration? 

Datarate: 1Mbps, 

Payload_length: 64,

TX channel = 2452MHz;

RX channel = 2428MHz;

Packet format as below

  • Hi Daniel,

    Proprietary RF Driver examples will soon be added to the CC2640R2 SDK. Stay tuned!

    Cheers,
    Fredrik
  • Hello, Fredrik

    I have a question regarding this subject.

    I am testing CC2640R2F launch pad using rfPacketErrorRate_CC2640RF_LAUNCHXL_tirtos_ccs project.

    I got this project from TI Resource explorer.

    I think the development environments are well prepared. Of course, the project are well compiled, loaded, run on the launchpad.

    But, 2GFSK mode doesn't work at all.

    It stops at the function "RF_runCmd(rfHandle, (RF_Op*)RF_pCmdFs_preDef, RF_PriorityNormal, NULL, 0);

    As you know, this function does frequency setting. Why does the program stop at the function?

    Is the project that I downloaded unstable version?

    I compiled and loaded the project to the LAUCHXL-CC2640R2 without any modification.

    If you know what the problem is, please let me know.

    THANKS.

  • Hi Sukneung,

    Thank you for alerting us to this bug. I'll look into it.
  • Hi Sukneung,

    There's an error in the smartrf_settings_predefined.c-file. Please replace in smartrf_settings_predefined.c:

    // Overrides for CMD_PROP_RADIO_SETUP
    uint32_t pOverrides_fsk[] = {
        (uint32_t)0xFFFFFFFF,
    };

    and

    // CMD_PROP_RADIO_DIV_SETUP for 2.4G 200kbps 2-GFSK
    rfc_CMD_PROP_RADIO_SETUP_t RF_cmdPropRadioSetup_2_4G_fsk =
    {
        .commandNo = 0x3806,
        .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 = 0x0, //!< \brief 0: Internal bias, R2 skal ha internal
        .config.analogCfgMode = 0x0,
        .config.bNoFsPowerUp = 0x0,
        .txPower = 0xAB3F,//0xAB3F: 0 Db
        .pRegOverride = pOverrides_fsk,
    };

    and

    // CMD_FS
    rfc_CMD_FS_t RF_cmdFs_preDef =
    {
        .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 = 2405,
        .fractFreq = 0x0000,
        .synthConf.bTxMode = 1,
        .synthConf.refFreq = 0x0,
    };

    and

    //Rx command
    rfc_CMD_PROP_RX_t RF_cmdPropRxAdv_preDef = {
        .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 = 0xD391D391,
        .maxPktLen = 0x7d, // MAKE SURE DATA ENTRY IS LARGE ENOUGH
        .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
    };

    also, change the type of RF_cmdFs_preDef at the bottom of smartrf_settings_predefined.c and in smartrf_settings_predefined.h.

  • Hello Marie,

    Your code works well.

    Thanks for helping me.

    Anyway, I think the the settings are 50 kbps and 25kHz deviation, right?

    All the settings for the data rate are the same with the CC1350 or any other proprietary devices?

    Thank you and good luck.