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

Hallo,

I'm working on a project about CC1101 module.

We mounted a CC1101 on our embedded board and we are tring to communicate with it on 868MHz frequency.

I never use the CC1101, so I used the smartRF studio to configure CC1101 registers. The result is bellow:

const uint8_t rfSettings[] = {

0x06, // IOCFG2 GDO2 Output Pin Configuration
0x2E, // IOCFG1 GDO1 Output Pin Configuration
0x07, // IOCFG0 GDO0 Output Pin Configuration
0x0F, // FIFOTHR RX FIFO and TX FIFO Thresholds
0x91, // SYNC1 Sync Word, High Byte
0xD3, // SYNC0 Sync Word, Low Byte
0x38, // PKTLEN Packet Length
0xC4, // PKTCTRL1 Packet Automation Control
0x44, // PKTCTRL0 Packet Automation Control
0x00, // ADDR Device Address
0x07, // CHNNR Channel number
0x00, // FSCTRL1 Frequency Synthesizer Control
0x00, // FSCTRL0 Frequency Synthesizer Control
0x21, // FREQ2 Frequency Control Word, High Byte
0x65, // FREQ1 Frequency Control Word, Middle Byte
0x6A, // FREQ0 Frequency Control Word, Low Byte
0xCA, // MDMCFG4 Modem Configuration
0x83, // MDMCFG3 Modem Configuration
0x11, // MDMCFG2 Modem Configuration
0xC0, // MDMCFG1 Modem Configuration
0xF8, // MDMCFG0 Modem Configuration
0x34, // DEVIATN Modem Deviation Setting
0x07, // MCSM2 Main Radio Control State Machine Configuration
0x00, // MCSM1 Main Radio Control State Machine Configuration
0x08, // MCSM0 Main Radio Control State Machine Configuration
0x16, // FOCCFG Frequency Offset Compensation Configuration
0x6C, // BSCFG Bit Synchronization Configuration
0x43, // AGCCTRL2 AGC Control
0x48, // AGCCTRL1 AGC Control
0x91, // AGCCTRL0 AGC Control
0x87, // WOREVT1 High Byte Event0 Timeout
0x6B, // WOREVT0 Low Byte Event0 Timeout
0xF8, // WORCTRL Wake On Radio Control
0x56, // FREND1 Front End TX Configuration
0x17, // FREND0 Front End TX Configuration
0xA9, // FSCAL3 Frequency Synthesizer Calibration
0x0A, // FSCAL2 Frequency Synthesizer Calibration
0x00, // FSCAL1 Frequency Synthesizer Calibration
0x11, // FSCAL0 Frequency Synthesizer Calibration
0x41, // RCCTRL1 RC Oscillator Configuration
0x00, // RCCTRL0 RC Oscillator Configuration
0x59, // FSTEST Frequency Synthesizer Calibration Control
0x7F, // PTEST Production Test
0x3F, // AGCTEST AGC Test
0x81, // TEST2 Various Test Settings
0x35, // TEST1 Various Test Settings
0x09 // TEST0 Various Test Settings
};

At the moment we would like receiving a packate of 56 bytes with CC1101 on channel 7 without address check, but unfortunally we haven't obteined any result.

Could someone help me to understand if there is an error in the CC1101 configuration?

Thank you in advance for your support.

Kinds Regards,

Stefano

  • Before I start looking into the settings:

    What exactly is the RX and TX side in your test? Is it the same hardware with the same software on both sides? Is it hardware you know work?

  • I have a dongle where is mounted a CC1101 device. This dongle sends packets of 56 bytes that I receive correctly with Texas instruments sniffer., but I don't receive the same packet with the CC1101 mounted on my board.

    The software in dongle is different from mine because we don't produce it. We must create a board to communicate with this dongle. We have its protocol, but we can not receive the packets.

    About the hardware, I can say that my microcontroller communicates correctly with CC1101 because it reads and writes the CC1101 registers correctly. Moreover I can say that the CC1101 enters in RX state correctly because after the RX command, my software check the machine state register.

    Thank you for your support.

    Kinds Regards,

    Stefano

  • - Do you know the performance of your CC1101 board? 

    - Do you have a CC Debugger that you can use to control your CC1101 board to check  if it works if you control it with SmartRF Studio?

    - Do the sniffer use the same settings as those you use in your code?

  • My answer for the first and second question is no.

    Some the sniffer registers are not set in the same way of my CC1101 because on tthe sniffer board there is a different RF module (CC1111).

    At the moment I can say that if I set the PQT field value very low (for example 2), my CC1101 receive bytes that thay haven't any meanning for me. This field is in the PKTCTRL1 register.

    Unfortunally I haven't got other information to help you.

    Thany you.

    Kinds Regards,

    Stefano 

  • Without having the hardware here I'm in the blind. Do you have the CC1110 settings you use for the sniffer?

  • In my sniffer in mounted CC1111.

    I set its registers in the following way:

    PKTLEN |0xDF02|0x38|Packet Length
    PKTCTRL1 |0xDF03|0xC4|Packet Automation Control
    PKTCTRL0 |0xDF04|0x44|Packet Automation Control
    FSCTRL1 |0xDF07|0x08|Frequency Synthesizer Control
    FREQ2 |0xDF09|0x24|Frequency Control Word, High Byte
    FREQ1 |0xDF0A|0x2D|Frequency Control Word, Middle Byte
    FREQ0 |0xDF0B|0xDD|Frequency Control Word, Low Byte
    MDMCFG4 |0xDF0C|0xCA|Modem configuration
    MDMCFG3 |0xDF0D|0xA3|Modem Configuration
    MDMCFG2 |0xDF0E|0x92|Modem Configuration
    MDMCFG1 |0xDF0F|0xC3|Modem Configuration
    MDMCFG0 |0xDF10|0x11|Modem Configuration
    DEVIATN |0xDF11|0x36|Modem Deviation Setting
    MCSM0 |0xDF14|0x18|Main Radio Control State Machine Configuration
    FOCCFG |0xDF15|0x16|Frequency Offset Compensation Configuration
    AGCCTRL2 |0xDF17|0x43|fgddf
    FSCAL3 |0xDF1C|0xE9|Frequency Synthesizer Calibration
    FSCAL2 |0xDF1D|0x2A|Frequency Synthesizer Calibration
    FSCAL1 |0xDF1E|0x00|Frequency Synthesizer Calibration
    FSCAL0 |0xDF1F|0x1F|Frequency Synthesizer Calibration
    TEST1 |0xDF24|0x31|Various Test Settings
    TEST0 |0xDF25|0x09|Various Test Settings

    It's the file that I exported from SmartRF Studio.

    Thank you.

    Kinds Regards,

    Stefano

  • The FREQ word is fairly different for the CC1101 and the CC1110? 

  • I solved the problem. It was because of crystal tollerance. I adjusted some parameters and now the device receive correctly.

    I would like asking a clarification.

    In my project I receve and send 0x38 bytes. I set the FIFO_THR to 0x0F. It means that the RX_FIFO size is 64 byte and the TX_FIFO size is 1 byte.

    Is it correct? If it is correct, how I can load 0x38 bytes in the TX_FIFO and send them? Must I have do the operation in more steps?

    Many thanks.

    Kinds Regards,


    Stefano

  • From my understanding it is not required to use FIFO_THR when you are sending 38 byte. FIFO_THR is typically used when you need to send a packet longer than the FIFO. 

    For 38 byte payload, load the bytes into the FIFO and issue a STX. 

    Also see the software examples for CC1101.