⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfconfig.c

📁 CHIPCON公司CC1100参考设计库及应用文档可用于初步设计参考
💻 C
字号:
/******************************************************************************
*                                                                             *
*        **********                                                           *
*       ************                                                          *
*      ***        ***                                                         *
*     ***    ++    ***                                                        *
*     ***   +  +   ***                      CHIPCON                           *
*     ***   +                                                                 *
*     ***   +  +   ***                                                        *
*     ***    ++    ***                                                        *
*      ***        ***                                                         *
*       ************                                                          *
*        **********                                                           *
*                                                                             *
*******************************************************************************

Filename:     rfConfig.c
Target:       cc1110
Author:       EFU
Revised:      2/3-2006
Revision:     1.0
******************************************************************************/
#include "hal.h"


//-----------------------------------------------------------------------------
// See hal.h for a description of this function.
//-----------------------------------------------------------------------------
BOOL halRfConfig(UINT32 frequency)
{
   BOOL status;

   //Turning on crystal oscillator
   SET_MAIN_CLOCK_SOURCE(CRYSTAL);

   // Setting the frequency
   halRfSetRadioFrequency(frequency);

   if (frequency < 1000000)
   {
      // 315 MHz band
      if (frequency < 400000)
      {
         PA_TABLE0 = 0x63;
      }
      // 433 MHz band
      else if (frequency < 800000)
      {
         PA_TABLE0 = 0x33;
      }
      // 868 MHz band
      else if (frequency < 890000)
      {
         PA_TABLE0 = 0x66;
      }
      // 915 MHz band
      else
      {
         PA_TABLE0 = 0x66;
      }

//      250 kbps MSK  setup (for other data rates or modulation formats, please see SmartRF Studio).
//      --------------------------------------------------------------
      // Dynamic packet length
      PKTLEN = 0xFF;
      PKTCTRL0 = 0x05;

      // Append status
      PKTCTRL1 = 0x84;

      // IF frequency
      FSCTRL1 = 0x0B;

      //
//      FSCTRL0 = 0x00;

      // filter BW, data rate,
//      MDMCFG4 = 0x0E;
      MDMCFG4 = 0x2D;
      MDMCFG3 = 0x3B;
      // Modulation format, detection level
      MDMCFG2 = 0x73;
      MDMCFG1 = 0x42;
//      MDMCFG1 = 0x22;

      // Deviation setting
      DEVIATN = 0x00;

      // Calibration synth
      MCSM0 = 0x10;

      // Frequency offset compensation configuration
      FOCCFG = 0x1D;

      // Bit synchronization
      BSCFG = 0x1C;

      // AGC and front end settings (from SmartRf04)
      AGCCTRL2 = 0xC7;
//      AGCCTRL1 = 0x40;
      AGCCTRL1 = 0x00;
      AGCCTRL0 = 0xB2;
      FREND1 = 0xB6;

      FSCAL3 = 0xEA;

      // Synth calibration
//      FSCAL0 = 0x19;
      FSCAL0 = 0x11;
//      PA_TABLE0 = 0xC3;
//      --------------------------------------------------------------

      // Calibrating synth.
      SIDLE();
      SCAL();
      while(MARCSTATE != 0x01);

      INT_SETFLAG(INUM_RFTXRX,INT_CLR);

      status = TRUE;
   }
   else {
      status = FALSE;
   }

   return status;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -