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 LRM模式的例程

Other Parts Discussed in Thread: CC1310

你好,

请问哪里可以下载到CC1310在LRM模式下4.8K通信的例程。

RF studio 里面只有625波特率的代码。我们需要用到4.8K的波特率。

谢谢!

  • 下载地址在这里: http://dev.ti.com/tirex/#/?link=TI-RTOS%20for%20CC13XX%20and%20CC26XX%2FDevelopment%20Tools%2FCC1310DK_7XD%2FDriver%20Examples%2FRF%20Examples

  • LONG LI8,

    TI-RTOS中的RF drivers里面应该可以找到Tx/Rx的示例代码,你可以修改看看。

    如果你有CCS,直接用里面的resource explorer找到工程,如果没有CCS,建议你下载安装一下,如果不能安装,你也可以直接去浏览TI-RTOS的安装目录找到代码。

  • Viki,

    你好。能帮忙指出具体哪个例程是 LRM 模式 4.8K bps吗?或者提供一份关于LRM模式下的配置说明文档。

    你给出的链接我全部下载下来了,全部是FSK调制模式。

    谢谢!

  • Long,

    这些例程全是FSK调试模式,传输距离很近。

    我需要的是LRM调制模式的例程。

  • LONG 你好

    4.8k的LRM,我帮你测好了,你把“smartrf_settings.c" 里面的代码改为我下面这个:

    #include<driverlib/rf_mailbox.h>

    #include <driverlib/rf_common_cmd.h>

    #include <driverlib/rf_prop_cmd.h>

    #include <ti/drivers/rf/RF.h>

    #include <rf_patches/rf_patch_cpe_lrm.h>

    #include <rf_patches/rf_patch_rfe_lrm.h>

    #include "untitled.h"

    // TI-RTOS RF Mode Object

    RF_Mode RF_prop =

    {

    .rfMode = RF_MODE_PROPRIETARY_SUB_1,

    .cpePatchFxn = &rf_patch_cpe_lrm,

    .mcePatchFxn = 0,

    .rfePatchFxn = &rf_patch_rfe_lrm,

    };

    // Overrides for CMD_PROP_RADIO_DIV_SETUP

    static uint32_t pOverrides[] =

    {

        // override_use_patch_prop_lrm.xml

        // PHY: Use MCE ROM bank 3, RFE RAM patch

    MCE_RFE_OVERRIDE(0,3,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: Enable PA ramping (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_lrm_rom_dsss8.xml

        // PHY: Configure DSSS=8

    HW_REG_OVERRIDE(0x505C,0x073C),

        // override_phy_rx_rssi_offset_5db.xml

        // Rx: Set RSSI offset to adjust reported RSSI by +5 dB

    (uint32_t)0x00FB88A3,

        // TX power override

        // Tx: Set PA trim to max (in ADI0, set PACTL0=0xF8)

    ADI_REG_OVERRIDE(0,12,0xF8),

    (uint32_t)0xFFFFFFFF,

    };

    // CMD_PROP_RADIO_DIV_SETUP

    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 = 0x0,

    .modulation.deviation = 0x99,

    .symbolRate.preScale = 0x6,

    .symbolRate.rateWord = 0x4EA4,

    .rxBw = 0x26,

    .preamConf.nPreamBytes = 0x5,

    .preamConf.preamMode = 0x0,

    .formatConf.nSwBits = 0x20,

    .formatConf.bBitReversal = 0x0,

    .formatConf.bMsbFirst = 0x0,

    .formatConf.fecMode = 0x8,

    .formatConf.whitenMode = 0x0,

    .config.frontEndMode = 0x0,

    .config.biasMode = 0x1,

    .config.analogCfgMode = 0x0,

    .config.bNoFsPowerUp = 0x0,

    .txPower = 0xA73F,

    .pRegOverride = pOverrides,

    .centerFreq = 0x0364,

    .intFreq = 0x8000,

    .loDivider = 0x05,

    };

    // CMD_FS

    rfc_CMD_FS_t RF_cmdFs =

    {

    .commandNo = 0x0803,

    .status = 0x0000,

        .pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx

    .startTime = 0x00000000,

    .startTrigger.triggerType = 0x0,

    .startTrigger.bEnaCmd = 0x0,

    .startTrigger.triggerNo = 0x0,

    .startTrigger.pastTrig = 0x0,

    .condition.rule = 0x1,

    .condition.nSkip = 0x0,

    .frequency = 0x0364,

    .fractFreq = 0x0000,

    .synthConf.bTxMode = 0x0,

    .synthConf.refFreq = 0x0,

    .__dummy0 = 0x00,

    .__dummy1 = 0x00,

    .__dummy2 = 0x00,

    .__dummy3 = 0x0000,

    };

    // CMD_PROP_TX

    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, // SET APPLICATION PAYLOAD LENGTH

    .syncWord = 0x00000000,

        .pPkt = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx

    };

    // CMD_PROP_RX

    rfc_CMD_PROP_RX_t RF_cmdPropRx =

    {

    .commandNo = 0x3802,

    .status = 0x0000,

        .pNextOp = 0, // INSERT APPLICABLE POINTER: (uint8_t*)&xxx

    .startTime = 0x00000000,

    .startTrigger.triggerType = 0x0,

    .startTrigger.bEnaCmd = 0x0,

    .startTrigger.triggerNo = 0x0,

    .startTrigger.pastTrig = 0x0,

    .condition.rule = 0x1,

    .condition.nSkip = 0x0,

    .pktConf.bFsOff = 0x0,

    .pktConf.bRepeatOk = 0x0,

    .pktConf.bRepeatNok = 0x0,

    .pktConf.bUseCrc = 0x1,

    .pktConf.bVarLen = 0x1,

    .pktConf.bChkAddress = 0x0,

    .pktConf.endType = 0x0,

    .pktConf.filterOp = 0x0,

    .rxConf.bAutoFlushIgnored = 0x0,

    .rxConf.bAutoFlushCrcErr = 0x0,

    .rxConf.bIncludeHdr = 0x1,

    .rxConf.bIncludeCrc = 0x0,

    .rxConf.bAppendRssi = 0x0,

    .rxConf.bAppendTimestamp = 0x0,

    .rxConf.bAppendStatus = 0x1,

    .syncWord = 0x00000000,

        .maxPktLen = 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

    };