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.

CC2510 RX Sensitivity Issue

Other Parts Discussed in Thread: TEST2, CC2510

Hi there,

I am using the SmartRF Studio 7 to configure the two CC2510EM module using the SmartRF 04EB. The register configurations exported from the SmartRF Studio 7 are shown below.

 Deviation = 57.128906
 Base frequency = 2401.437378
 Carrier frequency = 2424.571411
 Channel number = 74
 Carrier frequency = 2424.571411
 Modulated = true
 Modulation format = GFSK
 Manchester enable = false
 Sync word qualifier mode = 30/32 sync word bits detected
 Preamble count = 4
 Channel spacing = 312.622070
 Carrier frequency = 2424.571411
 Data rate = 115.051
 RX filter BW = 232.142857
  = Normal mode
 Length config = Variable packet length mode. Packet length configured by the first byte after sync word
 CRC enable = true
 Packet length = 255
 Device address = 0
 Address config = No address check
  = false
  = false
 TX power = 0
/* RF settings SoC */

FSCTRL1   =     0x08;       // Frequency Synthesizer Control
FSCTRL0   =     0x00;       // Frequency Synthesizer Control
FREQ2     =     0x5C;       // Frequency Control Word, High Byte
FREQ1     =     0x5C;       // Frequency Control Word, Middle Byte
FREQ0     =     0xEC;       // Frequency Control Word, Low Byte
MDMCFG4   =     0x7C;       // Modem configuration
MDMCFG3   =     0x22;       // Modem Configuration
MDMCFG2   =     0x13;       // Modem Configuration
MDMCFG1   =     0x23;       // Modem Configuration
MDMCFG0   =     0x8A;       // Modem Configuration
CHANNR    =     0x4A;       // Channel Number
DEVIATN   =     0x51;       // Modem Deviation Setting
FREND1    =     0x56;       // Front End RX Configuration
FREND0    =     0x10;       // Front End TX Configuration
MCSM0     =     0x14;       // Main Radio Control State Machine Configuration
FOCCFG    =     0x16;       // Frequency Offset Compensation Configuration
BSCFG     =     0x6C;       // Bit Synchronization Configuration
AGCCTRL2  =     0x43;       // AGC Control 
AGCCTRL1  =     0x40;       // AGC Control 
AGCCTRL0  =     0x91;       // AGC Control 
FSCAL3    =     0xEA;       // Frequency Synthesizer Calibration
FSCAL2    =     0x0A;       // Frequency Synthesizer Calibration
FSCAL1    =     0x00;       // Frequency Synthesizer Calibration
FSCAL0    =     0x11;       // Frequency Synthesizer Calibration
TEST2     =     0x88;       // Various Test Settings
TEST1     =     0x31;       // Various Test Settings
TEST0     =     0x09;       // Various Test Settings
PA_TABLE0 =     0xFE;       // PA Power Setting
PKTCTRL1  =     0x04;       // Packet Automation Control
PKTCTRL0  =     0x05;       // Packet Automation Control
ADDR      =     0x00;       // Device Address
PKTLEN    =     0xFF;       // Packet Length 

The configuration screenshot is also attached here for your reference.

.

 Then, a RX sensitivity test is conducted using the two SmartRF04EB with the CC2510EM mounted. The test setup is shown below.

The SmartRF Studio 7's Packet TX and Packet RX functions are used to send/receive the packets.

During the test, it shows that the RX sensitivity with this configuration is about - 80 dBm. However, if the default 250 kbps configuration is being used (the one with the MSK modulation supplied by TI), the RX sensitivity performance is much better. Could someone please help to confirm this test result? If confirmed, what is the reason for this difference? And in general, how should I setup the radio correctly? Is there a set of rules that needs to be followed?

 

  • Hello,

    Your setup looks like it has been "extrapolated" from the 10kb/s setting from the SmartRF GUI. While this is a recommended path, we typically recommend starting with a recommended setting that has a higher bitrate than the one you ultimately want. The main reason for this is that you need to change the RX bandwidth filter to accomodate a broad signal when you increase the overall bitrate.

    The most common "rule of thumb" is Carson's rule. It has been posted a couple of time, but I have decided to repost it here today.

    This section is taken from a posting that "sverre" posted a while back.

    --- included message ---

    As a first approximation use Carson's rule: Signal bandwidth = 2 X (Peak Deviation + Highest Modulating Frequency).

    For 2-FSK, 2xPeak Deviation = Frequency separation. Highest modulation frequency is for a 0-1 sequence and 2xHighest Modulating Frequency = Data Rate

    Thus, Signal bandwidth = 2 X (Peak Deviation + Highest Modulating Frequency). = Frequency Separation + Data Rate

    You will find a lot of info on Carson's rule on the internet.

    --- end ---

    So if you use this rule you will find that you need a RX bandwidth filter of 2x57+115k = 229kHz. Note this rule is for FSK and not GFSK...

    Here I have run a Matlab simulation of your setup except that I used FSK to match up with Carsons rule and find that the matlab simulation matches very well with Carsons rule for 99% occupied band width. See below

    But you are not using FSK, but rather GFSK. So, here is the same simulation just with GFSK.

    Now comes the most important factor and also the most overlooked factor. That is your XTAL tolerances, at 2.5GHz you get 2.5kHz of potential offset between RX and TX for each ppm. That is if you use 20ppm xtals on both RX and TX you should multiply 20ppm * 2. Therefore it becomes 40*2.5kHz = 100kHz.

    Then we need to add 100kHz to the RX filter bandwidth for the system to work using 20ppm xtals.

    We would typically recommend adding a "fudge factor" to your final RX filter and I would therefore recommned that you use an overall RX band width setting of approximately 400KHz.

    Regards
    /TA

  • Hello TA,

    Nice to meet you too :-) And thanks a lot for the excellent illustration of the Carson's rule. I especially like your Matlab simulation.

    After reading your post, I went back to redo the RX sensitivity test. With all the other settings being the same, I changed the RX filter BW from 232 kHz to 406 kHz. The test results is shown below.

    As you can see, the PER at about -70 dBm RSSI level is 37.2%.

    Then, I switch the RX filter BW back to 232 kHz and redo the test again. The test result is shown below.

    As you can see, the PER at about -70 dBm RSSI level is 3.2%.

    Then, I switch to use the default 250 kbps example that is provided by the SmartRF Studio 7 only with the channel settings changed to match the previous tests. The test result is shown below.

    As you can see, the PER at about -70 dBm RSSI level is 0.1%. Please note that the RSSI shown above is about -65 dBm. However, I didn't change any thing (including the attenuators that I was using for the previous tests) during these tests.

    As you can see from these tests, the default 250 kbps example performs as it should be according to the datasheet. The result of the one with RXBW = 232 kHz is better than that of the one with RXBW = 406 kHz. Could you please confirm these results on the CC2510 DK?

    Thanks for the help :-)

    YS