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: 24bit Preamble, Manchester Receiver

Part Number: CC1120

I am trying to received a data stream from a non-CC1120 device.

The data rate is 500bps, manchester encoded, 418Mhz with 24bits of preamble.

The preamble is 24bits of 1's, and the sync is 16 bits. 

Is this stream able to be decoded with the CC1120 or do I need to take the serial data from the device and decode it manually?

Thanks

  • When you write "24bits of 1's,", do you mean 24 bits that will be manchester coded meaning a ...010101... on the air?

    If so you should be fine.

  • Yes, it is sending 1's and 0's

    But,

    still having problems, can you confirm my RFStudio settings

    const registerSetting_t preferredSettings[]=  
    {
      {CC1120_IOCFG3,             0xB0},
      {CC1120_IOCFG2,             0x06},
      {CC1120_IOCFG1,             0xB0},
      {CC1120_IOCFG0,             0xB0},
      {CC1120_SYNC3,              0x2D},
      {CC1120_SYNC2,              0xD4},
      {CC1120_SYNC1,              0x2D},
      {CC1120_SYNC0,              0xD4},
      {CC1120_SYNC_CFG1,          0x0B},
      {CC1120_SYNC_CFG0,          0x0B},
      {CC1120_DEVIATION_M,        0x48},
      {CC1120_MODCFG_DEV_E,       0x1D},
      {CC1120_DCFILT_CFG,         0x1C},
      {CC1120_PREAMBLE_CFG1,      0x14},
      {CC1120_PREAMBLE_CFG0,      0x2A},
      {CC1120_FREQ_IF_CFG,        0x40},
      {CC1120_IQIC,               0x46},
      {CC1120_CHAN_BW,            0x02},
      {CC1120_MDMCFG1,            0x66},
      {CC1120_MDMCFG0,            0x05},
      {CC1120_SYMBOL_RATE2,       0x30},
      {CC1120_SYMBOL_RATE1,       0x62},
      {CC1120_SYMBOL_RATE0,       0x4E},
      {CC1120_AGC_REF,            0x20},
      {CC1120_AGC_CS_THR,         0x0C},
      {CC1120_AGC_GAIN_ADJUST,    0x00},
      {CC1120_AGC_CFG3,           0x91},
      {CC1120_AGC_CFG2,           0x20},
      {CC1120_AGC_CFG1,           0xA0},
      {CC1120_AGC_CFG0,           0xC3},
      {CC1120_FIFO_CFG,           0x00},
      {CC1120_DEV_ADDR,           0x00},
      {CC1120_SETTLING_CFG,       0x03},
      {CC1120_FS_CFG,             0x14},
      {CC1120_WOR_CFG1,           0x08},
      {CC1120_WOR_CFG0,           0x20},
      {CC1120_WOR_EVENT0_MSB,     0x04},
      {CC1120_WOR_EVENT0_LSB,     0xFE},
      {CC1120_PKT_CFG2,           0x04},
      {CC1120_PKT_CFG1,           0x05},
      {CC1120_PKT_CFG0,           0x20},
      {CC1120_RFEND_CFG1,         0x0F},
      {CC1120_RFEND_CFG0,         0x09},
      {CC1120_PA_CFG2,            0x3C},
      {CC1120_PA_CFG1,            0x56},
      {CC1120_PA_CFG0,            0x7E},
      {CC1120_PKT_LEN,            0x09},
      {CC1120_IF_MIX_CFG,         0x00},
      {CC1120_FREQOFF_CFG,        0x22},
      {CC1120_TOC_CFG,            0x0B},
      {CC1120_MARC_SPARE,         0x00},
      {CC1120_ECG_CFG,            0x00},
      {CC1120_CFM_DATA_CFG,       0x00},
      {CC1120_EXT_CTRL,           0x01},
      {CC1120_RCCAL_FINE,         0x00},
      {CC1120_RCCAL_COARSE,       0x00},
      {CC1120_RCCAL_OFFSET,       0x00},
      {CC1120_FREQOFF1,           0x00},
      {CC1120_FREQOFF0,           0x00},
      {CC1120_FREQ2,              0x68},
      {CC1120_FREQ1,              0x80},
      {CC1120_FREQ0,              0x00},
      {CC1120_IF_ADC2,            0x02},
      {CC1120_IF_ADC1,            0xA6},
      {CC1120_IF_ADC0,            0x04},
      {CC1120_FS_DIG1,            0x00},
      {CC1120_FS_DIG0,            0x5F},
      {CC1120_FS_CAL3,            0x00},
      {CC1120_FS_CAL2,            0x20},
      {CC1120_FS_CAL1,            0x40},
      {CC1120_FS_CAL0,            0x0E},
      {CC1120_FS_CHP,             0x28},
      {CC1120_FS_DIVTWO,          0x03},
      {CC1120_FS_DSM1,            0x00},
      {CC1120_FS_DSM0,            0x33},
      {CC1120_FS_DVC1,            0xFF},
      {CC1120_FS_DVC0,            0x17},
      {CC1120_FS_LBI,             0x00},
      {CC1120_FS_PFD,             0x50},
      {CC1120_FS_PRE,             0x6E},
      {CC1120_FS_REG_DIV_CML,     0x14},
      {CC1120_FS_SPARE,           0xAC},
      {CC1120_FS_VCO4,            0x14},
      {CC1120_FS_VCO3,            0x00},
      {CC1120_FS_VCO2,            0x00},
      {CC1120_FS_VCO1,            0x00},
      {CC1120_FS_VCO0,            0xB4},
      {CC1120_GBIAS6,             0x00},
      {CC1120_GBIAS5,             0x02},
      {CC1120_GBIAS4,             0x00},
      {CC1120_GBIAS3,             0x00},
      {CC1120_GBIAS2,             0x10},
      {CC1120_GBIAS1,             0x00},
      {CC1120_GBIAS0,             0x00},
      {CC1120_IFAMP,              0x01},
      {CC1120_LNA,                0x01},
      {CC1120_RXMIX,              0x01},
      {CC1120_XOSC5,              0x0E},
      {CC1120_XOSC4,              0xA0},
      {CC1120_XOSC3,              0x03},
      {CC1120_XOSC2,              0x00},
      {CC1120_XOSC1,              0x03},
      {CC1120_XOSC0,              0x00},
      {CC1120_ANALOG_SPARE,       0x00},
      {CC1120_PA_CFG3,            0x00},
      {CC1120_AGC_GAIN2,          0xD1},
      {CC1120_AGC_GAIN1,          0x00},
      {CC1120_AGC_GAIN0,          0x3F},
    };

  • To verify settings I need to know the full spec of the signal you are trying to receive.

    Why is CHAN_BW set to 0x02? 

  • not sure why the bandwidth is so large.

    here is all / most of the information that I have on this project.

    The transmitter is based on a Maxim MAX7044 ASK device. It is modulated using a PIC with a bit-banged Manchester stream at 500bps.

    The center frequency is 418Mhz. The preamble is 24bits, the Sync is 16 bits (0x2DD4), 72 bits total, repeated several times with a 10ms gap between packets.

    I need to make a sniffer using the CC1120. I have attached two captures from the Signal Hound Spectrum analyzer for what i am seeing.

    Thanks for your help 

    8357.document1.pdfdocument2.pdf

  • - Could you try to start from the 4.8 kbps setting and just change the datarate? Have you checked that a '1' is power and not the other way?

  • 418Mhz.pdfnot sure what you mean by change the datarate to 4.8 kbps. I don't have the ability to change the xmit parameters.

    here is a .pdf of the input to the MAX7044 and the RF output. this shows a '1' is power

  • Change 4.8 bps to 0.5 kbps on CC1120, keep the other settings as is.

  • so after many hours of changing register settings and reading thru the forums, I have successfully setup a transmitter that matches the device I am trying to sniff.

    I had to send the sync word as part of the data packet, no big deal. I read that the preamble and sync words were not Manchester encoded, that helped.

    But, now I am back to the original issue of creating a sniffer at 418 with Manchester.

    Below is the register settings of the CC1120, I still cannot detect sync or preamble. Do the register settings look ok

    Thx

    const registerSetting_t preferredSettings[]=
    {
    {CC1120_IOCFG3, 0xB0},
    {CC1120_IOCFG2, 0x06}, // sync detect
    {CC1120_IOCFG1, 0xB0},
    {CC1120_IOCFG0, 0xB0},
    {CC1120_SYNC3, 0x2D},
    {CC1120_SYNC2, 0xD4},
    {CC1120_SYNC1, 0x2D},
    {CC1120_SYNC0, 0xD4},
    {CC1120_SYNC_CFG1, 0x0B},
    {CC1120_SYNC_CFG0, 0x0B}, // set to 0x03 for TX
    {CC1120_DEVIATION_M, 0x06},
    {CC1120_MODCFG_DEV_E, 0x1B},
    {CC1120_DCFILT_CFG, 0x1C},
    {CC1120_PREAMBLE_CFG1, 0x20},
    {CC1120_PREAMBLE_CFG0, 0x2F},
    {CC1120_FREQ_IF_CFG, 0x40},
    {CC1120_IQIC, 0x46},
    {CC1120_CHAN_BW, 0x0A},
    {CC1120_MDMCFG1, 0x66},
    {CC1120_MDMCFG0, 0x05},
    {CC1120_SYMBOL_RATE2, 0x40},
    {CC1120_SYMBOL_RATE1, 0x62},
    {CC1120_SYMBOL_RATE0, 0x4E},
    {CC1120_AGC_REF, 0x20},
    {CC1120_AGC_CS_THR, 0xF8},
    {CC1120_AGC_GAIN_ADJUST, 0x00},
    {CC1120_AGC_CFG3, 0x91},
    {CC1120_AGC_CFG2, 0x20},
    {CC1120_AGC_CFG1, 0x29},
    {CC1120_AGC_CFG0, 0x4F},
    {CC1120_FIFO_CFG, 0x00},
    {CC1120_DEV_ADDR, 0x00},
    {CC1120_SETTLING_CFG, 0x03},
    {CC1120_FS_CFG, 0x14},
    {CC1120_WOR_CFG1, 0x08},
    {CC1120_WOR_CFG0, 0x20},
    {CC1120_WOR_EVENT0_MSB, 0x04},
    {CC1120_WOR_EVENT0_LSB, 0xFE},
    {CC1120_PKT_CFG2, 0x04},
    {CC1120_PKT_CFG1, 0x00},
    {CC1120_PKT_CFG0, 0x00},
    {CC1120_RFEND_CFG1, 0x0F},
    {CC1120_RFEND_CFG0, 0x09},
    {CC1120_PA_CFG2, 0x7F},
    {CC1120_PA_CFG1, 0x56},
    {CC1120_PA_CFG0, 0x7E},
    {CC1120_PKT_LEN, 0x06},
    {CC1120_IF_MIX_CFG, 0x00},
    {CC1120_FREQOFF_CFG, 0x22},
    {CC1120_TOC_CFG, 0x0B},
    {CC1120_MARC_SPARE, 0x00},
    {CC1120_ECG_CFG, 0x00},
    {CC1120_CFM_DATA_CFG, 0x00},
    {CC1120_EXT_CTRL, 0x01},
    {CC1120_RCCAL_FINE, 0x00},
    {CC1120_RCCAL_COARSE, 0x00},
    {CC1120_RCCAL_OFFSET, 0x00},
    {CC1120_FREQOFF1, 0x00},
    {CC1120_FREQOFF0, 0x00},
    {CC1120_FREQ2, 0x68},
    {CC1120_FREQ1, 0x80},
    {CC1120_FREQ0, 0x00},
    {CC1120_IF_ADC2, 0x02},
    {CC1120_IF_ADC1, 0xA6},
    {CC1120_IF_ADC0, 0x04},
    {CC1120_FS_DIG1, 0x00},
    {CC1120_FS_DIG0, 0x5F},
    {CC1120_FS_CAL3, 0x00},
    {CC1120_FS_CAL2, 0x20},
    {CC1120_FS_CAL1, 0x40},
    {CC1120_FS_CAL0, 0x0E},
    {CC1120_FS_CHP, 0x28},
    {CC1120_FS_DIVTWO, 0x03},
    {CC1120_FS_DSM1, 0x00},
    {CC1120_FS_DSM0, 0x33},
    {CC1120_FS_DVC1, 0xFF},
    {CC1120_FS_DVC0, 0x17},
    {CC1120_FS_LBI, 0x00},
    {CC1120_FS_PFD, 0x50},
    {CC1120_FS_PRE, 0x6E},
    {CC1120_FS_REG_DIV_CML, 0x14},
    {CC1120_FS_SPARE, 0xAC},
    {CC1120_FS_VCO4, 0x14},
    {CC1120_FS_VCO3, 0x00},
    {CC1120_FS_VCO2, 0x00},
    {CC1120_FS_VCO1, 0x00},
    {CC1120_FS_VCO0, 0xB4},
    {CC1120_GBIAS6, 0x00},
    {CC1120_GBIAS5, 0x02},
    {CC1120_GBIAS4, 0x00},
    {CC1120_GBIAS3, 0x00},
    {CC1120_GBIAS2, 0x10},
    {CC1120_GBIAS1, 0x00},
    {CC1120_GBIAS0, 0x00},
    {CC1120_IFAMP, 0x01},
    {CC1120_LNA, 0x01},
    {CC1120_RXMIX, 0x01},
    {CC1120_XOSC5, 0x0E},
    {CC1120_XOSC4, 0xA0},
    {CC1120_XOSC3, 0x03},
    {CC1120_XOSC2, 0x00},
    {CC1120_XOSC1, 0x03},
    {CC1120_XOSC0, 0x00},
    {CC1120_ANALOG_SPARE, 0x00},
    {CC1120_PA_CFG3, 0x00},
    {CC1120_AGC_GAIN2, 0xD1},
    {CC1120_AGC_GAIN1, 0x00},
    {CC1120_AGC_GAIN0, 0x3F},
    };

  • Do you need only one receiver or are you going to produce volume with this application? 

    " I have successfully setup a transmitter that matches the device I am trying to sniff.": Have you setup this with CC1120? How have you verified that the two transmitters are the same? 

    Note that CC1120 does't manchester code preamble/ sync. Hence if the sync word is manchester coded from the transmitter, you have to adjust the sync word you are looking for accordingly. 

  • I need a single sniffer to replace the one that we are using, the source code has been lost on that device.

    the CC1120 version will be rolled into a new product as soon as it ready.

    The transmitter that I have running on the CC1120 is being decoded on my legacy sniffer, The legacy receiver is based on a Linx module.

    The preamble from the transmitter is 24 ones. Encoded as Manchester, it looks like 0x55 pattern. The sync is 0x2DD4.

    So, what you are saying is I need to adjust the sync pattern I am looking for to take into account the Manchester encoding.

  • I have adjusted to sync word to correctly decode the manchester pattern,

    Thanks for your help.I will close this post