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: Some issues about the distance between CC1310 and CC1101 and CC430 is too short.

Part Number: CC1310
Other Parts Discussed in Thread: CC1101, , CC430F5137

Hi team,

Here's the request from the customer:

One phenomenon has been found in the current test, the CC1310 doing RF reception, the CC1101 or the CC430 doing RF transmission (gain is 5 dBm). The effective communication distance between them is only a little over 5 meters.

But one CC1310RF receive, another CC1310 transmit, or one C1101, CC430RF receive, the other uses C1101 and CC430 for RF transmission, and their effective communication distance can reach around 35-40 meters.

I would like to know that the CC1310 needs to be compatible with both the C1101 and CC430 products. Both the old and new products have been whitening and no Manchester encoding. What configuration needs to be modified? Can you specify that?

The question is about the CC1310 is too short to the CC1101, or the CC1310 is too short to the CC430. The communication distance between CC1310 and CC1310 or CC430 and CC1101 is normal.

This is the CC430RF parameter:

0x08, // FSCTRL1 Frequency synthesizer control.
0x00, // FSCTRL0 Frequency synthesizer control.
0x10, // FREQ2 Frequency control word, high byte.
0x9D, // FREQ1 Frequency control word, middle byte.
0x89, // FREQ0 Frequency control word, low byte.

0x7A, // MDMCFG4 Modem configuration.
0x83, // MDMCFG3 Modem configuration.
0x13, // MDMCFG2 Modem configuration.

0x22, // MDMCFG1 Modem configuration.
0xF8, // MDMCFG0 Modem configuration.

0x05, // CHANNR Channel number.
0x42, // DEVIATN Modem deviation setting (when FSK modulation is enabled).

0xB6, // FREND1 Front end RX configuration.
0x10, // FREND0 Front end TX configuration.
0x18, // MCSM0 Main Radio Control State Machine configuration.//18
0x1D, // FOCCFG Frequency Offset Compensation Configuration.
0x1C, // BSCFG Bit synchronization Configuration.
0xc7, // AGCCTRL2 AGC control.
0x00, // AGCCTRL1 AGC control.
0xb2, // AGCCTRL0 AGC control.
0xEA, // FSCAL3 Frequency synthesizer calibration.
0x2A, // FSCAL2 Frequency synthesizer calibration.
0x00, // FSCAL1 Frequency synthesizer calibration.
0x1F, // FSCAL0 Frequency synthesizer calibration.
0x59, // FSTEST Frequency synthesizer calibration.
0x81, // TEST2 Various test settings.
0x35, // TEST1 Various test settings.
0x09, // TEST0 Various test settings.
0x47, // FIFOTHR RXFIFO and TXFIFO thresholds.
0x06, // IOCFG2 GDO2 output pin configuration.
0x06, // IOCFG0 GDO0 output pin configuration. Refer to SmartRF?Studio User Manual for detailed pseudo register explanation.
0x04, // PKTCTRL1 Packet automation control.
0x45, // PKTCTRL0 Packet automation control.
0x00, // ADDR Device address.
0x3D, // PKTLEN Packet length.

This is the CC1310RF parameter:

// 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 = 0x0, //0x1,
.condition.nSkip = 0x0,
.modulation.modType = 0x1,
.modulation.deviation = 0x64,
.symbolRate.preScale = 0xF,
.symbolRate.rateWord = 0x624E,
.symbolRate.decimMode = 0x0,
.rxBw = 0x25,
.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 = 0x913F, //15dBm
// .txPower = 0xD80F, //13dBm
.txPower = 0x46CB, //10dBm
.pRegOverride = pOverrides,
.centerFreq = 0x01B1,
.intFreq = 0x8000,
.loDivider = 0x0A,
};

// 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 = 0x0, //0x1,
.condition.nSkip = 0x0,
.frequency = 0x01B1,
// .fractFreq = 0x0000,//433
.fractFreq = 0x3334, //433.2
// .fractFreq = 0x6667, //433.4
// .fractFreq = 0x999A, //433.6
.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 = 0x0, //0x1,
.condition.nSkip = 0x0,
.pktConf.bFsOff = 0x0,
.pktConf.bUseCrc = 0x1,
.pktConf.bVarLen = 0x1,
.pktLen = 0x1E, // SET APPLICATION PAYLOAD LENGTH
.syncWord = 0xD391D391,
.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 = 0x0, //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 = 0xD391D391,
.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
};

