作者:mikeliujia
作品名称:CC1100无线开发平台
用过TI的CC1100和CC2430,这里分享下ATmega16L+CC1100的无线开发平台,其实这个平台不仅仅可以使用CC1100进行无线开发,还能使用CC2500,nRF2401,nRF24L01进行无线开发,下面是开发平台实物图和电路原理图。
//**************************************************************************** //ILLUMINATE: 配置CC1100寄存器 //**************************************************************************** void WRITERFSETTINGS(void) { SPIWRITEREG(TI_CC1100_IOCFG2,0x2E); //( 0x2E)高阻抗,3状态 SPIWRITEREG(TI_CC1100_IOCFG1,0x2E); //( 0x2E)高阻抗,3状态 SPIWRITEREG(TI_CC1100_IOCFG0,0x06); //( 6) Asserts when sync word has been sent / received, and de-asserts at the end of the packet SPIWRITEREG(TI_CC1100_FIFOTHR,0x07); //设置接收、发送缓冲区门限:发送缓冲区为33;接收缓冲区为32 SPIWRITEREG(TI_CC1100_SYNC1,0xD3); //设置同步字高字节为0xD3 SPIWRITEREG(TI_CC1100_SYNC0,0x91); //设置同步字低字节为0x91 SPIWRITEREG(TI_CC1100_PKTLEN,0x3D); //设置通讯包最大长度为61个字节 SPIWRITEREG(TI_CC1100_PKTCTRL1,0x04); //设置数据包后面包含两个状态字节,无地址检测 SPIWRITEREG(TI_CC1100_PKTCTRL0,0x45); //设置数据白化开启;正常模式,通过FIFOS发送接收;CRC检测有效;设置为可变数据包长度 SPIWRITEREG(TI_CC1100_ADDR,0x00); //设置模块地址为0X00 SPIWRITEREG(TI_CC1100_CHANNR,0x00); //设置CHANNEL NUMBER为0X01 SPIWRITEREG(TI_CC1100_FSCTRL1,0x06); //设置频率合成器控制寄存器,STUDIO软件自动生成 SPIWRITEREG(TI_CC1100_FSCTRL0,0x00); //设置频率合成器控制寄存器 SPIWRITEREG(TI_CC1100_FREQ2,0x10); //RF频率为433MHZ SPIWRITEREG(TI_CC1100_FREQ1,0xA7); //RF频率为433MHZ SPIWRITEREG(TI_CC1100_FREQ0,0x62); //RF频率为433MHZ SPIWRITEREG(TI_CC1100_MDMCFG4,0xC9); //配置RF滤波带宽为100KHZ,波特率19200 SPIWRITEREG(TI_CC1100_MDMCFG3,0x83); //配置通讯波特率为9.6kps SPIWRITEREG(TI_CC1100_MDMCFG2,0x0B); //设置调制模式为FSK,使能人工调制,同步字设置16位检测模式 SPIWRITEREG(TI_CC1100_MDMCFG1,0x22); //设置前向纠错检测FEC无效,设置前导字节数为2, SPIWRITEREG(TI_CC1100_MDMCFG0,0xF8); //设置信道空间为199.951kHZ SPIWRITEREG(TI_CC1100_DEVIATN,0x34); //配置频率偏移为19KHZ SPIWRITEREG(TI_CC1100_MCSM2,0x03); //Trxtimeout=14ms SPIWRITEREG(TI_CC1100_MCSM1,0x30); //主通讯控制状态机配置,Return to IDLE state upon leaving either TX or RX SPIWRITEREG(TI_CC1100_MCSM0,0x18); //主通讯控制状态机配置,每4次IDLE到RX状态切换自动校准一次 SPIWRITEREG(TI_CC1100_FOCCFG,0x16); //频率偏移补偿配置,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_BSCFG,0x6C); //位同步配置,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_AGCCTRL2,0x43); //AGC 控制寄存器配置,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_AGCCTRL1,0x40); //AGC 控制寄存器配置,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_AGCCTRL0,0x91); //AGC 控制寄存器配置,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_WOREVT1,0x19); //高字节事件0 工作暂停,设置Tevent0=6秒钟 0D AN SPIWRITEREG(TI_CC1100_WOREVT0,0x64); //高字节事件0 工作暂停,设置Tevent0=6秒钟 80 AN SPIWRITEREG(TI_CC1100_WORCTRL,0xF9); //WOR控制设置,使能RC校准,WOR_RES = 1 SPIWRITEREG(TI_CC1100_FREND1,0x56); //前端RX配置,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_FREND0,0x10); //前端TX配置,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_FSCAL3,0xA9); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_FSCAL2,0x2A); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_FSCAL1,0x00); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_FSCAL0,0x11); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_FSTEST,0x59); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_PTEST,0x7F); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_AGCTEST,0x3F); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_TEST2,0x81); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_TEST1,0x35); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(TI_CC1100_TEST0,0x0B); //频率合成器校准,值由SmartRF Studio软件给出 SPIWRITEREG(0x2f,0x00); //FSCAL0 寄存器地址通过W寄存器放到SPIADDR }