Other Parts Discussed in Thread: CC1101
WOR example rfWakeOnRadioTx_CC1310_LAUNCHXL_tirtos_ccs works with given Default RF setting.
On receiving side there is Smart RF studio with same RF setting.
But on changing RF setting in code to 2.4kbps as shown bellow and similar setting applied to smart RF studio RF communication is not working. Using SDK 3.10
//********************************************************************************* // Generated by SmartRF Studio version 2.12.0 (build#147) // The applied template is compatible with CC13x0 SDK 2.30.xx.xx // Device: CC1310 Rev. B (2.1) // //********************************************************************************* //********************************************************************************* // Parameter summary // RX Address0: 0xAA // RX Address1: 0xBB // RX Address Mode: No address check // Frequency: 868.00000 MHz // Data Format: Serial mode disable // Deviation: 5.250 kHz // Packet Length Config: Variable // Packet Length: 20 // Packet Data: 255 // RX Filter BW: 49 kHz // Symbol Rate: 2.40021 kBaud // Sync Word Length: 32 Bits // TX Power: 14 dBm (requires define CCFG_FORCE_VDDR_HH = 1 in ccfg.c, see CC13xx/CC26xx Technical Reference Manual) // Whitening: No whitening #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_prop_cmd.h) #include <ti/drivers/rf/RF.h> #include DeviceFamily_constructPath(rf_patches/rf_patch_cpe_brepeat.h) #include DeviceFamily_constructPath(rf_patches/rf_patch_rfe_brepeat.h) #include DeviceFamily_constructPath(rf_patches/rf_patch_mce_brepeat.h) #include "SRWRG_GFSK_2.4kbps_10dbm_868MHz_5.1KHzDev.h" // TI-RTOS RF Mode Object RF_Mode RF_prop = { .rfMode = RF_MODE_PROPRIETARY_SUB_1, .cpePatchFxn = &rf_patch_cpe_brepeat, .mcePatchFxn = &rf_patch_mce_brepeat, .rfePatchFxn = &rf_patch_rfe_brepeat }; // Overrides for CMD_PROP_RADIO_DIV_SETUP uint32_t pOverrides[] = { // override_use_patch_prop_brepeat.xml // PHY: Use MCE RAM patch, RFE RAM patch MCE_RFE_OVERRIDE(1,0,0,1,0,0), // override_synth_prop_863_930_div5_lbw60k.xml // Synth: Set recommended RTRIM to 7 HW_REG_OVERRIDE(0x4038,0x0037), // Synth: Set Fref to 4 MHz (uint32_t)0x000684A3, // Synth: Configure fine calibration setting HW_REG_OVERRIDE(0x4020,0x7F00), // Synth: Configure fine calibration setting HW_REG_OVERRIDE(0x4064,0x0040), // Synth: Configure fine calibration setting (uint32_t)0xB1070503, // Synth: Configure fine calibration setting (uint32_t)0x05330523, // Synth: Set loop bandwidth after lock to 60 kHz (uint32_t)0x40410583, // Synth: Set loop bandwidth after lock to 60 kHz (uint32_t)0x32CC0603, // Synth: Set loop bandwidth after lock to 60 kHz (uint32_t)0x00010623, // Synth: Configure VCO LDO (in ADI1, set VCOLDOCFG=0x9F to use voltage input reference) ADI_REG_OVERRIDE(1,4,0x9F), // Synth: Configure synth LDO (in ADI1, set SLDOCTL0.COMP_CAP=1) ADI_HALFREG_OVERRIDE(1,7,0x4,0x4), // Synth: Use 24 MHz XOSC as synth clock, enable extra PLL filtering (uint32_t)0x02010403, // Synth: Configure extra PLL filtering (uint32_t)0x00108463, // Synth: Increase synth programming timeout (0x04B0 RAT ticks = 300 us) (uint32_t)0x04B00243, // override_synth_disable_bias_div5.xml // Synth: Set divider bias to disabled HW32_ARRAY_OVERRIDE(0x405C,1), // Synth: Set divider bias to disabled (specific for loDivider=5) (uint32_t)0x18000200, // override_phy_tc189.xml // Rx: Set RSSI offset to adjust reported RSSI by +5 dB (default: 0), trimmed for external bias and differential configuration (uint32_t)0x00FB88A3, // Rx: Set anti-aliasing filter bandwidth to 0xD (in ADI0, set IFAMPCTL3[7:4]=0xD) ADI_HALFREG_OVERRIDE(0,61,0xF,0xD), // Tx: Configure PA ramping setting (0xC1) for approximately 210 us PA ramp time. Rx: Set AGC reference level to 0x18. HW_REG_OVERRIDE(0x6088,0xC118), // Tx: Configure PA ramping setting (0xC1) for approximately 210 us PA ramp time HW_REG_OVERRIDE(0x608C,0xC113), // Rx: Set LNA bias current trim offset to 3 (uint32_t)0x00038883, // Rx: Freeze RSSI on sync found event HW_REG_OVERRIDE(0x6084,0x35F1), // No SW pream configuration from RadioDivSetup command (uint32_t)0x000C8103, // 32b SW word, repeat 8 symbol preamble 8 times HW_REG_OVERRIDE(0x5050,0x1F77), // Tx: Set Preamble pattern HW_REG_OVERRIDE(0x5058,0x00CC), // Part of Sync Word (sync0) HW_REG_OVERRIDE(0x510C,0xF0CF), // Part of Sync Word (sync1) HW_REG_OVERRIDE(0x5110,0xC0C3), // Part of Sync Word (sync2) HW_REG_OVERRIDE(0x5114,0xF0CF), // Part of Sync Word (sync3) HW_REG_OVERRIDE(0x5118,0xC0C3), // Repetition factor HW_REG_OVERRIDE(0x5178,0x0002), // Increase sync threshold HW_REG_OVERRIDE(0x5104,0x3030), // TX power override // Tx: Set PA trim to max (in ADI0, set PACTL0=0xF8) ADI_REG_OVERRIDE(0,12,0xF8), (uint32_t)0xFFFFFFFF }; // CMD_PROP_RADIO_DIV_SETUP // Proprietary Mode Radio Setup Command for All Frequency Bands 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 = 0x15, .symbolRate.preScale = 0xF, .symbolRate.rateWord = 0xC4A, .symbolRate.decimMode = 0x0, .rxBw = 0x21, .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, .intFreq = 0x8000, .loDivider = 0x05 }; // CMD_FS // Frequency Synthesizer Programming Command 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, .fractFreq = 0x0000, .synthConf.bTxMode = 0x0, .synthConf.refFreq = 0x0, .__dummy0 = 0x00, .__dummy1 = 0x00, .__dummy2 = 0x00, .__dummy3 = 0x0000 }; // 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 = 0x1E, .syncWord = 0x00000000, .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 = 0x00000000, .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 };
code stuck at
/* Send packet */ RF_runCmd(rfHandle, (RF_Op*)&RF_cmdPropTxAdv, RF_PriorityNormal, NULL, 0);