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 doesn't see transmitter

Other Parts Discussed in Thread: CC1101, TEST2

Hello,

I am currently working with two CC1101 devices on custom boards, and I have had some trouble not only receiving packets, but even just seeing that the transmitter is present via the RSSI register. I am attempting to use the following settings: 915MHz carrier frequency, 1.2kbaud, ASK/OOK modulation, 0dbm output power. Currently I am attempting to send a single byte to the receiver.

I have connected my transmitter side to a spectrum analyzer and have seen a peak at 915MHz with a power of 0dbm as expected, so I am currently assuming that it is transmitting as expected and that the receiver should at the least see some change in received signal strength when the transmitter is on vs. off, however, this is not the case and I see no change in the RSSI register when using antennas connected via SMA connectors or even when directly coupled with a direct SMA coupler.

My problem is that the receiver doesn't seem to "see" the transmitter's signal at all. Below are the configuration registers that I have set for the receiver. I believe they are identical to those on the transmitter side. 

#define SETTING_PKTLEN 0x01
#define SMARTRF_SETTING_IOCFG2 0x07
#define SMARTRF_SETTING_IOCFG0 0x29
#define SMARTRF_SETTING_FIFOTHR 0x67
#define SMARTRF_SETTING_PKTCTRL0 0x04
#define SMARTRF_SETTING_FSCTRL1 0x06
#define SMARTRF_SETTING_FREQ2 0x23
#define SMARTRF_SETTING_FREQ1 0x31
#define SMARTRF_SETTING_FREQ0 0x3B
#define SMARTRF_SETTING_MDMCFG4 0xF5
#define SMARTRF_SETTING_MDMCFG3 0x83
#define SMARTRF_SETTING_MDMCFG2 0x33
#define SMARTRF_SETTING_DEVIATN 0x31
#define SMARTRF_SETTING_MCSM0 0x18
#define SMARTRF_SETTING_FOCCFG 0x16
#define SMARTRF_SETTING_AGCCTRL1 0x00
#define SMARTRF_SETTING_WORCTRL 0xFB
#define SMARTRF_SETTING_FREND0 0x11
#define SMARTRF_SETTING_FSCAL3 0xE9
#define SMARTRF_SETTING_FSCAL2 0x2A
#define SMARTRF_SETTING_FSCAL1 0x00
#define SMARTRF_SETTING_FSCAL0 0x1F
#define SMARTRF_SETTING_TEST2 0x81
#define SMARTRF_SETTING_TEST1 0x35
#define SMARTRF_SETTING_TEST0 0x09 


In my main loop I am polling the RSSI, the PKTSTATUS register, and the FIFOBYTES registers looking for changes.

CC1101_strobe(SRX);

for (;;){

timer_a_stop(); //stop timer during active operation

CC1101_read_8(0xF4); //Read RDDI register
CC1101_read_8(0xF8); //read PKTSTATUS Register
CC1101_read_8(0xFB); //read # of bytes in RX FIFO
...
}

The receiver appears to just sit in RX mode waiting, but I never see any changes in the RSSI nor do I see that I receive any of the messages sent with either the transmitter & receiver directly coupled, or with antennas.

  • You are testing your custom board and SW at the same time so it is difficult to say if the problem is related to HW or SW.

    Ideally you should test your HW with a known good SW. That is, use TrxEB + SmartRFStudio and strap the SPI lines from TrxEB to your board. Using SmartRF Studio to control your board you know the SW is OK.

    Similarly, you should test your SW with a known good HW. That is, use TrxEB + CC1101EM and strap the SPI lines from your custom board to the TrxEB. You can then test your SW with a known good HW.

    Not sure how you test the RSSI and what the packet looks like in your test set up. Make sure you have 4 bytes of preamble, 4 bytes of sync (0xD391D391) followed by the payload. If the receiver appears to just sit in RX mode waiting no valid sync word has been found. Are you transmitting the correct sync word? 

    Also, the register settings are not optimum and I would suggest the following settings (see also DN022 for details on how to find settings for OOK):

    FIFOTHR = 0x07

    AGCCTRL2 = 0x03

    AGCCTRL1 = 0x0

    AGCCTRL0 = 0x91

    Finally, check that there is no (significant) frequency offset between RX and TX. Put the boards in TX. Transmit an unmodulated carrier (continuous string of 1's in OOK mode) and measure the carrier frequency. Adjust the crystal oscillator capacitive load if needed.  

  • Thank you for the reply Sverre.

    For the immediate future, I am unable to acquire any evaluation boards, so unfortunately I've only got the hardware I have to work with.

    When testing the RSSI, I am sending a packet consisting of 0xAA about every 500ms. When looking for changes in the RSSI, I first powered the transmitter and receiver and tried over air and checked the value of the RSSI. Next, I removed power and replaced the antennas with an SMA to SMA coupler, applied power, and read the value from the SO pin on a scope. Finally, I removed power, disconnected the coupler leaving the TX and RX uncoupled, applied power, and read the value on my scope a final time. In each case, the value was the same.

    I will apply the register settings that you suggested an will reply with an update. Otherwise, the register settings that I didn't list are defaulted. I  believe in this case I should have 4 bytes of preamble by default, 30/32 sync word qualifier, and the sync words should be the same by default.

    Finally, I will also take a look at the spectrum of my receiver when in TX mode and will update with my findings.

    Thank you for your assistance,

    Erik