Hi forum
I would like to operate CC1310 in wideband DSSS mode and FEC turned on @ 500 kbps...
I have setup my 2 boards as follows:
RF_Mode RF_prop =
{
.rfMode = RF_MODE_PROPRIETARY_SUB_1
.cpePatchFxn = &rf_patch_cpe_genfsk,
.mcePatchFxn = &rf_patch_mce_wb_dsss,
.rfePatchFxn = 0,
};
// Overrides for CMD_PROP_RADIO_DIV_SETUP
uint32_t pOverrides[] =
{
MCE_RFE_OVERRIDE(1, 0, 0, 0, 4, 0), // MCE run from RAM, No RFE patch (PA ramping)
//MCE_RFE_OVERRIDE(1, 0, 0, 1, 0, 0), // MCE and RFE run from patch, PA ramp patch applied
HW32_ARRAY_OVERRIDE(0x6088,1),
(uint32_t)0x0000001A,
HW32_ARRAY_OVERRIDE(0x4038,1),
(uint32_t)0x00000037,
HW_REG_OVERRIDE(0x4020,0x7F00),
HW_REG_OVERRIDE(0x4064,0x0040),
(uint32_t)0x684A3, // Synth: Set FREF = 4 MHz (24 MHz / 6)
(uint32_t)0xC0040141,
(uint32_t)0x0533B107,
(uint32_t)0x0A480583,
(uint32_t)0x7AB80603,
(uint32_t)0x02010403,
(uint32_t)0x00108463,
(uint32_t)0x04B00243,
ADI_REG_OVERRIDE(1,4,0x1F),
ADI_HALFREG_OVERRIDE(1,7,0x4,0x4),
HW_REG_OVERRIDE(0x6084,0x35F1),
(uint32_t)0x00038883,
(uint32_t)0x00FB88A3,
HW_REG_OVERRIDE(0x6088,0x1F0E), // AGC reference level
HW_REG_OVERRIDE(0x608C,0x3F13), //PA ramping
// TX power override
ADI_REG_OVERRIDE(0,12,0xF9),
// Overrides for LRM
HW_REG_OVERRIDE(0x52AC,0x0B03), //DSSS = 4, K=4
HW_REG_OVERRIDE(0x5108,0x0048), //Correlator Threshold for Sync
//HW_REG_OVERRIDE(0x50F4,0x5014),
//HW_REG_OVERRIDE(0x50F8,0x0050),
ADI_REG_OVERRIDE(1,0x12,0x22), //Enable RX_OUTQP to ATEST0 and RX_OUTIN to ATEST 1
(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, //Changed for LRM mode
.modulation.deviation = 0x2bc, //0x2bc, 175KHz deviation (250*100)
.symbolRate.preScale = 0xf, //0xf, Prescalar value of 15
.symbolRate.rateWord = 0x50000, //0x50000, 500kbps with prescalar of 15.
.rxBw = 0x2F, //1410KHz bandwidth
.preamConf.nPreamBytes = 0x4,
.preamConf.preamMode = 0x0,
.formatConf.nSwBits = 0x20, //32 bit Sync word
.formatConf.bBitReversal = 0x0,
.formatConf.bMsbFirst = 0x0, //LSB transmitted first for LRM mode
.formatConf.fecMode = 0x0, //Uncoded
.formatConf.whitenMode = 0x0,
.config.frontEndMode = 0x0, //Differential
.config.biasMode = 0x1, //External Bias
.config.bNoFsPowerUp = 0x0,
.txPower = 0xa73f,
.pRegOverride = pOverrides,
.centerFreq = 915,
//.intFreq = 0x8000, //TX IF default, 1MHz IF for RX
.intFreq = 0x0064, //TX IF default, 1MHz IF for RX
.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 = 915, //915MHz frequency
.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 = 0x1e, // SET APPLICATION PAYLOAD LENGTH
.syncWord = 0x333C3C33,
.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 = 0x1,
.rxConf.bAutoFlushCrcErr = 0x1,
.rxConf.bIncludeHdr = 0x1,
.rxConf.bIncludeCrc = 0x0,
.rxConf.bAppendRssi = 0x1,
.rxConf.bAppendTimestamp = 0x0,
.rxConf.bAppendStatus = 0x1,
.syncWord = 0x333C3C33,
.maxPktLen = 100, // 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
};
I now want to change the DSSS settings to SF=8 and Turn the FEC to on,
as you can see in my settings that right now I have SF=4 and FEC=off (uncoded)
I want to take advange to FEC and DSSS=8 at the same time
pleaes guide me
Best Regards
Ali