從零開始學習CC1101開發之路(三)

來源:互聯網
上載者:User

CC1101的寄存器初始化,是在CC1101工作這前必須做的一件事情,最主要初始化的三個參數是頻率,速率,功率。最好是以結構體的方式初始化,否則當你改動速率或者頻率或者功率的時候,你還要改變其他幾個相關的寄存器,這樣做就比較麻煩,我當初的做法是:利用SmartRF,把我需要的頻率431,433,435,我需要的速率1.2K,2.4K,4.8K,10K......等等全部配置一邊,然後利用截下SmartRF的值,然後利用這麼一個結構體:

typedef struct
{
 u8  IOCFG2;
 u8  IOCFG1;
 u8  IOCFG0;
 u8  FIFOTHR;
 u8  SYNC1;
 u8  SYNC0;
 u8  PKTLEN;
 u8  PKTCTRL1;
 u8  PKTCTRL0;
 u8  ADDR;
 u8  CHANNR;
 u8  FSCTRL1;
 u8  FSCTRL0;
 u8  FREQ2;
 u8  FREQ1;
 u8  FREQ0;
 u8  MDMCFG4;
 u8  MDMCFG3;
 u8  MDMCFG2;
 u8  MDMCFG1;
 u8  MDMCFG0;
 u8  DEVAITN;
 u8  MCSM2;
 u8  MCSM1;
 u8  MCSM0;
 u8  FOCCFG;
 u8  BSCFG;
 u8  AGCCTRL2;
 u8  AGCCTRL1;
 u8  AGCCTRL0;
 u8  WOREVT1;
 u8  WOREVT0;
 u8  WORCTRL;
 u8  FREND1;
 u8  FREND0;
 u8  FSCAL3;
 u8  FSCAL2;
 u8  FSCAL1;
 u8  FSCAL0;
 u8  RCCTRL1;
 u8  RCCTRL0;
 u8  FSTEST;
 u8  PTEST;
 u8  AGCTEST;
 u8  TEST2;
 u8  TEST1;
 u8  TEST0;  
}Struct_RF_Reg;

做初始化

#if RF_BAUD_RATE == 2400

Struct_RF_Reg  My_RF_Config = {
 0x0B, // IOCFG2
 0x2E, // IOCFG1
 0x01, // IOCFG0
 0x07, // FIFOTHR
 0xB3, // SYNC1
 0x9C, // SYNC0
 0x40, // PKTLEN
 0x0C, // PKTCTRL1
 0x45, // PKTCTRL0
 0x00, // ADDR
 0x00, // CHANNR
 0x06, // FSCTRL1
 0x00, // FSCTRL0
#if RF_FREQUENCY == 431
 0x10, // FREQ2
 0x93, // FREQ1
 0xB1, // FREQ0
#elif RF_FREQUENCY == 433
 0x10, // FREQ2
 0xA7, // FREQ1
 0x62, // FREQ0
#elif RF_FREQUENCY == 435
 0X10,
 0XBB,
 0X13,
#endif
 0xF6, // MDMCFG4
 0x83, // MDMCFG3
 0x13, // MDMCFG2
 0x22, // MDMCFG1
 0xF8, // MDMCFG0
 0x15, // DEVIATN
 0x07, // MCSM2
 0x3C, // MCSM1
 0x18, // MCSM0
 0x16, // FOCCFG
 0x6C, // BSCFG
 0x03, // AGCCTRL2
 0x40, // AGCCTRL1
 0x91, // AGCCTRL0
 0x87, // WOREVT1
 0x6B, // WOREVT0
 0xFB, // WORCTRL
 0x56, // FREND1
 0x10, // FREND0
 0xE9, // FSCAL3
 0x2A, // FSCAL2
 0x00, // FSCAL1
 0x1F, // FSCAL0
 0x41, // RCCTRL1
 0x00, // RCCTRL0
 0x59, // FSTEST
 0x7F, // PTEST
 0x3F, // AGCTEST
 0x81, // TEST2
 0x35, // TEST1
 0x09 // TEST0
};

當然我這裡只例舉了2.4k的速率,其他只要改變宏定義就可以了。

最後調用一個

TI_CC_SPIWriteBurstReg(TI_CCxxx0_IOCFG2, &(RFConfig -> IOCFG2), 47);

函數就把47個寄存器都寫進去了,因為這47個寄存器地址都是遞增的,所以寫個Burst就搞定了,不需要一個一個寫那麼複雜。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.