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.

cc1200 receive packet

Other Parts Discussed in Thread: CC1200

Hi,

I'm perform Tx/Rx operation with two CC1200 modules.

The configuration is fixed packet length = 43 byte.

We are sending following data to Tx module:

1234567890123456789012345678901234567890123

But the RX module returns following:

1SI234567890123456789012345678901234567890123CS


Where CS,  we assume is check sum for the message.

The question is what is the SI symbol means? in HEX code it will be 0x0F.

Thanks in advance.

  • Hi

    Without knowing your register settings and which SW you are using it is not possible to answer your question. Using recommended settings from SmartRF Studio and changing to fixed packet length mode, the CC1200 will by default transmit a 4 byte long preamble, a 4 byte long sync word, 43 bytes as written to the TXFIFO, and a 2 byte long CRC. On the receiver you will receive the 43 byte long payload + 2 status bytes in the RXFIFO.

    Siri

  • Hi Siri,

    Thank you for quick  response. The data that we receive do not match partly to your described structure. Please see attached *.txt file for received data example.

    The TX device transmits "The quick brown fox jumped over the lazy dog" (43 bytes) sentence with 2 second interval. The input signal of receiver is -90 dBm.

    As you will see from data file, receiver returns the sentence with several extra characters (marked black). The question is, do you have any ideas what is the meaning of that characters.

    Also, we have notice that the receiver performance is very poor. According to the datasheet we must have approximately -120 dBm at with 1.2 kbps, we seen only -106 dBm. It seems like we have some problem with AGC configuration, because the AGC reference computed by the SMART RF studio didnt match with datasheet requirements. 

    We have also attached the configuration file of smart RF studio.

    Thank you for advice.

    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dog‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dog‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over th
    The quick brown fox jumps over the lazy dogю‚
    The quick brown fox jumps over the lazy dogяѓ
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the laz
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy 
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dog ѓ
    The quick brown fox jumps over the lazy dogэѓ
    The quick brown fox jumps over the lazy dogюѓ
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dogюѓ
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dogю‚
    The quick brown fox jumps over the lazy dogю‚
    The quick brown fox jumps over the lazy dogяѓ
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dogяѓ						
    The quick brown fox jumps over the lazy dogю‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dogю‚
    The quick brown fox jumps over the lazy dogюѓ
    The quick brown fox jumps over the lazy dogэ‚
    The quick brown fox jumps over the lazy dogю‚
    The quick brown fox jumps over the lazy dogэ‚
    The quick brown fox jumps over the lazy dogю‚
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dogэ‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dog ‚
    The quick brown fox jumps over the lazy dogя‚
    The quick brown fox jumps over the lazy dogю‚
    The quick brown fox jumps over the lazy dog ,
    The quick brown fox jumps over the lazy dogю‚

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE configuration SYSTEM "C:/Program Files (x86)/Texas Instruments/SmartRF Tools/SmartRF Studio 7/config/xml/configdata.dtd"[]>
    <dcpanelconfiguration>
        <Devicename>CC1201</Devicename>
        <Description>Saved configuration data</Description>
        <registersettings>
            <Register>
                <Name>AGC_CFG1</Name>
                <Value>0x40</Value>
            </Register>
            <Register>
                <Name>AGC_CS_THR</Name>
                <Value>0x09</Value>
            </Register>
            <Register>
                <Name>AGC_REF</Name>
                <Value>0x38</Value>
            </Register>
            <Register>
                <Name>CHAN_BW</Name>
                <Value>0x11</Value>
            </Register>
            <Register>
                <Name>DCFILT_CFG</Name>
                <Value>0x5d</Value>
            </Register>
            <Register>
                <Name>DEVIATION_M</Name>
                <Value>0xfb</Value>
            </Register>
            <Register>
                <Name>FIFO_CFG</Name>
                <Value>0x00</Value>
            </Register>
            <Register>
                <Name>FREQ2</Name>
                <Value>0x58</Value>
            </Register>
            <Register>
                <Name>FREQOFF_CFG</Name>
                <Value>0x22</Value>
            </Register>
            <Register>
                <Name>FS_CAL0</Name>
                <Value>0x0e</Value>
            </Register>
            <Register>
                <Name>FS_CAL1</Name>
                <Value>0x40</Value>
            </Register>
            <Register>
                <Name>FS_CFG</Name>
                <Value>0x18</Value>
            </Register>
            <Register>
                <Name>FS_DIG0</Name>
                <Value>0xaa</Value>
            </Register>
            <Register>
                <Name>FS_DIG1</Name>
                <Value>0x07</Value>
            </Register>
            <Register>
                <Name>FS_DIVTWO</Name>
                <Value>0x03</Value>
            </Register>
            <Register>
                <Name>FS_DSM0</Name>
                <Value>0x33</Value>
            </Register>
            <Register>
                <Name>FS_DVC0</Name>
                <Value>0x17</Value>
            </Register>
            <Register>
                <Name>FS_PFD</Name>
                <Value>0x00</Value>
            </Register>
            <Register>
                <Name>FS_PRE</Name>
                <Value>0x6e</Value>
            </Register>
            <Register>
                <Name>FS_REG_DIV_CML</Name>
                <Value>0x1c</Value>
            </Register>
            <Register>
                <Name>FS_SPARE</Name>
                <Value>0xac</Value>
            </Register>
            <Register>
                <Name>FS_VCO0</Name>
                <Value>0xb5</Value>
            </Register>
            <Register>
                <Name>IFAMP</Name>
                <Value>0x05</Value>
            </Register>
            <Register>
                <Name>IF_ADC0</Name>
                <Value>0x10</Value>
            </Register>
            <Register>
                <Name>IF_ADC1</Name>
                <Value>0xee</Value>
            </Register>
            <Register>
                <Name>IF_MIX_CFG</Name>
                <Value>0x1c</Value>
            </Register>
            <Register>
                <Name>IOCFG2</Name>
                <Value>0x06</Value>
            </Register>
            <Register>
                <Name>IQIC</Name>
                <Value>0xcb</Value>
            </Register>
            <Register>
                <Name>MDMCFG1</Name>
                <Value>0x40</Value>
            </Register>
            <Register>
                <Name>MDMCFG2</Name>
                <Value>0x0c</Value>
            </Register>
            <Register>
                <Name>MODCFG_DEV_E</Name>
                <Value>0x28</Value>
            </Register>
            <Register>
                <Name>PKT_CFG0</Name>
                <Value>0x20</Value>
            </Register>
            <Register>
                <Name>PKT_CFG2</Name>
                <Value>0x00</Value>
            </Register>
            <Register>
                <Name>PKT_LEN</Name>
                <Value>0x2b</Value>
            </Register>
            <Register>
                <Name>PREAMBLE_CFG0</Name>
                <Value>0x8a</Value>
            </Register>
            <Register>
                <Name>RFEND_CFG0</Name>
                <Value>0x09</Value>
            </Register>
            <Register>
                <Name>SETTLING_CFG</Name>
                <Value>0x03</Value>
            </Register>
            <Register>
                <Name>SYMBOL_RATE0</Name>
                <Value>0x10</Value>
            </Register>
            <Register>
                <Name>SYMBOL_RATE1</Name>
                <Value>0x75</Value>
            </Register>
            <Register>
                <Name>SYMBOL_RATE2</Name>
                <Value>0x3f</Value>
            </Register>
            <Register>
                <Name>SYNC_CFG1</Name>
                <Value>0xa8</Value>
            </Register>
            <Register>
                <Name>WOR_CFG0</Name>
                <Value>0x20</Value>
            </Register>
            <Register>
                <Name>WOR_EVENT0_LSB</Name>
                <Value>0xf9</Value>
            </Register>
            <Register>
                <Name>XOSC1</Name>
                <Value>0x03</Value>
            </Register>
            <Register>
                <Name>XOSC5</Name>
                <Value>0x0e</Value>
            </Register>
        </registersettings>
        <dcpanel>
            <Property name="m_chkRegView" role="44">2</Property>
            <Property name="m_chkCmdView" role="44">0</Property>
            <Property name="m_chkRfParameters" role="44">2</Property>
            <Property name="m_tabUserMode" role="37">1</Property>
            <Property name="m_easyModeSettings" role="33">-1</Property>
            <Property name="m_typicalSettings" role="33">-1</Property>
            <Property name="m_testFuncPanel" role="37">2</Property>
        </dcpanel>
        <rfparameters>
            <Property name="m_cmbFrontends" role="46">0</Property>
            <Property name="m_chkHGMorBYP" role="44">2</Property>
            <Property name="m_cmbEmRevs" role="46">-1</Property>
            <Property name="Xtal frequency" role="46">40.000000</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">-1</Property>
            <Property name="m_chkAutoScroll" role="44">2</Property>
        </contrx>
        <packettx>
            <Property name="m_edtPacketCount" role="42">100</Property>
            <Property name="m_edtPacketCountEsy" role="42">100</Property>
            <Property name="m_edtFixedPktLength" role="42">43</Property>
            <Property name="m_edtPacketData" role="42"></Property>
            <Property name="m_edtAccessAddress" role="42"></Property>
            <Property name="m_chkAddSeqNbr" role="44">0</Property>
            <Property name="m_chkInfinite" role="44">2</Property>
            <Property name="m_chkInfiniteEsy" role="44">2</Property>
            <Property name="m_rbtRandom" role="45">0</Property>
            <Property name="m_rbtText" role="45">1</Property>
            <Property name="m_rbtHex" role="45">0</Property>
            <Property name="m_chkAdvanced" role="44">0</Property>
            <Property name="m_cmbLengthConfig" role="46">1</Property>
            <Property name="m_edtFixedPktLength" role="42">43</Property>
            <Property name="m_edtBitLength" role="42">0</Property>
            <Property name="m_grp802154g" role="20">0</Property>
            <Property name="m_edt802154gPktLength" role="42">2</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">5</Property>
        </packettx>
        <packetview>
            <Property name="m_edtPktLength" role="42">43</Property>
            <Property name="m_lblFrmPayload" role="41"></Property>
        </packetview>
        <packetrx>
            <Property name="m_edtPacketCount" role="42">100</Property>
            <Property name="m_edtPacketCountEsy" role="42">100</Property>
            <Property name="m_edtAccessAddress" role="42"></Property>
            <Property name="m_chkInfinite" role="44">2</Property>
            <Property name="m_chkInfiniteEsy" role="44">2</Property>
            <Property name="m_cmbViewFormat" role="46">1</Property>
            <Property name="m_chkSeqNbrIncluded" role="44">0</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>
        <commandpanel>
            <Property name="m_chkInsertLength" role="44">0</Property>
            <Property name="m_edtTxFifo" role="42"></Property>
            <Property name="m_edtRxFifo" role="42"></Property>
            <Property name="m_cmbInstrInput" role="46">-1</Property>
        </commandpanel>
        <packetRxSniffMode>
            <Property name="m_edtPreambleLength" role="42">4</Property>
            <Property name="m_edtCarrierSenseThreshold" role="42">-90</Property>
            <Property name="m_rbtRssi" role="45">1</Property>
            <Property name="m_rbtPreamble" role="45">0</Property>
        </packetRxSniffMode>
    </dcpanelconfiguration>
    

  • I am not able to re-create your problem. I used the EasyLink example for the CC1200 found on the web and modified the register setting to support fixed packet length mode. That means that PKT_CFG0 was changed from 0x20 to 0x00 and PKTLEN was set to 44 (not 43 as you stated, as the sentence is 44 bytes long).

    On the TX side I removed the createPacket function and initialized the txBuffer as follows:

    uint8 txBuffer[PKTLEN] = {"The quick brown fox jumped over the lazy dog"};

    On the RX side, I changed the infinite loop in main like this:

    // Infinite loop

       while(TRUE) {

     

           // Wait for packet received interrupt

           if(packetSemaphore == ISR_ACTION_REQUIRED) {

     

               // Read number of bytes in RX FIFO

               cc120xSpiReadReg(CC120X_NUM_RXBYTES, &rxBytes, 1);

     

               // Check that we have bytes in FIFO

               if(rxBytes != 0) {

     

                   // Read n bytes from RX FIFO

                   cc120xSpiReadRxFifo(rxBuffer, rxBytes);

     

                  // Check CRC ok (CRC_OK: bit7 in second status byte)

                   // This assumes status bytes are appended in RX_FIFO

                   // (PKT_CFG1.APPEND_STATUS = 1)

                   // If CRC is disabled the CRC_OK field will read 1

                    if(rxBuffer[rxBytes - 1] & 0x80) {

     

                       // Update packet counter

                       packetCounter++;

                      

                       // Update LCD

                       updateLcd();

     

                   }

               }

               // Reset packet semaphore

               packetSemaphore = ISR_IDLE;

     

               // Set radio back in RX

               trxSpiCmdStrobe(CC120X_SRX);

           }

       }

    As you can see below, there is nothing else but the 44 long byte packet in the RXFIFO, + the two appended status bytes at the end.

    Siri