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: using 625bps with rfWakeOnRadioRx_CC1310 and rfWakeOnRadioTx_CC1310

Part Number: CC1310
Other Parts Discussed in Thread: , CC1190

Hi .

I just want to ask if there is any way to use 625bps with rfWakeOnRadioRx_CC1310 and rfWakeOnRadioTx_CC1310 and if there is how to do that because I have already try to change settings in smart Rf then export them to my project bu it does not work 

  • Hi

    There is no support for Sniff mode when using Long Range Mode

    For SLR, there are no support for extra long preamble. The length of the preamble will simply be 64 bits sent (preamConf.nPreamBytes +1) times.

    It will also not be possible to use the sniff command/carrier sense command in SLR mode. The reason is that the correlator can only look for a standard preamble (1010101...) and not the "preamble" used by SLR. Using only the RSSI part of the sniff command is not a good option either, since the  sensitivity for this mode is around -120 dBm (close to the noise floor), and you will have too many false wake-ups due to noise.

    The Legacy Long Range mode uses normal preamble, but here the problem is the 64 bytes long sync word. Since the sync word is 64 bits long, both correlators are used for sync detection, and no correlator is available for PQT.

    Siri

  • thanks for your reply Siri when I use 50kbps it just can wake up the cc1310 in 1 m range can you please tell me what kind of setting should i use to make wake on exaple work with 4m or above distance 

  • if you are only getting 1 m range with the 50 kbps settings, I suspect that there is either something wrong with your HW or there is a very strong jammer present at the same frequency as you are operating. Please use the range estimator to see what range to expect with with the different PHYs:

    https://www.ti.com/tool/RF-RANGE-ESTIMATOR

    Siri

  • - What type of antenna do you use?

    - Have you verified that you don't have a frequency offset between the TX and RX nodes? 

  • I am using tow Launchxl-cc1310 as RX and TX with rfWakeOnRadio example and 5o kbps and these problem still showing up 

  • I am using tow Launchxl-cc1310 and both of them has 50kbps and 915 mhz settings from smartrf code 

  • Have you tried to use the Launchpads to SmartRF Studio directly? 

  • that is what I got in smart RF with 5m distance

  • Why have you selected based on CC13-90 on the RX side? 

  • I did my test again with smart RF and if you mean this then both of my launchxl are working fine in 10-20 m range when it is selected but when LAUNCHXL-CC1310 is selected it just work in 1 m range

  • Could you post a picture of the Launchpads you are using?

  • If you have a CC13-90 board, you have to set this both for RX and TX. 

  • When I set two CC13-90 boards as both Rx and Tx(one board TX and the other RX), I can communicate without any problem  in (1-20 meter range)with SmartRf studio, but when I export smartrf_settings.c and  smartrf_settings.h code from smart studio to code composer and paste them to their place in rfWakeOnRadioTx-Rx projects then upload the code to CC13-90 launch pads it only communicate in less than 1 meter range . (distance is too short 1m).

    here is my smartrf_settings.c

    //*********************************************************************************
    // Generated by SmartRF Studio version 2.20.0 (build#275)
    // The applied template is compatible with CC13x0 SDK version 2.10.xx.xx or newer.
    // Device: CC1310 Rev. B (2.1).
    //
    //*********************************************************************************
    
    
    //*********************************************************************************
    // Parameter summary
    // RX Address0: 0xAA
    // RX Address1: 0xBB
    // RX Address Mode: No address check
    // Frequency: 915.00000 MHz
    // Data Format: Serial mode disable 
    // Deviation: 25.000 kHz
    // Packet Length Config: Variable 
    // Max Packet Length: 255 
    // Packet Length: 20
    // Packet Data: 255 
    // RX Filter BW: 98 kHz
    // Symbol Rate: 50.00000 kBaud
    // Sync Word Length: 32 Bits 
    // TX Power: 26 dBm
    // 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_genfsk.h)
    #include DeviceFamily_constructPath(rf_patches/rf_patch_rfe_genfsk.h)
    #include "smartrf_settings.h"
    
    
    // TI-RTOS RF Mode Object
    RF_Mode RF_prop =
    {
        .rfMode = RF_MODE_PROPRIETARY_SUB_1,
        .cpePatchFxn = &rf_patch_cpe_genfsk,
        .mcePatchFxn = 0,
        .rfePatchFxn = &rf_patch_rfe_genfsk
    };
    
    
    // Overrides for CMD_PROP_RADIO_DIV_SETUP
    uint32_t pOverrides[] =
    {
        // override_use_patch_prop_genfsk.xml
        // PHY: Use MCE ROM bank 4, RFE RAM patch
        MCE_RFE_OVERRIDE(0,4,0,1,0,0),
        // override_synth_prop_863_930_div5.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 20 kHz
        (uint32_t)0x0A480583,
        // Synth: Set loop bandwidth after lock to 20 kHz
        (uint32_t)0x7AB80603,
        // 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_phy_rx_aaf_bw_0xd.xml
        // Rx: Set anti-aliasing filter bandwidth to 0xD (in ADI0, set IFAMPCTL3[7:4]=0xD)
        ADI_HALFREG_OVERRIDE(0,61,0xF,0xD),
        // override_phy_gfsk_rx.xml
        // Rx: Set LNA bias current trim offset to 3
        (uint32_t)0x00038883,
        // Rx: Freeze RSSI on sync found event
        HW_REG_OVERRIDE(0x6084,0x35F1),
        // override_phy_gfsk_pa_ramp_agc_reflevel_0x1a.xml
        // Tx: Configure PA ramping setting (0x41). Rx: Set AGC reference level to 0x1A.
        HW_REG_OVERRIDE(0x6088,0x411A),
        // Tx: Configure PA ramping setting
        HW_REG_OVERRIDE(0x608C,0x8213),
        // override_phy_rx_rssi_offset_cc1310_cc1190_869.xml
        // Rx: Set RSSI offset to adjust reported RSSI by +26 dB
        (uint32_t)0x000188A3,
        (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 = 0x64,
        .symbolRate.preScale = 0xF,
        .symbolRate.rateWord = 0x8000,
        .symbolRate.decimMode = 0x0,
        .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 = 0x1,
        .config.analogCfgMode = 0x0,
        .config.bNoFsPowerUp = 0x0,
        .txPower = 0x00CE,
        .pRegOverride = pOverrides,
        .centerFreq = 0x0393,
        .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 = 0x0393,
        .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 = 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
    };
    
    

    and smartrf_settings.h 

    #ifndef _SMARTRF_SETTINGS_H_
    #define _SMARTRF_SETTINGS_H_
    
    //*********************************************************************************
    // Generated by SmartRF Studio version 2.20.0 (build#275)
    // The applied template is compatible with CC13x0 SDK version 2.10.xx.xx or newer.
    // Device: CC1310 Rev. B (2.1).
    //
    //*********************************************************************************
    #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>
    
    
    // TI-RTOS RF Mode Object
    extern RF_Mode RF_prop;
    
    // RF Core API Commands
    extern rfc_CMD_PROP_RADIO_DIV_SETUP_t RF_cmdPropRadioDivSetup;
    extern rfc_CMD_FS_t RF_cmdFs;
    extern rfc_CMD_PROP_TX_t RF_cmdPropTx;
    extern rfc_CMD_PROP_RX_t RF_cmdPropRx;
    
    // RF Core API Overrides
    extern uint32_t pOverrides[];
    
    #endif // _SMARTRF_SETTINGS_H_
    

    , smartrf studio settings for TX 

    , smartrf studio settings for RX

    , how I export smartrf_settings.c and  smartrf_settings.h codes from smartRf studio 

    and I am using 

    rfWakeOnRadioRx_CC1310 and 

    rfWakeOnRadioTX_CC1310 codes that I imported them from code composer.

  • is that what I ahve to add ?

  • I would suggest you try to set the DIOs that are used to control the CC1190. (given that you haven't redefined BOARD_PIN_LED0/1)

  • PIN_Config pinTable[] =
    {
    Board_PIN_LED0 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    Board_PIN_LED1 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    PINCC26XX_DIO29 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    PINCC26XX_DIO30 | PIN_GPIO_OUTPUT_EN | PIN_GPIO_LOW | PIN_PUSHPULL | PIN_DRVSTR_MAX,
    PIN_TERMINATE
    };

    PINCC26XX_setMux(ledPinHandle, PINCC26XX_DIO29, PINCC26XX_MUX_RFC_GPO0);
    PINCC26XX_setMux(ledPinHandle, PINCC26XX_DIO30, PINCC26XX_MUX_RFC_GPO1);

    after I added code above it works fine in (1-30 m) .

    can I ask you if there is a way to ake the same thing without activating cc1190 means if I only have cc1310 ?

  • The CC1190 doesn't have a throughput mode meaning that you have to use CC1190 on the boards you have. If you want to use only CC1310 you need a board without CC1190. 

  • actullay I have another board which is our project here so shall I share schematic here or do you suggest to open a new question ?

    also let me tell how that I am so so thankfull for your helping. 

  • Start a new thread, include the schematic and the question you have on the schematic since it's a different topic than this thread started as.