예제 #1
0
void InitRadio(void)
{
  // Set the High-Power Mode Request Enable bit so LPM3 can be entered
  // with active radio enabled 
  PMMCTL0_H = 0xA5;
  PMMCTL0_L |= PMMHPMRE_L; 
  PMMCTL0_H = 0x00; 
  
  WriteRfSettings(&rfSettings);
  
  WriteSinglePATable(PATABLE_VAL);
}
예제 #2
0
/*
 * Phy implementation functions
 */
void phy_init(void)
{
    //Set radio state
    state = Idle;
    spi_init();
    radioConfigureInterrupt();

    //Reset the radio core
    ResetRadioCore();

    //Write configuration
    WriteRfSettings(&rfSettings);

    last_tx_cfg.eirp=0;
    last_tx_cfg.spectrum_id = 0;
    last_tx_cfg.sync_word_class=0;

}
예제 #3
0
파일: RF1100.c 프로젝트: examdog/cc1101
void Init_cc1100(void)
{
    int i;
    //ENCC1101;

    POWER_UP_RESET_CC1100();                    //上电复位
    delayms(20);

    WriteRfSettings();                          //写入配置

    // Set RX FIFO threshold
    halRfWriteReg(CC_FIFOTHR, FIFO_THRESHOLD);
    halRfWriteReg(CC_MCSM1, 0x33);      /* TX完成后保持RX状态,(RESET:0x30) */


    // Set GDO0 to be RX FIFO threshold signal
    halRfWriteReg(CC_IOCFG0, 0x00);
    // Set up interrupt on GDO0
    //halDigioIntSetEdge(&pinGDO0, HAL_DIGIO_INT_RISING_EDGE);
    //halDigioIntConnect(&pinGDO0, &Rx_fifo_half_full);
    //halDigioIntEnable(&pinGDO0);
    // Set GDO2 to be packet received signal
    halRfWriteReg(CC_IOCFG2, 0x06);
    // Set up interrupt on GDO2
    //halDigioIntSetEdge(&pinGDO2, HAL_DIGIO_INT_FALLING_EDGE);
    //halDigioIntConnect(&pinGDO2, &Rx_packet_recvd);
    //halDigioIntEnable(&pinGDO2);
    delayms(10);
    Spi_Write_Burst(CC_PATABLE,PaTabel,8);      //功率配置
    Spi_Write_Strobe(CC_SCAL);
    for(i=0; i<100; i++) Spi_Write_Strobe(CC_SNOP);
    Spi_Write_Strobe(CC_SIDLE);                 //进入空闲
    Spi_Write_Strobe(CC_SFRX);                 //清空接受区

    Spi_Write_Strobe(CC_SRX);    //进入接收
    rf_data.rf_state = RX_STATE_RX;
    _timer_rx_timeout = TIME_OUT;
    _flag_rx_timeout = FALSE;

    //  Spi_Write_Strobe(CC_SPWD);    //进入接收


    //CSN_H;									  //上电拉高
}
예제 #4
0
void main()
{
	system_init(buffer, sizeof(buffer), buffer, sizeof(buffer));
#if RF == CC1101 || RF == CC1120
	spi_init();
#endif

	ResetRadioCore();
	int p = ReadSingleReg(PARTNUM);
	log_print_string("PARTNUM 0x%x", p);
	p = ReadSingleReg(VERSION);
	log_print_string("VERSION 0x%x", p);
	log_print_string("started");

	WriteRfSettings(&rfSettings);
//	WriteSingleReg(IOCFG2,0x0B);    //GDO2 Output Pin Configuration
//	WriteSingleReg(IOCFG0,0x0C);    //GDO0 Output Pin Configuration
//	WriteSingleReg(FIFOTHR,0x47);   //RX FIFO and TX FIFO Thresholds
//	WriteSingleReg(PKTCTRL0,0x22);  //Packet Automation Control
//	WriteSingleReg(FSCTRL1,0x08);   //Frequency Synthesizer Control
//	WriteSingleReg(FREQ2,0x10);     //Frequency Control Word, High Byte
//	WriteSingleReg(FREQ1,0xB1);     //Frequency Control Word, Middle Byte
//	WriteSingleReg(FREQ0,0x3A);     //Frequency Control Word, Low Byte
//	WriteSingleReg(MDMCFG4,0xCA);   //Modem Configuration
//	WriteSingleReg(MDMCFG3,0x83);   //Modem Configuration
//	WriteSingleReg(MDMCFG2,0xB0);   //Modem Configuration
//	WriteSingleReg(DEVIATN,0x35);   //Modem Deviation Setting
//	WriteSingleReg(MCSM0,0x18);     //Main Radio Control State Machine Configuration
//	WriteSingleReg(FOCCFG,0x16);    //Frequency Offset Compensation Configuration
//	WriteSingleReg(AGCCTRL2,0x43);  //AGC Control
//	WriteSingleReg(WORCTRL,0xFB);   //Wake On Radio Control
//	WriteSingleReg(FREND0,0x11);    //Front End TX Configuration
//	WriteSingleReg(FSCAL3,0xE9);    //Frequency Synthesizer Calibration
//	WriteSingleReg(FSCAL2,0x2A);    //Frequency Synthesizer Calibration
//	WriteSingleReg(FSCAL1,0x00);    //Frequency Synthesizer Calibration
//	WriteSingleReg(FSCAL0,0x1F);    //Frequency Synthesizer Calibration
//	WriteSingleReg(TEST2,0x81);     //Various Test Settings
//	WriteSingleReg(TEST1,0x35);     //Various Test Settings
//	WriteSingleReg(TEST0,0x09);     //Various Test Settings
//	WriteSingleReg(RSSI,0x80);      //Received Signal Strength Indication
//	WriteSingleReg(MARCSTATE,0x01); //Main Radio Control State Machine State
//	WriteSingleReg(VCO_VC_DAC,0x94);//Current Setting from PLL Calibration Module

	//phy_keep_radio_on(true);

	Strobe(RF_SIDLE);
	Strobe(RF_SFTX);

	//uint8_t spectrum_id[2] = { 4, 0 };
	//phy_translate_and_set_settings(spectrum_id, 0);

	//set_length_infinite(false);
	//WriteSingleReg(PKTLEN, 7);

	Strobe(RF_STX);

	//WriteSingleReg(PKTCTRL0, 0x22);

	//WriteSingleReg(FIFOTHR, RADIO_FIFOTHR_FIFO_THR_17_48);

	//WriteBurstReg(RF_TXFIFOWR, packet, 7);




	/*
	ResetRadioCore();
	log_state();
	Strobe(RF_SIDLE);
	WriteRfSettings(&rfSettings);
	log_print_string("wrote settings");
	log_state();
	Strobe(RF_STX);
	log_print_string("strobed TX");
	*/

	int i;
	for(i = 0; i < 50;i++)
	{
		log_state();
	}



	while(1);
}