Could you help check this case? Thanks.

Best Regards,                                                        

Nick

  • Hi Nick,

    Has the customer tried using SmartRF Studio 7 to configure both device settings to check if the range differs using that method? We would recommend trying this first if they have not done so yet. Please let me know what the results are using this method in the first instance.

    Additionally, has the customer seen this section of the CC13x0 documentation (Migrating from CC1101)? software-dl.ti.com/.../cc1101-migration.html

    Regards,
    Zack

  • Hi Zack,

    Customer has tried to use SmartRF Studio 7 to configure both device settings and found that the distance of same type MCU is normal, about 40m, but the distance between CC1310 and CC1101 is too short, about 5m.

    What's more, are there any problem about the parameter of RF configuration customer post above?

    Best regards,

    Nick

  • Just to speed up the process, could the customer post a screenshot of the CC1310 and CC1101 settings they are using in SmartRF Studio? It would make it faster to replicate on my end.

  • Hi Zack,

    Because of work at home, customer can only provide the RF parameter of the CC1101, and the register parameters that do not appear in the array are considered as default parameters:

    const registerSetting_t preferredSettings[] = {
    // {TI_CCxxx0_IOCFG0, 0x06},
    // {TI_CCxxx0_FIFOTHR, 0x47},
    // {TI_CCxxx0_PKTCTRL0, 0x05},
    // {TI_CCxxx0_FSCTRL1, 0x06},
    // {TI_CCxxx0_FREQ2, 0x10},
    // {TI_CCxxx0_FREQ1, 0xA7},
    // {TI_CCxxx0_FREQ0, 0x4E}, //0x62
    // {TI_CCxxx0_MDMCFG4, 0xF5}, //baud rate:9600 f8 f5
    // {TI_CCxxx0_MDMCFG3, 0x83},
    // {TI_CCxxx0_MDMCFG2, 0x13},
    // {TI_CCxxx0_DEVIATN, 0x15},
    // {TI_CCxxx0_MCSM0, 0x18},
    // {TI_CCxxx0_FOCCFG, 0x16},
    // {TI_CCxxx0_WORCTRL, 0xFB},
    // {TI_CCxxx0_FSCAL3, 0xE9},
    // {TI_CCxxx0_FSCAL2, 0x2A},
    // {TI_CCxxx0_FSCAL1, 0x00},
    // {TI_CCxxx0_FSCAL0, 0x1F},
    // {TI_CCxxx0_TEST2, 0x81},
    // {TI_CCxxx0_TEST1, 0x35},
    // {TI_CCxxx0_TEST0, 0x09},
    // //{TI_CCxxx0_SYNC1, 0xd3},
    // //{TI_CCxxx0_SYNC0, 0x91},
    {TI_CCxxx0_IOCFG0, 0x06},
    {TI_CCxxx0_FIFOTHR, 0x47},
    {TI_CCxxx0_PKTCTRL0, 0x45},
    {TI_CCxxx0_FSCTRL1, 0x08},
    {TI_CCxxx0_FREQ2, 0x10},
    {TI_CCxxx0_FREQ1, 0x9d},
    {TI_CCxxx0_FREQ0, 0x89},//62 ae
    {TI_CCxxx0_CHANNR, 0x06},
    
    
    // {TI_CCxxx0_MDMCFG4, 0x2d}, //baud rate:250k
    // {TI_CCxxx0_MDMCFG3, 0x3B},//43 83
    // {TI_CCxxx0_MDMCFG2, 0x13},
    // {TI_CCxxx0_DEVIATN, 0x15},
    
    /*38.4k rate*/
    {TI_CCxxx0_MDMCFG4, 0x7a}, //baud rate:38.4
    {TI_CCxxx0_MDMCFG3, 0x83},//43 83
    {TI_CCxxx0_MDMCFG2, 0x13},
    {TI_CCxxx0_DEVIATN, 0x42},//40
    
    
    {TI_CCxxx0_MCSM0, 0x18},
    {TI_CCxxx0_FOCCFG, 0x1d},
    {TI_CCxxx0_WORCTRL, 0xFB},
    {TI_CCxxx0_FSCAL3, 0xEA},
    {TI_CCxxx0_FSCAL2, 0x2A},
    {TI_CCxxx0_FSCAL1, 0x00},
    {TI_CCxxx0_FSCAL0, 0x1F},
    
    {TI_CCxxx0_TEST2, 0x81},
    {TI_CCxxx0_TEST1, 0x35},
    {TI_CCxxx0_TEST0, 0x09},
    //{TI_CCxxx0_SYNC1, 0xd3},
    //{TI_CCxxx0_SYNC0, 0x91},
    };

    Best regards,

    Nick

  • Hi Nick,

    Zack is out of office. I looked at the settings for CC430 and CC1310 in your initial post and found two main differences between the settings.

    1. In CC430 they have the deviation set to 31.738281 kHz (DEVIATN = 0x42), but in the CC1310 it is set to 25 kHz (.modulation.deviation = 0x64)
    2. The carrier frequency in the CC430 is 432.99420 MHz, based on their base frequency (431.999664 MHz) and channel number (5), but in the CC1310 the frequency is to 433.2 MHz (.frequency = 0x01B1 and .fractFreq = 0x3334)

    Could you please ask them to modify in the CC1310 .fractFreq to 0x0000 (they have this commented out in their code) and .modulation.deviation to 0x7E? This would set the carrier frequency to 433 MHz and the deviation to 31.5 kHz.

    Would it be possible for them to capture with a spectrum analyzer when they transmit with both the CC430 and CC1310 and share images?

  • In addition: For CC1310, some care has to be taken for low datarates, see https://www.ti.com/lit/an/swra566/swra566.pdf

    Also verify that the frequency offset between the TX and RX side is within some ppm. 

    I assume that a known good antenna is used here? 

  • Hi Diego,

    After customer referring to the Migrating from CC1101 section in CC13x0 documentation (software-dl.ti.com/.../cc1101-migration.html) , he connected the CC430F5137 and CC1310 with two computers and found that the CC1310 receiver had a CRC error when the distance between the two is greater than 9 meters, but the signal RSSI strength is still good.

    Smart Studio 7 screenshot below:

    The waveforms can be aligned at the center frequency points that has previously captured with the spectrometer.

    Best regards,

    Nick

  • - Please post screenshots and not a photo of the screen for better readability

    - Check the frequency offset between the TX and RX devices.  Please post the result of "The waveforms can be aligned at the center frequency points that has previously captured with the spectrometer.". Note that a RBW of 1 kHz or less should be used. 

    - Do you have a lot of noise on the frequency you are trying to use? 

  • Additionally from what TheGhostOf posted, can you please ask them to test in the CC1310 with the 50 kbps GSK PHY characterized for 431 - 527 MHz band? I noticed in the image that they selected the PHY for 779 - 930 MHz band and changed the frequency.

  • Hi Diego,

    Here's further reply from customer:

    Re-test and capture that the CC430F5137 and CC1310 were tested for a valid distance of less than 10 meters and the CRC was reported an error 10 meters away. The spectrum was taken previously when different gains were tested.

    Best regards,

    Nick

  • Hi Nick,

    Thanks for sharing the images. Is the spectrum image from the CC430 or CC1310? Could they share an image of both to compare the frequency offset between the 2?

    It would also help if they lowered the span from the 30MHz they have set right now to 1 MHz, and as well, reduced the resolution bandwidth (RBW) from 300 kHz to 1 kHz.

  • Hi Nick,

    We tested with a CC1310 and a CC1101 at a distance greater than 10 meters in an office environment and didn't have issues.

    Would they be able to test with evaluation boards and see if they have the same problem?

    Could they also measure the noise floor test with SmartRF Studio with the same settings? They would need to use the Continuous RX tab in SmartRF Studio.

    They would get something similar to this: