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.

LAUNCHXL-CC1312R1: Setup of CC1312R1 RF to be the same as previously used on CC1310

Part Number: LAUNCHXL-CC1312R1
Other Parts Discussed in Thread: LAUNCHXL-CC1310, CC1310, CC1312R, UNIFLASH

We have a system running using the LAUNCHXL-CC1310. We now decided to move to the CC1312R1 as we will need BLE soon.

The CC1312R1 is now working, but there are a lot of transmission errors, where on the CC1310 we had none. I suspect the RF radio is not setup correctly.

The setup on the CC1310 uses the following:

<Devicename>CC1310_PG21</Devicename>
    <Description>Saved configuration data</Description>
    <Patch>
        <Define>RF_MODE_PROPRIETARY_SUB_1</Define>
        <Cpe>rf_patch_cpe_genfsk</Cpe>
        <Mce></Mce>
        <Rfe>rf_patch_rfe_genfsk</Rfe>
    </Patch>
         <Command name="CMD_PROP_RADIO_DIV_SETUP">
            <Field name="commandNo">0x00003807</Field>
            <Field name="status">0x00000000</Field>
            <Field name="pNextOp">0x00000000</Field>
            <Field name="startTime">0x00000000</Field>
            <Field name="startTrigger">0x00000000</Field>
            <Field name="condition">0x00000001</Field>
            <Field name="modulation">0x00000321</Field>
            <Field name="symbolRate">0x0080000f</Field>
            <Field name="rxBw">0x00000024</Field>
            <Field name="preamConf">0x00000004</Field>
            <Field name="formatConf">0x000000a0</Field>
            <Field name="config">0x00000008</Field>
            <Field name="txPower">0x0000a73f</Field>
            <Field name="pRegOverride">0x00000000</Field>
            <Field name="centerFreq">0x00000364</Field>
            <Field name="intFreq">0x00008000</Field>
            <Field name="loDivider">0x00000005</Field>
            <OverrideField name="pRegOverride">
                <OverrideBuffer name="override_use_patch_prop_genfsk.xml">
                    <Element32b>MCE_RFE_OVERRIDE(0,4,0,1,0,0)</Element32b>
                </OverrideBuffer>
                <OverrideBuffer name="override_synth_prop_863_930_div5.xml">
                    <Element32b>HW_REG_OVERRIDE(0x4038,0x0037)</Element32b>
                    <Element32b>0x000684A3</Element32b>
                    <Element32b>HW_REG_OVERRIDE(0x4020,0x7F00)</Element32b>
                    <Element32b>HW_REG_OVERRIDE(0x4064,0x0040)</Element32b>
                    <Element32b>0xB1070503</Element32b>
                    <Element32b>0x05330523</Element32b>
                    <Element32b>0x0A480583</Element32b>
                    <Element32b>0x7AB80603</Element32b>
                    <Element32b>ADI_REG_OVERRIDE(1,4,0x9F)</Element32b>
                    <Element32b>ADI_HALFREG_OVERRIDE(1,7,0x4,0x4)</Element32b>
                    <Element32b>0x02010403</Element32b>
                    <Element32b>0x00108463</Element32b>
                    <Element32b>0x04B00243</Element32b>
                </OverrideBuffer>
                <OverrideBuffer name="override_phy_rx_aaf_bw_0xd.xml">
                    <Element32b>ADI_HALFREG_OVERRIDE(0,61,0xF,0xD)</Element32b>
                </OverrideBuffer>
                <OverrideBuffer name="override_phy_gfsk_rx.xml">
                    <Element32b>0x00038883</Element32b>
                    <Element32b>HW_REG_OVERRIDE(0x6084,0x35F1)</Element32b>
                </OverrideBuffer>
                <OverrideBuffer name="override_phy_gfsk_pa_ramp_agc_reflevel_0x1a.xml">
                    <Element32b>HW_REG_OVERRIDE(0x6088,0x411A)</Element32b>
                    <Element32b>HW_REG_OVERRIDE(0x608C,0x8213)</Element32b>
                </OverrideBuffer>
                <OverrideBuffer name="override_phy_rx_rssi_offset_5db.xml">
                    <Element32b>0x00FB88A3</Element32b>
                </OverrideBuffer>
                <OverrideBuffer name="TX power override">
                    <Element32b>ADI_REG_OVERRIDE(0,12,0xF8)</Element32b>
                </OverrideBuffer>
            </OverrideField>
        </Command>

The ccfg file has not been changed.

On the CC1312R1 the following setup is used:

    <Devicename>CC1312R_PG21</Devicename>
    <Description>Saved configuration data</Description>
    <Patch>
        <Define>RF_MODE_AUTO</Define>
        <Cpe>rf_patch_cpe_prop</Cpe>
        <Mce></Mce>
        <Rfe></Rfe>
    </Patch>
        <Command name="CMD_PROP_RADIO_DIV_SETUP">
            <Field name="commandNo">0x00003807</Field>
            <Field name="status">0x00000000</Field>
            <Field name="pNextOp">0x00000000</Field>
            <Field name="startTime">0x00000000</Field>
            <Field name="startTrigger">0x00000000</Field>
            <Field name="condition">0x00000001</Field>
            <Field name="modulation">0x00000321</Field>
            <Field name="symbolRate">0x0080000f</Field>
            <Field name="rxBw">0x00000052</Field>
            <Field name="preamConf">0x00000004</Field>
            <Field name="formatConf">0x000000a0</Field>
            <Field name="config">0x00000008</Field>
            <Field name="txPower">0x0000013f</Field>
            <Field name="pRegOverride">0x00000000</Field>
            <Field name="centerFreq">0x00000364</Field>
            <Field name="intFreq">0x00008000</Field>
            <Field name="loDivider">0x00000005</Field>
            <OverrideField name="pRegOverride">
                <OverrideBuffer name="override_prop_common.xml">
                    <Element32b>0x00F788D3</Element32b>
                </OverrideBuffer>
                <OverrideBuffer name="override_tc106.xml">
                    <Element32b>ADI_2HALFREG_OVERRIDE(0,16,0x8,0x8,17,0x1,0x1)</Element32b>
                    <Element32b>HW_REG_OVERRIDE(0x609C,0x001A)</Element32b>
                    <Element32b>0x000188A3</Element32b>
                    <Element32b>ADI_HALFREG_OVERRIDE(0,61,0xF,0xD)</Element32b>
                    <Element32b>HW_REG_OVERRIDE(0x6028,0x001A)</Element32b>
                </OverrideBuffer>
                <OverrideBuffer name="TX power override">
                    <Element32b>ADI_REG_OVERRIDE(0,12,0xF8)</Element32b>
                </OverrideBuffer>
            </OverrideField>
        </Command>

The ccfg file is unchanged. With this setup we get a lot of 'missed' messages/transmissions. The application coded is the same for both CC1310 and 1312.

I then changed the ccfg file of the CC1312R1 with the following (to be the same as for the CC1310):

#define SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN       0x1        // Dithering enabled
#define SET_CCFG_MODE_CONF_XOSC_FREQ                  0x3        // HF source is a 24 MHz xtal (default on x0 chips)
#define SET_CCFG_CCFG_TAP_DAP_0_PWRPROF_TAP_ENABLE    0x00       // Access disabled
#define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE       0xC5       // Access enabled if also enabled in FCFG

After flashing the application is in constant reset. Worst of all, now I can't connect to the device as the XDS110 debugger now seems to be 'buggered'.

I just get the following error:

This error is generated by TI's USCIF driver or utilities.

The value is '-241' (0xffffff0f).
The title is 'SC_ERR_ROUTER_SECURE_SUBPATH'.

The explanation is:
A router subpath could not be accessed.
A security error has probably occurred.
Make sure your device is unlocked.

I have tried to reset everything using SmartRF Flash Programmer2, UNIFLASH and CCSV8 (8.3). No luck.

I now have 2 questions:
1. How can I set up the CC1312R1 RF radio to be the same as the CC1310? - MOST IMPORTANT.
2. How can I get access to the CC1312r1 board again? (Reset XDS110, force-erase, etc.).

Any help will be appreciated.

  • Hi,
    1. Best way is to use SmartRF stuido setup to communicatte between CC1312 and CC1310 and then export the RF settings. Then use those settings to
    configure examples in the SDK.
    2. Your board might be locked out. CC1312 and CC1310 are very different in some aspects.
  • Well, that is what I did. I first made sure that i could communicate with the CC1310 using SmartRF (with the same settings on the CC1312R1 as on the CC1310) and then used those settings in the application project. But for the same tests the CC1312R1 will have a 60%+ failure rate where the CC1310 will have 0 failures.

    So far, everything points to the RF setup on the CC1312R1. And since I am not an RF engineer or an expert on the TI CC1312R1, I thought of asking the 'real' experts at TI.

    As for the problem with connection: obviously I have been locked out. But that is something which should not be happening so easily by just changing 1 define, recompiling and flashing the new image. And for when it does happen that one gets locked out, I would have thought there will at least be some tool to just easily erase everything on the flash and start over. At least some tool that uses brute force to erase a flash based on some input from the user (type of board) and not depending on the automated connection checking?

    Can someone maybe recommend some steps to follow on what I can try to unlock this thing?

  • Some of the settings in the CCFG is to avoid tampering with the chip (reprogram it in the field as one example) meaning that the CCFG settings should not be changed before reading the documentation. By setting
    #define SET_CCFG_CCFG_TAP_DAP_0_PWRPROF_TAP_ENABLE 0x00 // Access disabled

    you disable the access to the chip, as the comment state and this is expected behavior according to the documentation.

    For unlocking, use Flash Programmer 2, select the wrench icon in the upper right corner, and select mass erase.

    - Why have you set #define SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN on either chips?
    - Why have you set #define SET_CCFG_MODE_CONF_XOSC_FREQ 0x3 when you are using CC1312R which uses a 48 MHz xtal?
  • Thank you for the reply.

    I took the software over from an external company and basically just tried to get it working on the CC1312R1 using the same settings. After seeing the error-rate of the CC1312R1 (before I changed the ccfg file), I tried to use the same settings as in the ccfg file for the 1310 just to see whether it will make any major difference.

    I have tried to unlock the board using Flash Programmer 2, but it does not work since the tool does not pick up the board correctly, coming back with 'Failed to enumerate XBAL devices'. This precludes using the mass erase option.

    I originally (sometimes) found the same problem with the CC1310, but got around it by flashing with CCS. This time nothing works and when testing the connection via CCS the following is returned:

    %ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity

    [Result]


    -----[Print the board config pathname(s)]------------------------------------

    C:\Users\bremewe\AppData\Local\TEXASI~1\
    CCS\ccs830\0\0\BrdDat\testBoard.dat

    -----[Print the reset-command software log-file]-----------------------------

    This utility has selected a 100- or 510-class product.
    This utility will load the adapter 'jioxds110.dll'.
    The library build date was 'Apr 30 2019'.
    The library build time was '14:17:18'.
    The library package version is '8.1.0.00012'.
    The library component version is '35.35.0.0'.
    The controller does not use a programmable FPGA.
    The controller has a version number of '5' (0x00000005).
    The controller has an insertion length of '0' (0x00000000).
    This utility will attempt to reset the controller.
    This utility has successfully reset the controller.

    -----[Print the reset-command hardware log-file]-----------------------------

    The scan-path will be reset by toggling the JTAG TRST signal.
    The controller is the XDS110 with USB interface.
    The link from controller to target is direct (without cable).
    The software is configured for XDS110 features.
    The controller cannot monitor the value on the EMU[0] pin.
    The controller cannot monitor the value on the EMU[1] pin.
    The controller cannot control the timing on output pins.
    The controller cannot control the timing on input pins.
    The scan-path link-delay has been set to exactly '0' (0x0000).

    An error occurred while hard opening the controller.

    -----[An error has occurred and this utility has aborted]--------------------

    This error is generated by TI's USCIF driver or utilities.

    The value is '-241' (0xffffff0f).
    The title is 'SC_ERR_ROUTER_SECURE_SUBPATH'.

    The explanation is:
    A router subpath could not be accessed.
    A security error has probably occurred.
    Make sure your device is unlocked.

    [End: Texas Instruments XDS110 USB Debug Probe_0]


    So, I am stumped!

    Werner
  • Could you attach the xml files showing the setup instead of copy/ paste them into the post?

    As long as you haven't changed SET_CCFG_ERASE_CONF_CHIP_ERASE_DIS_N you should be able to do a mass erase. But if the chip comes up as unknown you have bricked the chip.
  • I have attached the settings of both the CC1310 and the CC1312 HW. Also the ccfg file of the CC1312 that caused my HW to lock up. Now I have only the dithering enabled (on a new board).

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE configuration SYSTEM "C:/MyPrograms/ti/SmartRF Studio 7/config/xml/configdata.dtd"[]>
    <dcpanelconfiguration>
        <Devicename>CC1310_PG21</Devicename>
        <Description>Saved configuration data</Description>
        <Patch>
            <Define>RF_MODE_PROPRIETARY_SUB_1</Define>
            <Cpe>rf_patch_cpe_genfsk</Cpe>
            <Mce></Mce>
            <Rfe>rf_patch_rfe_genfsk</Rfe>
        </Patch>
        <commandsettings>
            <Command name="CMD_TX_TEST">
                <Field name="commandNo">0x00000808</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="config">0x0000000a</Field>
                <Field name="txWord">0x0000aaaa</Field>
                <Field name="endTrigger">0x00000001</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="endTime">0x00000000</Field>
            </Command>
            <Command name="CMD_SYNC_STOP_RAT">
                <Field name="commandNo">0x00000809</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="rat0">0x00000000</Field>
            </Command>
            <Command name="CMD_SYNC_START_RAT">
                <Field name="commandNo">0x0000080a</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="rat0">0x00000000</Field>
            </Command>
            <Command name="CMD_STOP">
                <Field name="commandNo">0x00000402</Field>
            </Command>
            <Command name="CMD_SCH_IMM">
                <Field name="commandNo">0x00000810</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="cmdrVal">0x00000000</Field>
                <Field name="cmdstaVal">0x00000000</Field>
            </Command>
            <Command name="CMD_RX_TEST">
                <Field name="commandNo">0x00000807</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="config">0x00000004</Field>
                <Field name="endTrigger">0x00000001</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="endTime">0x00000000</Field>
            </Command>
            <Command name="CMD_RADIO_SETUP">
                <Field name="commandNo">0x00000802</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="mode">0x00000001</Field>
                <Field name="loDivider">0x00000000</Field>
                <Field name="config">0x00000000</Field>
                <Field name="txPower">0x00000000</Field>
                <Field name="pRegOverride">0x00000000</Field>
                <OverrideField name="pRegOverride">
                    <OverrideBuffer name="TX power override">
                        <Element32b>ADI_REG_OVERRIDE(0,12,0xF8)</Element32b>
                    </OverrideBuffer>
                </OverrideField>
            </Command>
            <Command name="CMD_PROP_TX_ADV">
                <Field name="commandNo">0x00003803</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000000</Field>
                <Field name="numHdrBits">0x00000010</Field>
                <Field name="pktLen">0x00000014</Field>
                <Field name="startConf">0x00000000</Field>
                <Field name="preTrigger">0x00000000</Field>
                <Field name="preTime">0x00000000</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="pPkt">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_TX">
                <Field name="commandNo">0x00003801</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000018</Field>
                <Field name="pktLen">0x00000014</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="pPkt">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RX_SNIFF">
                <Field name="commandNo">0x00003808</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000000</Field>
                <Field name="rxConf">0x00000000</Field>
                <Field name="syncWord">0x00000000</Field>
                <Field name="maxPktLen">0x00000000</Field>
                <Field name="address0">0x00000000</Field>
                <Field name="address1">0x00000000</Field>
                <Field name="endTrigger">0x00000000</Field>
                <Field name="endTime">0x00000000</Field>
                <Field name="pQueue">0x00000000</Field>
                <Field name="pOutput">0x00000000</Field>
                <Field name="csConf">0x00000000</Field>
                <Field name="rssiThr">0x00000000</Field>
                <Field name="numRssiIdle">0x00000000</Field>
                <Field name="numRssiBusy">0x00000000</Field>
                <Field name="corrPeriod">0x00000000</Field>
                <Field name="corrConfig">0x00000000</Field>
                <Field name="csEndTrigger">0x00000000</Field>
                <Field name="csEndTime">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RX_ADV_SNIFF">
                <Field name="commandNo">0x00003809</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000000</Field>
                <Field name="rxConf">0x00000000</Field>
                <Field name="syncWord0">0x00000000</Field>
                <Field name="syncWord1">0x00000000</Field>
                <Field name="maxPktLen">0x00000000</Field>
                <Field name="hdrConf">0x00000000</Field>
                <Field name="addrConf">0x00000000</Field>
                <Field name="lenOffset">0x00000000</Field>
                <Field name="endTrigger">0x00000000</Field>
                <Field name="endTime">0x00000000</Field>
                <Field name="pAddr">0x00000000</Field>
                <Field name="pQueue">0x00000000</Field>
                <Field name="pOutput">0x00000000</Field>
                <Field name="csConf">0x00000000</Field>
                <Field name="rssiThr">0x00000000</Field>
                <Field name="numRssiIdle">0x00000000</Field>
                <Field name="numRssiBusy">0x00000000</Field>
                <Field name="corrPeriod">0x00000000</Field>
                <Field name="corrConfig">0x00000000</Field>
                <Field name="csEndTrigger">0x00000000</Field>
                <Field name="csEndTime">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RX_ADV">
                <Field name="commandNo">0x00003804</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000000</Field>
                <Field name="rxConf">0x00000000</Field>
                <Field name="syncWord0">0x930b51de</Field>
                <Field name="syncWord1">0x00000000</Field>
                <Field name="maxPktLen">0x000000ff</Field>
                <Field name="hdrConf">0x00000000</Field>
                <Field name="addrConf">0x00000000</Field>
                <Field name="lenOffset">0x00000000</Field>
                <Field name="endTrigger">0x00000000</Field>
                <Field name="endTime">0x00000000</Field>
                <Field name="pAddr">0x00000000</Field>
                <Field name="pQueue">0x00000000</Field>
                <Field name="pOutput">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RX">
                <Field name="commandNo">0x00003802</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000018</Field>
                <Field name="rxConf">0x00000088</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="maxPktLen">0x000000ff</Field>
                <Field name="address0">0x000000aa</Field>
                <Field name="address1">0x000000bb</Field>
                <Field name="endTrigger">0x00000001</Field>
                <Field name="endTime">0x00000000</Field>
                <Field name="pQueue">0x00000000</Field>
                <Field name="pOutput">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RADIO_SETUP">
                <Field name="commandNo">0x00003806</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="modulation">0x00000000</Field>
                <Field name="symbolRate">0x00000000</Field>
                <Field name="rxBw">0x00000000</Field>
                <Field name="preamConf">0x00000000</Field>
                <Field name="formatConf">0x00000000</Field>
                <Field name="config">0x00000000</Field>
                <Field name="txPower">0x00000000</Field>
                <Field name="pRegOverride">0x00000000</Field>
                <OverrideField name="pRegOverride">
                    <OverrideBuffer name="TX power override">
                        <Element32b>ADI_REG_OVERRIDE(0,12,0xF8)</Element32b>
                    </OverrideBuffer>
                </OverrideField>
            </Command>
            <Command name="CMD_PROP_RADIO_DIV_SETUP">
                <Field name="commandNo">0x00003807</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="modulation">0x00000321</Field>
                <Field name="symbolRate">0x0080000f</Field>
                <Field name="rxBw">0x00000024</Field>
                <Field name="preamConf">0x00000004</Field>
                <Field name="formatConf">0x000000a0</Field>
                <Field name="config">0x00000008</Field>
                <Field name="txPower">0x0000a73f</Field>
                <Field name="pRegOverride">0x00000000</Field>
                <Field name="centerFreq">0x00000364</Field>
                <Field name="intFreq">0x00008000</Field>
                <Field name="loDivider">0x00000005</Field>
                <OverrideField name="pRegOverride">
                    <OverrideBuffer name="override_use_patch_prop_genfsk.xml">
                        <Element32b>MCE_RFE_OVERRIDE(0,4,0,1,0,0)</Element32b>
                    </OverrideBuffer>
                    <OverrideBuffer name="override_synth_prop_863_930_div5.xml">
                        <Element32b>HW_REG_OVERRIDE(0x4038,0x0037)</Element32b>
                        <Element32b>0x000684A3</Element32b>
                        <Element32b>HW_REG_OVERRIDE(0x4020,0x7F00)</Element32b>
                        <Element32b>HW_REG_OVERRIDE(0x4064,0x0040)</Element32b>
                        <Element32b>0xB1070503</Element32b>
                        <Element32b>0x05330523</Element32b>
                        <Element32b>0x0A480583</Element32b>
                        <Element32b>0x7AB80603</Element32b>
                        <Element32b>ADI_REG_OVERRIDE(1,4,0x9F)</Element32b>
                        <Element32b>ADI_HALFREG_OVERRIDE(1,7,0x4,0x4)</Element32b>
                        <Element32b>0x02010403</Element32b>
                        <Element32b>0x00108463</Element32b>
                        <Element32b>0x04B00243</Element32b>
                    </OverrideBuffer>
                    <OverrideBuffer name="override_phy_rx_aaf_bw_0xd.xml">
                        <Element32b>ADI_HALFREG_OVERRIDE(0,61,0xF,0xD)</Element32b>
                    </OverrideBuffer>
                    <OverrideBuffer name="override_phy_gfsk_rx.xml">
                        <Element32b>0x00038883</Element32b>
                        <Element32b>HW_REG_OVERRIDE(0x6084,0x35F1)</Element32b>
                    </OverrideBuffer>
                    <OverrideBuffer name="override_phy_gfsk_pa_ramp_agc_reflevel_0x1a.xml">
                        <Element32b>HW_REG_OVERRIDE(0x6088,0x411A)</Element32b>
                        <Element32b>HW_REG_OVERRIDE(0x608C,0x8213)</Element32b>
                    </OverrideBuffer>
                    <OverrideBuffer name="override_phy_rx_rssi_offset_5db.xml">
                        <Element32b>0x00FB88A3</Element32b>
                    </OverrideBuffer>
                    <OverrideBuffer name="TX power override">
                        <Element32b>ADI_REG_OVERRIDE(0,12,0xF8)</Element32b>
                    </OverrideBuffer>
                </OverrideField>
            </Command>
            <Command name="CMD_PROP_CS">
                <Field name="commandNo">0x00003805</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="csFsConf">0x00000000</Field>
                <Field name="csConf">0x00000000</Field>
                <Field name="rssiThr">0x00000000</Field>
                <Field name="numRssiIdle">0x00000000</Field>
                <Field name="numRssiBusy">0x00000000</Field>
                <Field name="corrPeriod">0x00000000</Field>
                <Field name="corrConfig">0x00000000</Field>
                <Field name="csEndTrigger">0x00000000</Field>
                <Field name="csEndTime">0x00000000</Field>
            </Command>
            <Command name="CMD_PATTERN_CHECK">
                <Field name="commandNo">0x00000813</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="patternOpt">0x00000000</Field>
                <Field name="pNextOpIfOk">0x00000000</Field>
                <Field name="pValue">0x00000000</Field>
                <Field name="mask">0x00000000</Field>
                <Field name="compareVal">0x00000000</Field>
            </Command>
            <Command name="CMD_NOP">
                <Field name="commandNo">0x00000801</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
            </Command>
            <Command name="CMD_FS_POWERUP">
                <Field name="commandNo">0x0000080c</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="pRegOverride">0x00000000</Field>
            </Command>
            <Command name="CMD_FS_POWERDOWN">
                <Field name="commandNo">0x0000080d</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
            </Command>
            <Command name="CMD_FS_OFF">
                <Field name="commandNo">0x00000804</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
            </Command>
            <Command name="CMD_FS">
                <Field name="commandNo">0x00000803</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="frequency">0x00000364</Field>
                <Field name="fractFreq">0x00000000</Field>
                <Field name="synthConf">0x00000000</Field>
            </Command>
            <Command name="CMD_COUNT_BRANCH">
                <Field name="commandNo">0x00000812</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="counter">0x00000000</Field>
                <Field name="pNextOpIfOk">0x00000000</Field>
            </Command>
            <Command name="CMD_COUNT">
                <Field name="commandNo">0x0000080b</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="counter">0x00000000</Field>
            </Command>
            <Command name="CMD_ABORT">
                <Field name="commandNo">0x00000401</Field>
            </Command>
        </commandsettings>
        <dcpanel>
            <Property name="m_chkCmdView" role="44">2</Property>
            <Property name="m_chkRfParameters" role="44">2</Property>
            <Property name="m_typicalSettings" role="33">Settings for 779 - 930 MHz band;50 kbps, 2-GFSK, 25 kHz deviation</Property>
            <Property name="m_testFuncPanel" role="37">2</Property>
        </dcpanel>
        <targetconfig>
            <Property name="m_cmbBoardSelection" role="46">0</Property>
            <Property name="m_chkDcDc" role="44">2</Property>
        </targetconfig>
        <rfparameters>
            <Property name="txPower" role="65535">14</Property>
        </rfparameters>
        <conttx>
            <Property name="m_rbtModulated" role="45">1</Property>
            <Property name="m_rbtUnmodulated" role="45">0</Property>
            <Property name="m_cmbDataFormat" role="46">-1</Property>
            <Property name="m_chkFreqSweep" role="44">0</Property>
            <Property name="m_chkChanSweep" role="44">0</Property>
        </conttx>
        <contrx>
            <Property name="m_cmbDataFormat" role="46">0</Property>
            <Property name="m_chkAutoScroll" role="44">2</Property>
        </contrx>
        <packettx>
            <Property name="m_edtPacketCount" role="42">100</Property>
            <Property name="m_edtFixedPktLength" role="42">20</Property>
            <Property name="m_edtPacketData" role="42">d3 af 8d 8f e8 30 13 26 ed 07 1b a5 e4 01 cf e4 5a 47 </Property>
            <Property name="m_edtAccessAddress" role="42"></Property>
            <Property name="m_chkAddSeqNbr" role="44">2</Property>
            <Property name="m_chkInfinite" role="44">0</Property>
            <Property name="m_rbtRandom" role="45">1</Property>
            <Property name="m_rbtText" role="45">0</Property>
            <Property name="m_rbtHex" role="45">0</Property>
            <Property name="m_chkAdvanced" role="44">0</Property>
            <Property name="m_cmbLengthConfig" role="46">0</Property>
            <Property name="m_edtFixedPktLength" role="42">20</Property>
            <Property name="m_grp802154g" role="20">0</Property>
            <Property name="m_edt802154gPktLength" role="42">20</Property>
            <Property name="m_rbt802154g2BCrc" role="45">1</Property>
            <Property name="m_rbt802154g4BCrc" role="45">0</Property>
            <Property name="m_chk802154gWhitening" role="44">2</Property>
            <Property name="m_chkFEC" role="44">0</Property>
            <Property name="m_cmbPreambleCount" role="46">5</Property>
            <Property name="m_chkAddress" role="44">0</Property>
            <Property name="m_cmbSyncMode" role="46">24</Property>
        </packettx>
        <packetview>
            <Property name="m_edtPktLength" role="42">20</Property>
            <Property name="m_edtAddress" role="42"></Property>
            <Property name="m_lblFrmPayload" role="41">d3 af 8d 8f e8 30 13 26 ed 07 1b a5 e4 01 cf e4 5a 47 </Property>
        </packetview>
        <packetrx>
            <Property name="m_edtPacketCount" role="42">100</Property>
            <Property name="m_edtAccessAddress" role="42">0x930b51de</Property>
            <Property name="m_chkInfinite" role="44">0</Property>
            <Property name="m_cmbViewFormat" role="46">0</Property>
            <Property name="m_chkSeqNbrIncluded" role="44">2</Property>
            <Property name="m_edtDumpFile" role="42"></Property>
            <Property name="m_chkAdvanced" role="44">0</Property>
            <Property name="m_chk802154gMode" role="44">0</Property>
        </packetrx>
    </dcpanelconfiguration>
    

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE configuration SYSTEM "C:/MyPrograms/ti/SmartRF Studio 7/config/xml/configdata.dtd"[]>
    <dcpanelconfiguration>
        <Devicename>CC1312R_PG21</Devicename>
        <Description>Saved configuration data</Description>
        <Patch>
            <Define>RF_MODE_AUTO</Define>
            <Cpe>rf_patch_cpe_prop</Cpe>
            <Mce></Mce>
            <Rfe></Rfe>
        </Patch>
        <commandsettings>
            <Command name="CMD_TX_TEST">
                <Field name="commandNo">0x00000808</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="config">0x0000000a</Field>
                <Field name="txWord">0x0000aaaa</Field>
                <Field name="endTrigger">0x00000001</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="endTime">0x00000000</Field>
            </Command>
            <Command name="CMD_SYNC_STOP_RAT">
                <Field name="commandNo">0x00000809</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="rat0">0x00000000</Field>
            </Command>
            <Command name="CMD_SYNC_START_RAT">
                <Field name="commandNo">0x0000080a</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="rat0">0x00000000</Field>
            </Command>
            <Command name="CMD_STOP">
                <Field name="commandNo">0x00000402</Field>
            </Command>
            <Command name="CMD_SCH_IMM">
                <Field name="commandNo">0x00000810</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="cmdrVal">0x00000000</Field>
                <Field name="cmdstaVal">0x00000000</Field>
            </Command>
            <Command name="CMD_RX_TEST">
                <Field name="commandNo">0x00000807</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="config">0x00000004</Field>
                <Field name="endTrigger">0x00000001</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="endTime">0x00000000</Field>
            </Command>
            <Command name="CMD_RESYNC_RAT">
                <Field name="commandNo">0x00000816</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="rat0">0x00000000</Field>
            </Command>
            <Command name="CMD_RADIO_SETUP">
                <Field name="commandNo">0x00000802</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="mode">0x00000001</Field>
                <Field name="loDivider">0x00000000</Field>
                <Field name="config">0x00000000</Field>
                <Field name="txPower">0x00000000</Field>
                <Field name="pRegOverride">0x00000000</Field>
                <OverrideField name="pRegOverride">
                    <OverrideBuffer name="TX power override">
                        <Element32b>ADI_REG_OVERRIDE(0,12,0xF8)</Element32b>
                    </OverrideBuffer>
                </OverrideField>
            </Command>
            <Command name="CMD_PROP_TX_ADV">
                <Field name="commandNo">0x00003803</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000000</Field>
                <Field name="numHdrBits">0x00000010</Field>
                <Field name="pktLen">0x00000014</Field>
                <Field name="startConf">0x00000000</Field>
                <Field name="preTrigger">0x00000000</Field>
                <Field name="preTime">0x00000000</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="pPkt">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_TX">
                <Field name="commandNo">0x00003801</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000018</Field>
                <Field name="pktLen">0x00000014</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="pPkt">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RX_SNIFF">
                <Field name="commandNo">0x00003808</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000000</Field>
                <Field name="rxConf">0x00000000</Field>
                <Field name="syncWord">0x00000000</Field>
                <Field name="maxPktLen">0x00000000</Field>
                <Field name="address0">0x00000000</Field>
                <Field name="address1">0x00000000</Field>
                <Field name="endTrigger">0x00000000</Field>
                <Field name="endTime">0x00000000</Field>
                <Field name="pQueue">0x00000000</Field>
                <Field name="pOutput">0x00000000</Field>
                <Field name="csConf">0x00000000</Field>
                <Field name="rssiThr">0x00000000</Field>
                <Field name="numRssiIdle">0x00000000</Field>
                <Field name="numRssiBusy">0x00000000</Field>
                <Field name="corrPeriod">0x00000000</Field>
                <Field name="corrConfig">0x00000000</Field>
                <Field name="csEndTrigger">0x00000000</Field>
                <Field name="csEndTime">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RX_ADV_SNIFF">
                <Field name="commandNo">0x00003809</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000000</Field>
                <Field name="rxConf">0x00000000</Field>
                <Field name="syncWord0">0x00000000</Field>
                <Field name="syncWord1">0x00000000</Field>
                <Field name="maxPktLen">0x00000000</Field>
                <Field name="hdrConf">0x00000000</Field>
                <Field name="addrConf">0x00000000</Field>
                <Field name="lenOffset">0x00000000</Field>
                <Field name="endTrigger">0x00000000</Field>
                <Field name="endTime">0x00000000</Field>
                <Field name="pAddr">0x00000000</Field>
                <Field name="pQueue">0x00000000</Field>
                <Field name="pOutput">0x00000000</Field>
                <Field name="csConf">0x00000000</Field>
                <Field name="rssiThr">0x00000000</Field>
                <Field name="numRssiIdle">0x00000000</Field>
                <Field name="numRssiBusy">0x00000000</Field>
                <Field name="corrPeriod">0x00000000</Field>
                <Field name="corrConfig">0x00000000</Field>
                <Field name="csEndTrigger">0x00000000</Field>
                <Field name="csEndTime">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RX_ADV">
                <Field name="commandNo">0x00003804</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000000</Field>
                <Field name="rxConf">0x00000000</Field>
                <Field name="syncWord0">0x930b51de</Field>
                <Field name="syncWord1">0x00000000</Field>
                <Field name="maxPktLen">0x000000ff</Field>
                <Field name="hdrConf">0x00000000</Field>
                <Field name="addrConf">0x00000000</Field>
                <Field name="lenOffset">0x00000000</Field>
                <Field name="endTrigger">0x00000000</Field>
                <Field name="endTime">0x00000000</Field>
                <Field name="pAddr">0x00000000</Field>
                <Field name="pQueue">0x00000000</Field>
                <Field name="pOutput">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RX">
                <Field name="commandNo">0x00003802</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="pktConf">0x00000018</Field>
                <Field name="rxConf">0x00000088</Field>
                <Field name="syncWord">0x930b51de</Field>
                <Field name="maxPktLen">0x000000ff</Field>
                <Field name="address0">0x000000aa</Field>
                <Field name="address1">0x000000bb</Field>
                <Field name="endTrigger">0x00000001</Field>
                <Field name="endTime">0x00000000</Field>
                <Field name="pQueue">0x00000000</Field>
                <Field name="pOutput">0x00000000</Field>
            </Command>
            <Command name="CMD_PROP_RADIO_SETUP">
                <Field name="commandNo">0x00003806</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="modulation">0x00000000</Field>
                <Field name="symbolRate">0x00000000</Field>
                <Field name="rxBw">0x00000000</Field>
                <Field name="preamConf">0x00000000</Field>
                <Field name="formatConf">0x00000000</Field>
                <Field name="config">0x00000000</Field>
                <Field name="txPower">0x00000000</Field>
                <Field name="pRegOverride">0x00000000</Field>
                <OverrideField name="pRegOverride">
                    <OverrideBuffer name="TX power override">
                        <Element32b>ADI_REG_OVERRIDE(0,12,0xF8)</Element32b>
                    </OverrideBuffer>
                </OverrideField>
            </Command>
            <Command name="CMD_PROP_RADIO_DIV_SETUP">
                <Field name="commandNo">0x00003807</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="modulation">0x00000321</Field>
                <Field name="symbolRate">0x0080000f</Field>
                <Field name="rxBw">0x00000052</Field>
                <Field name="preamConf">0x00000004</Field>
                <Field name="formatConf">0x000000a0</Field>
                <Field name="config">0x00000008</Field>
                <Field name="txPower">0x0000013f</Field>
                <Field name="pRegOverride">0x00000000</Field>
                <Field name="centerFreq">0x00000364</Field>
                <Field name="intFreq">0x00008000</Field>
                <Field name="loDivider">0x00000005</Field>
                <OverrideField name="pRegOverride">
                    <OverrideBuffer name="override_prop_common.xml">
                        <Element32b>0x00F788D3</Element32b>
                    </OverrideBuffer>
                    <OverrideBuffer name="override_tc106.xml">
                        <Element32b>ADI_2HALFREG_OVERRIDE(0,16,0x8,0x8,17,0x1,0x1)</Element32b>
                        <Element32b>HW_REG_OVERRIDE(0x609C,0x001A)</Element32b>
                        <Element32b>0x000188A3</Element32b>
                        <Element32b>ADI_HALFREG_OVERRIDE(0,61,0xF,0xD)</Element32b>
                        <Element32b>HW_REG_OVERRIDE(0x6028,0x001A)</Element32b>
                    </OverrideBuffer>
                    <OverrideBuffer name="TX power override">
                        <Element32b>ADI_REG_OVERRIDE(0,12,0xF8)</Element32b>
                    </OverrideBuffer>
                </OverrideField>
            </Command>
            <Command name="CMD_PROP_CS">
                <Field name="commandNo">0x00003805</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="csFsConf">0x00000000</Field>
                <Field name="csConf">0x00000000</Field>
                <Field name="rssiThr">0x00000000</Field>
                <Field name="numRssiIdle">0x00000000</Field>
                <Field name="numRssiBusy">0x00000000</Field>
                <Field name="corrPeriod">0x00000000</Field>
                <Field name="corrConfig">0x00000000</Field>
                <Field name="csEndTrigger">0x00000000</Field>
                <Field name="csEndTime">0x00000000</Field>
            </Command>
            <Command name="CMD_PATTERN_CHECK">
                <Field name="commandNo">0x00000813</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="patternOpt">0x00000000</Field>
                <Field name="pNextOpIfOk">0x00000000</Field>
                <Field name="pValue">0x00000000</Field>
                <Field name="mask">0x00000000</Field>
                <Field name="compareVal">0x00000000</Field>
            </Command>
            <Command name="CMD_NOP">
                <Field name="commandNo">0x00000801</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
            </Command>
            <Command name="CMD_FS_POWERUP">
                <Field name="commandNo">0x0000080c</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="pRegOverride">0x00000000</Field>
            </Command>
            <Command name="CMD_FS_POWERDOWN">
                <Field name="commandNo">0x0000080d</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
            </Command>
            <Command name="CMD_FS_OFF">
                <Field name="commandNo">0x00000804</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
            </Command>
            <Command name="CMD_FS">
                <Field name="commandNo">0x00000803</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000001</Field>
                <Field name="frequency">0x00000364</Field>
                <Field name="fractFreq">0x00000000</Field>
                <Field name="synthConf">0x00000000</Field>
            </Command>
            <Command name="CMD_COUNT_BRANCH">
                <Field name="commandNo">0x00000812</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="counter">0x00000000</Field>
                <Field name="pNextOpIfOk">0x00000000</Field>
            </Command>
            <Command name="CMD_COUNT">
                <Field name="commandNo">0x0000080b</Field>
                <Field name="status">0x00000000</Field>
                <Field name="pNextOp">0x00000000</Field>
                <Field name="startTime">0x00000000</Field>
                <Field name="startTrigger">0x00000000</Field>
                <Field name="condition">0x00000000</Field>
                <Field name="counter">0x00000000</Field>
            </Command>
            <Command name="CMD_ABORT">
                <Field name="commandNo">0x00000401</Field>
            </Command>
        </commandsettings>
        <dcpanel>
            <Property name="m_chkCmdView" role="44">2</Property>
            <Property name="m_chkRfParameters" role="44">2</Property>
            <Property name="m_typicalSettings" role="33">Settings for 779 - 930 MHz band;50 kbps, 2-GFSK, 25 kHz deviation</Property>
            <Property name="m_testFuncPanel" role="37">2</Property>
        </dcpanel>
        <targetconfig>
            <Property name="m_cmbBoardSelection" role="46">0</Property>
            <Property name="m_chkDcDc" role="44">2</Property>
        </targetconfig>
        <rfparameters>
            <Property name="txPower" role="65535">14</Property>
        </rfparameters>
        <conttx>
            <Property name="m_rbtModulated" role="45">1</Property>
            <Property name="m_rbtUnmodulated" role="45">0</Property>
            <Property name="m_cmbDataFormat" role="46">-1</Property>
            <Property name="m_chkFreqSweep" role="44">0</Property>
            <Property name="m_chkChanSweep" role="44">0</Property>
        </conttx>
        <contrx>
            <Property name="m_cmbDataFormat" role="46">0</Property>
            <Property name="m_chkAutoScroll" role="44">2</Property>
        </contrx>
        <packettx>
            <Property name="m_edtPacketCount" role="42">100</Property>
            <Property name="m_edtFixedPktLength" role="42">20</Property>
            <Property name="m_edtPacketData" role="42">25 d5 9c 71 61 77 f7 e4 c2 67 2e 65 0b 6b c2 04 59 3d </Property>
            <Property name="m_edtAccessAddress" role="42"></Property>
            <Property name="m_chkAddSeqNbr" role="44">2</Property>
            <Property name="m_chkInfinite" role="44">0</Property>
            <Property name="m_rbtRandom" role="45">1</Property>
            <Property name="m_rbtText" role="45">0</Property>
            <Property name="m_rbtHex" role="45">0</Property>
            <Property name="m_chkAdvanced" role="44">0</Property>
            <Property name="m_cmbLengthConfig" role="46">0</Property>
            <Property name="m_edtFixedPktLength" role="42">20</Property>
            <Property name="m_grp802154g" role="20">0</Property>
            <Property name="m_edt802154gPktLength" role="42">20</Property>
            <Property name="m_rbt802154g2BCrc" role="45">1</Property>
            <Property name="m_rbt802154g4BCrc" role="45">0</Property>
            <Property name="m_chk802154gWhitening" role="44">2</Property>
            <Property name="m_chkFEC" role="44">0</Property>
            <Property name="m_cmbPreambleCount" role="46">5</Property>
            <Property name="m_chkAddress" role="44">0</Property>
            <Property name="m_cmbSyncMode" role="46">24</Property>
        </packettx>
        <packetview>
            <Property name="m_edtPktLength" role="42">20</Property>
            <Property name="m_edtAddress" role="42"></Property>
            <Property name="m_lblFrmPayload" role="41">25 d5 9c 71 61 77 f7 e4 c2 67 2e 65 0b 6b c2 04 59 3d </Property>
        </packetview>
        <packetrx>
            <Property name="m_edtPacketCount" role="42">100</Property>
            <Property name="m_edtAccessAddress" role="42">0x930b51de</Property>
            <Property name="m_chkInfinite" role="44">0</Property>
            <Property name="m_cmbViewFormat" role="46">0</Property>
            <Property name="m_chkSeqNbrIncluded" role="44">2</Property>
            <Property name="m_edtDumpFile" role="42"></Property>
            <Property name="m_chkAdvanced" role="44">0</Property>
            <Property name="m_chk802154gMode" role="44">0</Property>
        </packetrx>
    </dcpanelconfiguration>
    

    /*
     * Copyright (c) 2015-2017, Texas Instruments Incorporated
     * All rights reserved.
     *
     * Redistribution and use in source and binary forms, with or without
     * modification, are permitted provided that the following conditions
     * are met:
     *
     * *  Redistributions of source code must retain the above copyright
     *    notice, this list of conditions and the following disclaimer.
     *
     * *  Redistributions in binary form must reproduce the above copyright
     *    notice, this list of conditions and the following disclaimer in the
     *    documentation and/or other materials provided with the distribution.
     *
     * *  Neither the name of Texas Instruments Incorporated nor the names of
     *    its contributors may be used to endorse or promote products derived
     *    from this software without specific prior written permission.
     *
     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     */
    
    /*
     *  ======== ccfg.c ========
     *  Customer Configuration for CC26xx and CC13xx devices.  This file is used to
     *  configure Boot ROM, start-up code, and SW radio behaviour.
     *
     *  By default, driverlib startup_files/ccfg.c settings are used.  However, if
     *  changes are required there are two means to do so:
     *
     *    1.  Remove this file and copy driverlib's startup_files/ccfg.c file in
     *        its place.  Make all changes to the file.  Changes made are local to
     *        the project and will not affect other projects.
     *
     *    2.  Perform changes to driverlib startup_files/ccfg.c file.  Changes
     *        made to this file will be applied to all projects.  This file must
     *        remain unmodified.
     */
    
    #include <ti/devices/DeviceFamily.h>
    
    #define SET_CCFG_MODE_CONF_1_ALT_DCDC_DITHER_EN       0x1        // Dithering enabled
    //#define SET_CCFG_MODE_CONF_XOSC_FREQ                  0x3        // HF source is a 24 MHz xtal (default on x0 chips)
    //#define SET_CCFG_CCFG_TAP_DAP_0_TEST_TAP_ENABLE       0xC5       // Access enabled if also enabled in FCFG
    
    #include DeviceFamily_constructPath(startup_files/ccfg.c)
    

  • It looks like you have used the standard 50 kbps given in SmartRF Studio for both CC1310 and CC1312R? Is that the case?

    Do you test transmission between two CC1312R boards using SmartRF Studio or do you have a different testsetup?
  • No, it is actually 25 kbps. I started off by getting the communications going between 2 CC1312 boards using SmartRF Studio. I then changed the parameters for the RF on the CC1312 and added a CC1310, again testing the communications between the 2 using SmartRF Studio.

    Once that was working I created a new project for the CC1312 and ported the CC1310 application software over, using the SmartRF Studio exported settings for the CC1312. After flashing the CC1312 the SW ran without any problems.

    I then tested the CC1312 communications comparing it against that of the CC1310. We have a setup of about 162 etags to which we send commands from the gateway (CC1310 / cc1312). These etags also send acknowledges back to the gateway. With the management SW I run a simulation of different commands that get sent to the tags, recording the commands that went out to whichever etag(s) and also the replies that are sent back.

    When I use the CC1310 board I have a failure rate of about 0.1%. Using the CC1312 it varies between 40% and 60%.
  • Strange, if I import the setup file you posted I get the standard 50 kbps up. Have you tested that you get the correct settings if you import the files in your end?

    When you test between 2 CC1312R and 1 CC1310 using 25 kbps settings I understand it as you had no issues indicating that the settings is good when you run it in this setting. Did you do the same test using your SW on CC1312R to check that the register export is correct (using just wo boards)

    If these tests are ok the settings should not be a issue. Is it any differences in the CC1312R code vs CC1310 that could impact the timing somehow? If the timing has changed it could be that messages are sent out when the rx side is not on or similar.

    With a CC1310, are you able to sniff what is going on in the network and what is different from the CC1310 and CC1312R case?
  • I think what happened here is that I exported the settings AFTER I started seeing the failures, without changing the frequency (and maybe something else as well). I will do the setup again and export the correct settings, then reload them here.

    This morning I was thinking about the timing. I will have to double-check this since as far as I know we are not using the trigger for Tx or Rx for a specific time, rather set it to 0 and tx or rx immediately. As soon as I have more info on this I will post it here together with the correct configuration files.

  • I have checked the code and nowhere could I find anything that can cause a timing issue. After Tx we immediately switch to Rx mode if we expect an ACK back and wait for a predefined time (450 ms) before we transmit another message from the queue, else we transmit the next message in the queue. For our tests we expect an ACK for about 2/3 of the commands sent.

    I have attached the smartrf_settings.c files as used in the 2 projects.

    CC1310:

    //*********************************************************************************
    // Generated by SmartRF Studio version 2.13.0 (build #156)
    // Tested for SimpleLink SDK version: CC13x2 SDK 2.40.xx.xx
    // Device: CC1312R Rev. 2.1
    //
    //*********************************************************************************
    
    
    //*********************************************************************************
    // Parameter summary
    // Address: off
    // Address0: 0xAA
    // Address1: 0xBB
    // Frequency: 868.00000 MHz
    // Data Format: Serial mode disable
    // Deviation: 25.000 kHz
    // pktLen: 30
    // 802.15.4g Mode: off
    // Select bit order to transmit PSDU octets:: 1
    // Packet Length Config: Variable
    // Max Packet Length: 255
    // Packet Length: 30
    // Packet Data: 255
    // RX Filter BW: 98.0 kHz
    // Symbol Rate: 50.00000 kBaud
    // Sync Word Length: 32 Bits
    // TX Power: 10 dBm (requires define CCFG_FORCE_VDDR_HH = 0 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_prop.h)
    #include "smartrf_settings.h"
    
    
    // TI-RTOS RF Mode Object
    RF_Mode RF_prop =
    {
        .rfMode = RF_MODE_AUTO,
        .cpePatchFxn = &rf_patch_cpe_prop,
        .mcePatchFxn = 0,
        .rfePatchFxn = 0,
    };
    
    rfc_CMD_SET_TX_POWER_t txPowerCommand =
    {
        .commandNo = CMD_SET_TX_POWER,    // command identifier
        .txPower   = 0xa410               // value generated by SmartRF Studio
    };
    
    // Overrides for CMD_PROP_RADIO_DIV_SETUP
    uint32_t pOverrides[] =
    {
        // override_prop_common.xml
        // DC/DC regulator: In Tx, use DCDCCTL5[3:0]=0x7 (DITHER_EN=0 and IPEAK=7).
        (uint32_t)0x00F788D3,
        // override_tc106.xml
        // Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[4:3]=0x3)
        ADI_2HALFREG_OVERRIDE(0,16,0x8,0x8,17,0x1,0x1),
        // Rx: Set AGC reference level to 0x1A (default: 0x2E)
        HW_REG_OVERRIDE(0x609C,0x001A),
        // Rx: Set RSSI offset to adjust reported RSSI by -1 dB (default: -2), trimmed for external bias and differential configuration
        (uint32_t)0x000188A3,
        // Rx: Set anti-aliasing filter bandwidth to 0xD (in ADI0, set IFAMPCTL3[7:4]=0xD)
        ADI_HALFREG_OVERRIDE(0,61,0xF,0xD),
        // Tx: Set wait time before turning off ramp to 0x1A (default: 0x1F)
        HW_REG_OVERRIDE(0x6028,0x001A),
    #if (CCFG_FORCE_VDDR_HH)
        // TX power override
        // Tx: Set PA trim to max to maximize its output power (in ADI0, set PACTL0=0xF8)
        ADI_REG_OVERRIDE(0,12,0xF8),
    #endif
        (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,
        .modulation.deviationStepSz = 0x0,
        .symbolRate.preScale = 0xF,
        .symbolRate.rateWord = 0x4000,
        .symbolRate.decimMode = 0x0,
        .rxBw = 0x52,
        .preamConf.nPreamBytes = 0x4,
        .preamConf.preamMode = 0x0,
        .formatConf.nSwBits = 0x20,
        .formatConf.bBitReversal = 0x0,
        .formatConf.bMsbFirst = 0x1,
        .formatConf.fecMode = 0x0,
        .formatConf.whitenMode = 0x1,
        .config.frontEndMode = 0x0,
        .config.biasMode = 0x1,
        .config.analogCfgMode = 0x0,
        .config.bNoFsPowerUp = 0x0,
        .txPower = 0xa410,
        .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,
    };
    
    
    rfc_CMD_FS_t RF_cmdRXFs =
    {
        .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,
    };
    
    rfc_CMD_FS_t RF_cmdAckFs =
    {
        .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, // SET APPLICATION PAYLOAD LENGTH
        .syncWord = 0x4D425341,					// MBSA SYNC WORD,
        .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 = 0x4D425341,					// MBSA SYNC WORD,
        .maxPktLen = 0x80, // 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
    };
    
    // CMD_TX_TEST
    rfc_CMD_TX_TEST_t RF_cmdTxTestCW =
    {
        .commandNo = 0x0808,
        .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,
        .config.bUseCw = 0x0,
        .config.bFsOff = 0x1,
        .config.whitenMode = 0x2,
        .__dummy0 = 0x00,
        .txWord = 0xAAAA,
        .__dummy1 = 0x00,
        .endTrigger.triggerType = 0x1,
        .endTrigger.bEnaCmd = 0x0,
        .endTrigger.triggerNo = 0x0,
        .endTrigger.pastTrig = 0x0,
        .syncWord = 0x4D425341,
        .endTime = 0x00000000,
    };
    
    

    CC1312:

    //*********************************************************************************
    // Generated by SmartRF Studio version 2.13.0 (build #156)
    // Tested for SimpleLink SDK version: CC13x2 SDK 2.40.xx.xx
    // Device: CC1312R Rev. 2.1
    //
    //*********************************************************************************
    
    
    //*********************************************************************************
    // Parameter summary
    // Address: off
    // Address0: 0xAA
    // Address1: 0xBB
    // Frequency: 868.00000 MHz
    // Data Format: Serial mode disable
    // Deviation: 25.000 kHz
    // pktLen: 30
    // 802.15.4g Mode: off
    // Select bit order to transmit PSDU octets:: 1
    // Packet Length Config: Variable
    // Max Packet Length: 255
    // Packet Length: 30
    // Packet Data: 255
    // RX Filter BW: 98.0 kHz
    // Symbol Rate: 50.00000 kBaud
    // Sync Word Length: 32 Bits
    // TX Power: 10 dBm (requires define CCFG_FORCE_VDDR_HH = 0 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_prop.h)
    #include "smartrf_settings.h"
    
    
    // TI-RTOS RF Mode Object
    RF_Mode RF_prop =
    {
        .rfMode = RF_MODE_AUTO,
        .cpePatchFxn = &rf_patch_cpe_prop,
        .mcePatchFxn = 0,
        .rfePatchFxn = 0,
    };
    
    rfc_CMD_SET_TX_POWER_t txPowerCommand =
    {
        .commandNo = CMD_SET_TX_POWER,    // command identifier
        .txPower   = 0x740a               // value generated by SmartRF Studio
    };
    
    // Overrides for CMD_PROP_RADIO_DIV_SETUP
    uint32_t pOverrides[] =
    {
        // override_use_patch_prop_genfsk.xml
        // PHY: Use MCE RAM patch, RFE RAM patch
        MCE_RFE_OVERRIDE(1,0,0,1,0,0),
        // override_synth_prop_863_930_div5.xml
        // Synth: Use 48 MHz crystal as synth clock, enable extra PLL filtering
        (uint32_t)0x02400403,
        // Synth: Set minimum RTRIM to 6
        (uint32_t)0x00068793,
        // Synth: Configure extra PLL filtering
        (uint32_t)0x001C8473,
        // Synth: Configure extra PLL filtering
        (uint32_t)0x00088433,
        // Synth: Set Fref to 4 MHz
        (uint32_t)0x000684A3,
        // Synth: Configure faster calibration
        HW32_ARRAY_OVERRIDE(0x4004,1),
        // Synth: Configure faster calibration
        (uint32_t)0x180C0618,
        // Synth: Configure faster calibration
        (uint32_t)0xC00401A1,
        // Synth: Configure faster calibration
        (uint32_t)0x00010101,
        // Synth: Configure faster calibration
        (uint32_t)0xC0040141,
        // Synth: Configure faster calibration
        (uint32_t)0x00214AD3,
        // Synth: Decrease synth programming time-out by 90 us from default (0x0298 RAT ticks = 166 us)
        (uint32_t)0x02980243,
        // 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: Set loop bandwidth after lock to 20 kHz
        (uint32_t)0x00000623,
        // override_phy_tx_pa_ramp_genfsk.xml
        // Tx: Configure PA ramping, set wait time before turning off (0x1F ticks of 16/24 us = 20.7 us).
        HW_REG_OVERRIDE(0x6028,0x001F),
        // Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[3]=1)
        ADI_HALFREG_OVERRIDE(0,16,0x8,0x8),
        // Tx: Configure PA ramp time, PACTL2.RC=0x3 (in ADI0, set PACTL2[4]=1)
        ADI_HALFREG_OVERRIDE(0,17,0x1,0x1),
        // override_phy_rx_frontend_genfsk.xml
        // Rx: Set AGC reference level to 0x1A (default: 0x2E)
        HW_REG_OVERRIDE(0x609C,0x001A),
        // Rx: Set LNA bias current offset to adjust +1 (default: 0)
        (uint32_t)0x00018883,
        // Rx: Set RSSI offset to adjust reported RSSI by -2 dB (default: 0)
        (uint32_t)0x000288A3,
        // 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),
        // TX power override
        // DC/DC regulator: In Tx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4). In Rx, use DCDCCTL5[3:0]=0xC (DITHER_EN=1 and IPEAK=4).
        (uint32_t)0xFCFC08C3,
        (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,
        .modulation.deviationStepSz = 0x0,
        .symbolRate.preScale = 0xF,
        .symbolRate.rateWord = 0x4000,
        .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 = 0x1,
        .config.frontEndMode = 0x0,
        .config.biasMode = 0x1,
        .config.analogCfgMode = 0x0,
        .config.bNoFsPowerUp = 0x0,
        .txPower = 0x740A,
        .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,
    };
    
    
    rfc_CMD_FS_t RF_cmdRXFs =
    {
        .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,
    };
    
    rfc_CMD_FS_t RF_cmdAckFs =
    {
        .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, // SET APPLICATION PAYLOAD LENGTH
        .syncWord = 0x4D425341,					// MBSA SYNC WORD,
        .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 = 0x4D425341,					// MBSA SYNC WORD,
        .maxPktLen = 0x80, // 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
    };
    
    // CMD_TX_TEST
    rfc_CMD_TX_TEST_t RF_cmdTxTestCW =
    {
        .commandNo = 0x0808,
        .status = 0x0002,
        .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,
        .config.bUseCw = 0x1,
        .config.bFsOff = 0x1,
        .config.whitenMode = 0x2,
        .__dummy0 = 0x00,
        .txWord = 0xFFFF,
        .__dummy1 = 0x00,
        .endTrigger.triggerType = 0x1,
        .endTrigger.bEnaCmd = 0x0,
        .endTrigger.triggerNo = 0x0,
        .endTrigger.pastTrig = 0x0,
        .syncWord = 0x4D425341,
        .endTime = 0x00000000,
    };
    
    rfc_CMD_TX_TEST_t RF_cmdTxTestMOD =
    {
        .commandNo = 0x0808,
        .status = 0x0002,
        .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,
        .config.bUseCw = 0x0,
        .config.bFsOff = 0x1,
        .config.whitenMode = 0x2,
        .__dummy0 = 0x00,
        .txWord = 0xAAAA,
        .__dummy1 = 0x00,
        .endTrigger.triggerType = 0x1,
        .endTrigger.bEnaCmd = 0x0,
        .endTrigger.triggerNo = 0x0,
        .endTrigger.pastTrig = 0x0,
        .syncWord = 0x4D425341,
        .endTime = 0x00000000,
    };
    
    

  • Hi,

    The devices cannot have same smartrf_settings.c files.

    I would suggest you also look at the Wireless Sensor Network examples in the SDK. The examples form a one-to-many network where nodes send messages to a central hub. 

  • Sorry, that was a mistake with the uploading of the files. The 2 files ARE different, and I have now edited the post to reflect the correct files.

  • Hi Werner,

    Did you try the WSN examples in the SDK? Those examples are close to what you are trying to accomplish.

    Thanks.

  • Hi,

    Did you try the suggested examples? Were you able to resolve the problem?

    Thanks,