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.

CC1120 Tx Jitter in Asynchronous Transparent serial mode

Other Parts Discussed in Thread: CC1120

Hi - I hope somone can help with our problem.

We are not familiar with programming hence using SmartRf7, TrxEB and CC1120EB to form a link with a legacy FSK unit. Legacy units work with serial asyn TTL data in/out - No clock, preamble or syn word. Deviation is 4KHz, data rate 2.4kbps, freq 868MHz. We configured the CC1120 for transparent serial mode in continous Tx with 2GFSK for a cleaner spectrum mask.

The settings we are using are in the attached file:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE configuration SYSTEM "C:/Program Files/Texas Instruments/SmartRF Tools/SmartRF Studio 7/config/xml/configdata.dtd"[]>
<dcpanelconfiguration>
    <Devicename>CC1120</Devicename>
    <Description>Saved configuration data</Description>
    <registersettings>
        <Register>
            <Name>AGC_CFG0</Name>
            <Value>0xcf</Value>
        </Register>
        <Register>
            <Name>AGC_CFG1</Name>
            <Value>0xa9</Value>
        </Register>
        <Register>
            <Name>AGC_CS_THR</Name>
            <Value>0x19</Value>
        </Register>
        <Register>
            <Name>AGC_REF</Name>
            <Value>0x20</Value>
        </Register>
        <Register>
            <Name>CHAN_BW</Name>
            <Value>0x0d</Value>
        </Register>
        <Register>
            <Name>DCFILT_CFG</Name>
            <Value>0x1c</Value>
        </Register>
        <Register>
            <Name>FIFO_CFG</Name>
            <Value>0x00</Value>
        </Register>
        <Register>
            <Name>FREQ0</Name>
            <Value>0x08</Value>
        </Register>
        <Register>
            <Name>FREQ1</Name>
            <Value>0x80</Value>
        </Register>
        <Register>
            <Name>FREQ2</Name>
            <Value>0x6c</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>0x12</Value>
        </Register>
        <Register>
            <Name>FS_DIG0</Name>
            <Value>0x5f</Value>
        </Register>
        <Register>
            <Name>FS_DIG1</Name>
            <Value>0x00</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>0x50</Value>
        </Register>
        <Register>
            <Name>FS_PRE</Name>
            <Value>0x6e</Value>
        </Register>
        <Register>
            <Name>FS_REG_DIV_CML</Name>
            <Value>0x14</Value>
        </Register>
        <Register>
            <Name>FS_SPARE</Name>
            <Value>0xac</Value>
        </Register>
        <Register>
            <Name>FS_VCO0</Name>
            <Value>0xb4</Value>
        </Register>
        <Register>
            <Name>IF_MIX_CFG</Name>
            <Value>0x00</Value>
        </Register>
        <Register>
            <Name>IOCFG0</Name>
            <Value>0x09</Value>
        </Register>
        <Register>
            <Name>IOCFG1</Name>
            <Value>0xb0</Value>
        </Register>
        <Register>
            <Name>IOCFG2</Name>
            <Value>0x08</Value>
        </Register>
        <Register>
            <Name>IOCFG3</Name>
            <Value>0xb0</Value>
        </Register>
        <Register>
            <Name>IQIC</Name>
            <Value>0xc6</Value>
        </Register>
        <Register>
            <Name>MDMCFG0</Name>
            <Value>0x45</Value>
        </Register>
        <Register>
            <Name>MDMCFG1</Name>
            <Value>0x06</Value>
        </Register>
        <Register>
            <Name>MODCFG_DEV_E</Name>
            <Value>0x0b</Value>
        </Register>
        <Register>
            <Name>MODEM_STATUS1</Name>
            <Value>0x10</Value>
        </Register>
        <Register>
            <Name>PARTNUMBER</Name>
            <Value>0x48</Value>
        </Register>
        <Register>
            <Name>PARTVERSION</Name>
            <Value>0x21</Value>
        </Register>
        <Register>
            <Name>PA_CFG0</Name>
            <Value>0x7e</Value>
        </Register>
        <Register>
            <Name>PKT_CFG0</Name>
            <Value>0x20</Value>
        </Register>
        <Register>
            <Name>PKT_CFG1</Name>
            <Value>0x00</Value>
        </Register>
        <Register>
            <Name>PKT_CFG2</Name>
            <Value>0x07</Value>
        </Register>
        <Register>
            <Name>PREAMBLE_CFG1</Name>
            <Value>0x00</Value>
        </Register>
        <Register>
            <Name>SERIAL_STATUS</Name>
            <Value>0x08</Value>
        </Register>
        <Register>
            <Name>SETTLING_CFG</Name>
            <Value>0x03</Value>
        </Register>
        <Register>
            <Name>SYMBOL_RATE2</Name>
            <Value>0x53</Value>
        </Register>
        <Register>
            <Name>SYNC_CFG1</Name>
            <Value>0x08</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_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">0</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">32.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_edtPayloadSize" role="42">30</Property>
        <Property name="m_edtPacketCount" role="42">100</Property>
        <Property name="m_edtPacketCountEsy" role="42">100</Property>
        <Property name="m_edtRandomPacketData" role="42">13 0d 89 0a 1c db ae 32 20 9a 50 ee 40 78 36 fd 12 49 32 f6 9e 7d 49 dc ad 4f 14 f2 </Property>
        <Property name="m_edtPacketData" role="42"></Property>
        <Property name="m_edtAccessAddress" role="42"></Property>
        <Property name="m_edtDeviceAddress" role="42"></Property>
        <Property name="m_chkAddSeqNbr" role="44">2</Property>
        <Property name="m_chkInfinite" role="44">0</Property>
        <Property name="m_chkInfiniteEsy" role="44">0</Property>
        <Property name="m_rbtRandom" role="45">1</Property>
        <Property name="m_rbtText" role="45">0</Property>
        <Property name="m_rbtHex" role="45">0</Property>
        <Property name="m_chkAdvanced" role="44">0</Property>
    </packettx>
    <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">0</Property>
        <Property name="m_chkInfiniteEsy" role="44">0</Property>
        <Property name="m_cmbViewFormat" role="46">0</Property>
        <Property name="m_chkSeqNbrIncluded" role="44">2</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">8</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>

