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-CC1190EM869RD: CC1101 does not work properly

Part Number: CC1101-CC1190EM869RD
Other Parts Discussed in Thread: CC1101, CC1200, CC1190

Hello. I've written the snippets below to configure and receive three data packets, each of them contains about 34 bytes,

void BVoidTranInit(void)
{
    unsigned char PaTabel[] = {0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00};
	CC1100_CSN=1;
	wait();
    CC1100_CSN=0;
	wait();
    CC1100_CSN=1;
    wait();
	
	// reset
	CC1100_CSN=0;
    wait();
	CC1100_CSN=1;
	CC1100_CSN=0;
	while(CC1100_MISO == 1);
    CC1100_SPIStrobe(CCxxx0_SRES);
	CC1100_CSN=1;
	//reset end
}


// main source file 
#define RX_Buffer_Size 102
unsigned char RxBuffer[RX_Buffer_Size];
void main(void) {
	init_micro();
	init_spi();
	BVoidTranInit();
	while(1)
	{
		if (CheckReceiveFlag()){
			if(CC1100_SPIReadStatus(0x3B) & 0x7F){
				CC1100_SPIReadBurstReg(CCxxx0_RXFIFO, RxBuffer, CC1100_SPIReadStatus(0x3B) & 0x7F);
                delay_ms(1);
				int p = 0;
                        while(p <= 100){
                            if (RxBuffer[p]==0xff){
                                p++;
                            }else{
                                if((RxBuffer[p]==0xc8 & RxBuffer[p+1]==0x8e & RxBuffer[p+2]==0x7f & RxBuffer[p+3]==0x77)|(RxBuffer[p]==0x5c & RxBuffer[p+1]==0x88 & RxBuffer[p+2]==0xe7 & RxBuffer[p+3]==0xf7)){
                                    RA0 = 1;
                                   __delay_ms(30);
                                        RA0 = 0;
                                   __delay_ms(50);
                                }
                                p++;
                            }
                        }
						CC1100_SPIWriteReg(CCxxx0_MCSM1,0x20);
                        CC1100_SPIWriteReg(CCxxx0_MCSM0,0x18);
                        CC1100_SPIStrobe(CCxxx0_SIDLE);
                        CC1100_SPIStrobe(CCxxx0_SFRX);
                        CC1100_SPIStrobe(CCxxx0_SRX);
                        CC1100_SPIWriteReg(CCxxx0_MCSM0,0x28);
                        CC1100_SPIStrobe(CCxxx0_SRX);  
			}else if(CC1100_SPIReadStatus(0x3B) & 0x80){
			   CC1100_SPIStrobe(CCxxx0_SIDLE);
			   CC1100_SPIStrobe(CCxxx0_SFRX);
		    }
			}
					   
		}
	}
}

usign CC1101. For transferring data, I am using CC1200 evaluation board and its configuration is as follows.

Unfortunately, I have several problems in receiving data. First of all, the sync word can not be detected by receiver (it just worked with 0xff sync words at receiver side and 0xaa at transmitter side). In addition, I can not receive data reliably; for example for 10 test (sending), about half of tests are correct which receive correct data.
I should note that GPIOS and SPI are working correctly (read out by osciloscope). I would be grateful if you could help me to resolve these issues.
Regards.