/* * ======== ti_radio_config.c ======== * Configured RadioConfig module definitions * * DO NOT EDIT - This file is generated for the CC1312R1F3RGZ * by the SysConfig tool. * * Radio Config module version : 1.14 * SmartRF Studio data version : 2.26.0 */ #include "ti_radio_config.h" #include DeviceFamily_constructPath(rf_patches/rf_patch_cpe_prop.h) // ********************************************************************************* // RF Frontend configuration // ********************************************************************************* // RF design based on: LAUNCHXL-CC1312R1 (CC1352EM-XD7793-XD24) // TX Power tables // The RF_TxPowerTable_DEFAULT_PA_ENTRY and RF_TxPowerTable_HIGH_PA_ENTRY macros are defined in RF.h. // The following arguments are required: // RF_TxPowerTable_DEFAULT_PA_ENTRY(bias, gain, boost, coefficient) // RF_TxPowerTable_HIGH_PA_ENTRY(bias, ibboost, boost, coefficient, ldoTrim) // See the Technical Reference Manual for further details about the "txPower" Command field. // The PA settings require the CCFG_FORCE_VDDR_HH = 0 unless stated otherwise. // 433 MHz, 13 dBm RF_TxPowerTable_Entry txPowerTable_433_pa13[TXPOWERTABLE_433_PA13_SIZE] = { {-20, RF_TxPowerTable_DEFAULT_PA_ENTRY(0, 3, 0, 0) }, // 0x00C0 {-15, RF_TxPowerTable_DEFAULT_PA_ENTRY(1, 3, 0, 0) }, // 0x00C1 {-10, RF_TxPowerTable_DEFAULT_PA_ENTRY(2, 3, 0, 0) }, // 0x00C2 {-5, RF_TxPowerTable_DEFAULT_PA_ENTRY(4, 3, 0, 0) }, // 0x00C4 {0, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 3, 0, 0) }, // 0x00C8 {1, RF_TxPowerTable_DEFAULT_PA_ENTRY(9, 3, 0, 0) }, // 0x00C9 {2, RF_TxPowerTable_DEFAULT_PA_ENTRY(10, 3, 0, 0) }, // 0x00CA {3, RF_TxPowerTable_DEFAULT_PA_ENTRY(11, 3, 0, 0) }, // 0x00CB {4, RF_TxPowerTable_DEFAULT_PA_ENTRY(13, 3, 0, 0) }, // 0x00CD {5, RF_TxPowerTable_DEFAULT_PA_ENTRY(15, 3, 0, 0) }, // 0x00CF {6, RF_TxPowerTable_DEFAULT_PA_ENTRY(18, 3, 0, 0) }, // 0x00D2 {7, RF_TxPowerTable_DEFAULT_PA_ENTRY(21, 3, 0, 0) }, // 0x00D5 {8, RF_TxPowerTable_DEFAULT_PA_ENTRY(25, 3, 0, 0) }, // 0x00D9 {9, RF_TxPowerTable_DEFAULT_PA_ENTRY(31, 3, 0, 0) }, // 0x00DF {10, RF_TxPowerTable_DEFAULT_PA_ENTRY(39, 3, 0, 0) }, // 0x00E7 {11, RF_TxPowerTable_DEFAULT_PA_ENTRY(8, 1, 0, 0) }, // 0x0048 {12, RF_TxPowerTable_DEFAULT_PA_ENTRY(14, 1, 0, 0) }, // 0x004E {13, RF_TxPowerTable_DEFAULT_PA_ENTRY(42, 1, 0, 0) }, // 0x006A // This setting requires CCFG_FORCE_VDDR_HH = 1. // The original PA value (14.5 dBm) has been rounded to an integer value. {15, RF_TxPowerTable_DEFAULT_PA_ENTRY(63, 0, 0, 0) }, // 0x003F RF_TxPowerTable_TERMINATION_ENTRY }; //********************************************************************************* // RF Setting: Custom (50 kbps, 25kHz Deviation, 2-GFSK, 78 kHz RX Bandwidth) // // PHY: custom433 // Setting file: setting_tc112_custom.json //********************************************************************************* // PARAMETER SUMMARY // RX Address Mode: No address check // Frequency (MHz): 497.8000 // Deviation (kHz): 5.0 // Packet Length Config: Variable // Max Packet Length: 255 // Preamble Count: 2 Bytes // Preamble Mode: Send 0 as the first preamble bit // RX Filter BW (kHz): 77.7 // Symbol Rate (kBaud): 39.999 // Sync Word: 0x0 // Sync Word Length: 32 Bits // TX Power (dBm): 12 // Whitening: No whitening // TI-RTOS RF Mode Object RF_Mode RF_prop = { .rfMode = RF_MODE_AUTO, .cpePatchFxn = &rf_patch_cpe_prop, .mcePatchFxn = 0, .rfePatchFxn = 0 }; // Overrides for CMD_PROP_RADIO_DIV_SETUP uint32_t pOverrides[] = { // override_prop_common.json // DC/DC regulator: In Tx, use DCDCCTL5[3:0]=0x7 (DITHER_EN=0 and IPEAK=7). (uint32_t)0x00F788D3, // override_prop_common_sub1g.json // Set RF_FSCA.ANADIV.DIV_SEL_BIAS = 1. Bits [0:16, 24, 30] are don't care.. (uint32_t)0x4001405D, // Set RF_FSCA.ANADIV.DIV_SEL_BIAS = 1. Bits [0:16, 24, 30] are don't care.. (uint32_t)0x08141131, // override_phy_simplelink_long_range_dsss2.xml // PHY: Configure DSSS SF=2 for payload data HW_REG_OVERRIDE(0x5068,0x0100), // override_tc112.json // 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 0x19 (default: 0x2E) HW_REG_OVERRIDE(0x609C,0x0019), // Rx: Set RSSI offset to adjust reported RSSI by -7 dB (default: -2), trimmed for external bias and differential configuration (uint32_t)0x000788A3, // Rx: Set anti-aliasing filter bandwidth to 0xD (in ADI0, set IFAMPCTL3[7:4]=0xD) ADI_HALFREG_OVERRIDE(0,61,0xF,0xD), // TX: Reduce analog ramping wait time HW_REG_OVERRIDE(0x6028,0x001A), (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, .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 = 0x14, .modulation.deviationStepSz = 0x0, .symbolRate.preScale = 0xF, .symbolRate.rateWord = 0x6666, .symbolRate.decimMode = 0x0, .rxBw = 0x51, .preamConf.nPreamBytes = 0x2, .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, .config.bSynthNarrowBand = 0x0, .txPower = 0x004E, .pRegOverride = pOverrides, .centerFreq = 0x01F1, .intFreq = 0x8000, .loDivider = 0x0A }; // CMD_FS // Frequency Synthesizer Programming Command rfc_CMD_FS_t RF_cmdFs = { .commandNo = 0x0803, .status = 0x0000, .pNextOp = 0, .startTime = 0x00000000, .startTrigger.triggerType = 0x0, .startTrigger.bEnaCmd = 0x0, .startTrigger.triggerNo = 0x0, .startTrigger.pastTrig = 0x0, .condition.rule = 0x1, .condition.nSkip = 0x0, .frequency = 0x01F1, .fractFreq = 0xCCCD, .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, .startTime = 0x00000000, .startTrigger.triggerType = 0x0, .startTrigger.bEnaCmd = 0x0, .startTrigger.triggerNo = 0x0, .startTrigger.pastTrig = 0x0, .condition.rule = 0x1, .condition.nSkip = 0x0, .pktConf.bFsOff = 0x0, .pktConf.bUseCrc = 0x1, .pktConf.bVarLen = 0x1, .pktLen = 0x14, .syncWord = 0x00000000, .pPkt = 0 }; // CMD_PROP_RX // Proprietary Mode Receive Command rfc_CMD_PROP_RX_t RF_cmdPropRx = { .commandNo = 0x3802, .status = 0x0000, .pNextOp = 0, .startTime = 0x00000000, .startTrigger.triggerType = 0x0, .startTrigger.bEnaCmd = 0x0, .startTrigger.triggerNo = 0x0, .startTrigger.pastTrig = 0x0, .condition.rule = 0x1, .condition.nSkip = 0x0, .pktConf.bFsOff = 0x0, .pktConf.bRepeatOk = 0x0, .pktConf.bRepeatNok = 0x0, .pktConf.bUseCrc = 0x1, .pktConf.bVarLen = 0x1, .pktConf.bChkAddress = 0x0, .pktConf.endType = 0x0, .pktConf.filterOp = 0x0, .rxConf.bAutoFlushIgnored = 0x0, .rxConf.bAutoFlushCrcErr = 0x0, .rxConf.bIncludeHdr = 0x1, .rxConf.bIncludeCrc = 0x0, .rxConf.bAppendRssi = 0x0, .rxConf.bAppendTimestamp = 0x0, .rxConf.bAppendStatus = 0x1, .syncWord = 0x00000000, .maxPktLen = 0xFF, .address0 = 0xAA, .address1 = 0xBB, .endTrigger.triggerType = 0x1, .endTrigger.bEnaCmd = 0x0, .endTrigger.triggerNo = 0x0, .endTrigger.pastTrig = 0x0, .endTime = 0x00000000, .pQueue = 0, .pOutput = 0 };