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.

CC1101: CC1101

Part Number: CC1101
Other Parts Discussed in Thread: TEST2

Hi,

1.Receive and send preamble,sync,data,are they all Manchester codes,

If MANCHESTER_EN position 0,what encoding will be used?

2.Configure the baud rate in the software,Is it configured in Mancunian encoded bit time?

For example, if the protocol defines a data baud rate of 19.2K, should 38.4K be entered here?

3.NUM_PREAMBLE description, number of preamble bytes, here one byte, is equal to 8 preamble bits?

4.CC1101_IOCFG0 is configured to 0x06, GDO0 generates high level,Read CC1101_RXBYTES, the value read will be 0, is it normal?

In addition, the data read so far is not the RF signal I sent (RF signal modulation mode FSK, Manchester code mode).

Thanks!

  • 1: NRZ

    2: From chapter 3 in the datasheet: "Optional Manchester encoding (the data rate in kbps will be half the baud rate)"

    3: Yes

    4: Could you elaborate a bit on what you are trying to do both on the TX and RX side? 

  • Hi,

    4: Could you elaborate a bit on what you are trying to do both on the TX and RX side?

    Can you explain it in more detail?

    Two questions,

    CC1101_IOCFG0 is configured to 0x06, GDO0 generates high level, read CC1101_RXBYTES, the value read will be 0, is it normal?

    In addition, the received data read is not the sent RF signal, what could be the reason?

    Thanks!

  • Your last post is basically not an elaboration, just a repeat of your original post. 

    "CC1101_IOCFG0 is configured to 0x06, GDO0 generates high level, read CC1101_RXBYTES, etc": 

    If IOCFG is set to 0x06 the pin will be set to '1' when a sync found. How do you know that this pin is set to '0' due to reading RX_BYTES? 

    "In addition, the received data read is not the sent RF signal, what could be the reason?": MOst likely due to whitening, manchester, MSB <-> LSB swap etc. You have to ensure that the settings are the same on both side. 

  • Hi,

    Address Filtering=0,is error data received,  Address Filtering=1, is no data received,When configured below,

    Please help to analyze what is wrong?

    {CC1101_IOCFG0,     0x06},

            // {CC1101_IOCFG2,     0x08},

            {CC1101_FIFOTHR,     0x47},

            {CC1101_SYNC1,       0xFF},

            {CC1101_SYNC0,       0xF6},

            {CC1101_PKTLEN,     0x0F},

            {CC1101_PKTCTRL1,   0xC0},////04//bit1:0,address filter

            {CC1101_PKTCTRL0,   0x00},//bit1:0,length

            //{CC1101_CHANNR,     0x01},

            {CC1101_ADDR,       0xF0},

            {CC1101_FSCTRL1,     0x06},

            {CC1101_FREQ2,       0x10},

            {CC1101_FREQ1,       0xB0},

            {CC1101_FREQ0,       0x71},

            {CC1101_MDMCFG4,     0xCA},

            {CC1101_MDMCFG3,     0x83},

            {CC1101_MDMCFG2,     0x1A},//1a

            {CC1101_MDMCFG1,     0x52},//

            {CC1101_DEVIATN,     0x46},

            //{CC1101_MCSM1,       0x3C},//30 //bit3:2,Select what should happen when a packet has been received

            {CC1101_MCSM0,       0x18},

            {CC1101_FOCCFG,     0x16},

            //{CC1101_AGCCTRL2,   0x00},//03

            {CC1101_WORCTRL,     0xFB},

            {CC1101_FSCAL3,     0xE9},

            {CC1101_FSCAL2,    0x2A},

            {CC1101_FSCAL1,     0x00},

            {CC1101_FSCAL0,     0x1F},

            {CC1101_TEST2,       0x81},

            {CC1101_TEST1,       0x35},

            {CC1101_TEST0,       0x09},

    condition:

    Preamble+sync: 0xFFFFFFFFF6

    Baudrate:19.2kbps

    Encoding:Manchester

    No whitening

    Thanks!

  • What is your setup? Do you have one TX and one RX, both CC1101, using the same register settings? 

  • Hi

    No,TX is not CC1101.

    the data baudrate is 19.2k,encoding  with manchester

    Thanks!

  • Without knowing anything about the TX side it's not possible to comment further. 

  • Hi

    CC1101 MANCHESTER, high level is 1, low level is 0,

    or the high level is 0, the low level is 1, or can choose Settings?

    Thanks!

  • Hi

    If set to the following mode,Is the output from the GDOx undecoded or decoded?

    2.NRZ decoding method is adopted,using software to decode data,is it feasible?

    3.Datasheet does not introduce the CRC algorithm of CC1101,If you don't know the algorithm, the resulting CRC doesn't seem to be very useful,

    Only when BOTH TX and RX are CC1101 is it necessary to use CRC.

    4.Code in Manchester,What happens when you receive 00 or 11,after CC1101 matches Preamble.

    Thanks!

  • 1) From the datasheet: "When using the packet handling features in synchronous serial mode, the CC1101 will insert and detect the preamble and sync word and the MCU will only provide/get the data payload. This is equivalent to the recommended FIFO operation mode." From this I believe it should be decoded. 

    2) Not sure what you refer to here. No special coding has to be done (If you send '1' you receive '1', same with '0'. 

    3) For CRC: . If CC1101 calculate the CRC on both the TX and the RX side you don't need to know anything about how the chip calculate CRC. 

    4) If CC1101 receive '00' or '11' this will be a manchester violation and hence this will be regarded as a bit error.  

  • Hi

    For the anti-Manchester code, SYNC is taken backwards and put into registers,

    the data is received correctly, but the received data also needs to be unfetched.

    Question1: Is it safe and reliable? Are there any other risks?

    Question 2: According to the datasheet, TX/RX matches rows with alternating sequences of "10101010",

    If TX Preamble is an alternate sequence of "010101" (start sequence), can RX CC1101 also match?

    Thanks!

  • Preamble is normally only used for settling the AGC etc meaning that the chip does not check if the sequence is preamble or not. Bit sync is done as part of sync word search.

    "For the anti-Manchester code, SYNC is taken backwards and put into registers, the data is received correctly, but the received data also needs to be unfetched." Could you elaborate some. Not sure what you mean by sync backwards etc.