When the legacy unit receives from the CC1120EM it has higher jitter than when a legacy is used as a TX. About 3x higher Jitter with the CC1120EM

To reduce the Jitter we increased the symbol rate of the CC1120EM to 7.2 from 2.4ksps on SmartRF7 this increases the bit rate to 7.2kbps. Although the Jitter out of the legacy unit reduces we noticed that the Tx spectrum gets wider as shown below


Blue trace is with CC1120EM set to 2.4ksps gives higher jitter in legacy unit, Yellow is 7.2ksps lowers jitter but mask is poorer.

Is there something we are doing wrong here or can someone please suggest an alternate method to reduce Tx jitter but maintian the cleaner mask. We hope to finalying get register settings that will allow the CC1120 to work as TX/RX link with the legacy units.

Thank you for any advise or help that you can provide.

BP

  • Hi,

    Yes, when you increase the data rate on the transmitter from 2.4KSPS to 7.2KSPS, it will increase the transmitt bandwidth. It is natural.

    We used interpolation filter on CC1120 in receive mode to reduce the Jitter. Please see section 7.72 of CC112x used guide for further details. You may need yo use some sort of filter on your legacy devices to reduce jitter

     

    Thanks,

    PM

  • Increasing the programmed data rate on the TX reduces the jitter on the RX side. At the same time the spectral mask gets wider. We see the same thing in our lab, so I don't expect that you have done anything wrong.

    Is the wider spectral mask really a problem? From I regulatory point of view I do not see anything that will violate EN 300 220 requirements.

  • Thank you PM and Sverre for verifying the measured response!!

    We can work with these settings - wanted to make sure we had not missed something.

    Just wondered if the Tx data was oversampled (X3 bitrate) externally before being feed to the CC1120 set at 2.4ksps - would the jitter be lower with a cleaner mask? Have you tried something like this?

    Best regards BP