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.

I get only ~10m Range with CC1101 and CC1100EM!!!

Other Parts Discussed in Thread: CC1101

Hi,

(Complete code at the bottom of this post)

Using the CC1100EM (but with the CC1101 chip) with the on board PCB Antenna i am able to get only about 10-20m Range! Is this normal or should i get much more than this?

I am using the WOR feature and CC1101 wakes every 1sec. and listens to any incoming signal (at 868Mhz) together with GDO2 =0x07 to check for CRC. The transmitter sends the same string (just abcd) 220 times, which takes about 1 sec. to complete (so that i am sure the receiver will get at least one packet).

The software works normally in house, but when i move out and start walking i realize that after 10m i get no more signals or the signals that i get has a wrong CRC!

 

I attach for reference my WOR settings. Do you see anything that could be the case for getting such low range in my application? I attach also the whole project for reference.

cc_write(CCxxx0_MCSM1,  0x30);
cc_write(CCxxx0_MCSM2,  0x03);
cc_write(CCxxx0_WORCTRL,0x78);      
cc_write(CCxxx0_WOREVT1,0x87);       
cc_write(CCxxx0_WOREVT0,0xE0);       

 

and the Transmitter part

.

.

ccxxx0_Strobe(CCxxx0_SFRX);_delay_ms(1);
ccxxx0_Strobe(CCxxx0_SRX);_delay_ms(1);
ccxxx0_Strobe(CCxxx0_SWOR);
/************
*        While routine
************/
while (1) {

//---------------------------------------------------------------
// Transmitter
//---------------------------------------------------------------

    if (Flag==1)  // Comming from interrupt
    {
        Flag=0;
            for (i=0;i<220;i++)  //Send 220 times the same signal (takes about 1 sec to complete)
            {
            ccxxx0_WriteBurst(CCxxx0_TXFIFO, "Mabcd", 5);             // addr=M, payload=4 bytes
            ccxxx0_Strobe(CCxxx0_STX);                           // activate tx!
            while(!(PINA & (1<<PINA7)));                            // Wait for GDO2 to be set -> sync transmitted
            while(PINA & (1<<PINA7));                                // Wait for GDO2 to be cleared -> end of packet       
            ccxxx0_Strobe(CCxxx0_SIDLE);
            }
        ccxxx0_Strobe(CCxxx0_SPWD);
        _delay_ms(1);
        ccxxx0_Strobe(CCxxx0_SIDLE);
        ccxxx0_Strobe(CCxxx0_SWOR);   
    }

And also the receiving part

        if (Flag==2)
        {
            Flag=0;
       
            PORTC &=~(1<<7);PORTC &=~(1<<5);
            ccxxx0_Strobe(CCxxx0_SIDLE);
            i = cc_read(CCxxx0_RXBYTES);

            uart_puts("RXed bytes: ");
            uart_putc((i+48));
            uart_puts("\r\n");   
           
            ccxxx0_ReadBurst(CCxxx0_RXFIFO, temp, i);

            uart_puts("RXed data: ");
            uart_putsn(temp,(i-2)); // nemoj LQI i RSSI
            uart_puts("\r\n");   
               
                uart_puts("RSSI: ");
                rssi_dec=temp[i-2];
                if (rssi_dec >= 128)
                    rssi_dBm = (int16_t)((int16_t)( rssi_dec - 256) / 2) - rssi_offset;
                else
                    rssi_dBm = (rssi_dec / 2) - rssi_offset;

                itoa(rssi_dBm, r, 10);
                uart_puts(r);
                uart_puts("dBm, LQI: ");
                itoa(temp[i-1], r, 10);
                uart_puts(r);
                uart_puts("\r\n");   

           
            PORTC |=(1<<7);
            PORTC |=(1<<5);
            _delay_ms(1000);
                ccxxx0_Strobe(CCxxx0_SIDLE);
                ccxxx0_Strobe(CCxxx0_SFRX);
                ccxxx0_Strobe(CCxxx0_SRX);
                ccxxx0_Strobe(CCxxx0_SWOR);

}

Software is written for AVR ATmega164P using WinAVR (don't care about the RX in the name below, it's because on the beginning i used separate software for Rx and Tx )

4137.ADXL345_CC1101_RX.rar

 

Thanks,

 

  • Hi,

    You should definately get more range than 10-20 meters. Firstly, did you check the power settings?If your Software works fine, in the close vicitny, it has to be related to the antenna.

    I would recommend you to try out Anaren's AIR A1101R09A  modules that come with embedded antenna and have been FCC approved ( http://www.anaren.com/content/File/100827b_20_20A1101R09A_EM1_20Prod_20Brief_20STD_20RES.pdf ). This will help you to eliminate any RF related issue that you might have on the board whiule allowing you to concentrate on your software design.

    -The Air team @ Anaren.

    Please check out our Air Modules at http://www.anaren.com/content/File/AIR/AIRoverview.cfm

    Anaren is a third party Developer Network Member for Low Power RF and MCUs.

  • Hi,

                   I would like to know the kind of  Range these Lower Power RF portfolio of TI has been designed for, like considering that all the hardware and software parameters are designed perfectly what is the maximum range that can be achieved.

  • I would strongly recommend that you get one of the CC1101 evaluation module kits (CC1101EMK868-915 or CC1101EMK433) in order to test the performance of the CC1101 device properly.

    Second - what EM boards do you have? To my knowledge, we don't have any CC1100EM with a PCB antenna. You should use the SMA whip antenna which is included in the EMK.

  • Atttached are two presentation that should help you in your range assements .  There are many variables when trying to achieve range.  The practical range is limited by matching and antenna selection.  At high data rates you can get 400 meters,  at low data rates 1000KM.  We are ready to introduce a PCB antenna which has high efficency and distance to expensive whip antennas.

     

    8156.CC11xx range extension and practical range estimation.ppt0121.CC11xx range improvement.ppt

     

    Rgds

  • Hi,

    I attach to this post the files from which i made the PCBs. I can't find it anymore on the internet but it seems from the readme.txt that it comes from TI Norway!!! Its exactly like the one attached by M (CC1101EMK868-915) but with an PCB Antenna.

     

    What  wonders me is what the two 0 Ohm resistors do at the end of the circuit and in the beginning of the PCB Antenna! Should they be there or maybe not? On the other had i removed the one who goes to GND and the system didn't transmit anything!!

     

    Thanks,

    George

     

    CC1101-Antenna.rar
  • Hi,

     

    I would say that the problem is solved!!! I guess the antenna is bad since i disconnected both 0 Ohm resistors which are close to the antenna as you can see in the previous attachment and connected a 16cm cable instead.

     

    Results now are 330m range measured in Athens, Greece with 900Mhz freq. 12dbm Power (C0) 32Kbps and WOR Enabled (310uA Power consumption (CC1101 + AVR + ADXL345))

    Although i have resolved my problem, the question remains. Why does the PCB Antenna not work properly? With the PCB Antenna i get only 10m Range! Any guess?

     

    Thanks,

    George

  • The two resistors R1 and R2 are included in the schematic and PCB so that they can be replaced by inductors and/or capacitors for impedance matching if needed.

    The schematic contains an error: The 0 ohm resistor to GND shall no be present. It shall be a "do not mount" component. A component (capacitor/inductor) shall only be soldered at R1 if impedance matching is needed.

    For your testing: Keep R2 (0 ohm resistor towards antenna) and remove R1 (resistor to GND). YOu should then get significantly more than 10 meter range