cc2420 recieve.docx
- 文档编号:25270567
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:22
- 大小:20.82KB
cc2420 recieve.docx
《cc2420 recieve.docx》由会员分享,可在线阅读,更多相关《cc2420 recieve.docx(22页珍藏版)》请在冰豆网上搜索。
cc2420recieve
Recieve
#ifndef_CC2420CONST_H
#define_CC2420CONST_H
#defineCC2420_SNOP0x00
#defineCC2420_SXOSCON0x01
#defineCC2420_STXCAL0x02
#defineCC2420_SRXON0x03
#defineCC2420_STXON0x04
#defineCC2420_STXONCCA0x05
#defineCC2420_SRFOFF0x06
#defineCC2420_SXOSCOFF0x07
#defineCC2420_SFLUSHRX0x08
#defineCC2420_SFLUSHTX0x09
#defineCC2420_SACK0x0A
#defineCC2420_SACKPEND0x0B
#defineCC2420_SRXDEC0x0C
#defineCC2420_STXENC0x0D
#defineCC2420_SAES0x0E
#defineCC2420_MAIN0x10
#defineCC2420_MDMCTRL00x11
#defineCC2420_MDMCTRL10x12
#defineCC2420_RSSI0x13
#defineCC2420_SYNCWORD0x14
#defineCC2420_TXCTRL0x15
#defineCC2420_RXCTRL00x16
#defineCC2420_RXCTRL10x17
#defineCC2420_FSCTRL0x18
#defineCC2420_SECCTRL00x19
#defineCC2420_SECCTRL10x1A
#defineCC2420_BATTMON0x1B
#defineCC2420_IOCFG00x1C
#defineCC2420_IOCFG10x1D
#defineCC2420_MANFIDL0x1E
#defineCC2420_MANFIDH0x1F
#defineCC2420_FSMTC0x20
#defineCC2420_MANAND0x21
#defineCC2420_MANOR0x22
#defineCC2420_AGCCTRL0x23
#defineCC2420_AGCTST00x24
#defineCC2420_AGCTST10x25
#defineCC2420_AGCTST20x26
#defineCC2420_FSTST00x27
#defineCC2420_FSTST10x28
#defineCC2420_FSTST20x29
#defineCC2420_FSTST30x2A
#defineCC2420_RXBPFTST0x2B
#defineCC2420_FSMSTATE0x2C
#defineCC2420_ADCTST0x2D
#defineCC2420_DACTST0x2E
#defineCC2420_TOPTST0x2F
#defineCC2420_RESERVED0x30
#defineCC2420_TXFIFO0x3E
#defineCC2420_RXFIFO0x3F
#defineCC2420_RAM_SHORTADR0x16A
#defineCC2420_RAM_PANID0x168
#defineCC2420_RAM_IEEEADR0x160
#defineCC2420_RAM_CBCSTATE0x150
#defineCC2420_RAM_TXNONCE0x140
#defineCC2420_RAM_KEY10x130
#defineCC2420_RAM_SABUF0x120
#defineCC2420_RAM_RXNONCE0x110
#defineCC2420_RAM_KEY00x100
#defineCC2420_RAM_RXFIFO0x080
#defineCC2420_RAM_TXFIFO0x000
//MDMCTRL0RegisterBitPositions
#defineCC2420_MDMCTRL0_FRAME13//0:
rejectreservedframetypes,1=accept
#defineCC2420_MDMCTRL0_PANCRD12//0:
notaPANcoordinator
#defineCC2420_MDMCTRL0_ADRDECODE11//1:
enableaddressdecode
#defineCC2420_MDMCTRL0_CCAHIST8//3bits(8,9,10):
CCAhysterisindb
#defineCC2420_MDMCTRL0_CCAMODE6//2bits(6,7):
CCAtriggermodes
#defineCC2420_MDMCTRL0_AUTOCRC5//1:
generate/chkCRC
#defineCC2420_MDMCTRL0_AUTOACK4//1:
Ackvalidpackets
#defineCC2420_MDMCTRL0_PREAMBL0//4bits(0..3):
Preamblelength
//MDMCTRL1RegisterBitPositions
#defineCC2420_MDMCTRL1_CORRTHRESH6//5bits(6..10):
correlatorthreshold
#defineCC2420_MDMCTRL1_DEMOD_MODE5//0:
lockfreqafterpreamblematch,1:
continousudpate
#defineCC2420_MDMCTRL1_MODU_MODE4//0:
IEEE802.15.4
#defineCC2420_MDMCTRL1_TX_MODE2//2bits(2,3):
0:
usebufferedTXFIFO
#defineCC2420_MDMCTRL1_RX_MODE0//2bits(0,1):
0:
usebufferedRXFIFO
//RSSIRegisterBitPositions
#defineCC2420_RSSI_CCA_THRESH8//8bits(8..15):
2'scomplCCAthreshold
//TXCTRLRegisterBitPositions
#defineCC2420_TXCTRL_BUFCUR14//2bits(14,15):
Txmixerbufferbiascurrent
#defineCC2420_TXCTRL_TURNARND13//waittimeafterSTXONbeforexmit
#defineCC2420_TXCTRL_VAR11//2bits(11,12):
Varactorarraysettings
#defineCC2420_TXCTRL_XMITCUR9//2bits(9,10):
Xmitmixercurrents
#defineCC2420_TXCTRL_PACUR6//3bits(6..8):
PAcurrent
#defineCC2420_TXCTRL_PADIFF5//1:
DiffPA,0:
SingleendedPA
#defineCC2420_TXCTRL_PAPWR0//5bits(0..4):
OutputPAlevel
//MaskfortheCC2420_TXCTRL_PAPWRregisterforRFpower
#defineCC2420_TXCTRL_PAPWR_MASK(0x1F< //RXCTRL0RegisterBitPositions #defineCC2420_RXCTRL0_BUFCUR12//2bits(12,13): Rxmixerbufferbiascurrent #defineCC2420_RXCTRL0_HILNAG10//2bits(10,11): Highgain,LNAcurrent #defineCC2420_RXCTRL0_MLNAG8//2bits(8,9): Medgain,LNAcurrent #defineCC2420_RXCTRL0_LOLNAG6//2bits(6,7): Logain,LNAcurrent #defineCC2420_RXCTRL0_HICUR4//2bits(4,5): MainhighLNAcurrent #defineCC2420_RXCTRL0_MCUR2//2bits(2,3): MainmedLNAcurrent #defineCC2420_RXCTRL0_LOCUR0//2bits(0,1): MainlowLNAcurrent //RXCTRL1RegisterBitPositions #defineCC2420_RXCTRL1_LOCUR13//RefbiascurrenttoRxbandpassfilter #defineCC2420_RXCTRL1_MIDCUR12//RefbiascurrenttoRxbandpassfilter #defineCC2420_RXCTRL1_LOLOGAIN11//LANlowgainmode #defineCC2420_RXCTRL1_MEDLOGAIN10//LANlowgainmode #defineCC2420_RXCTRL1_HIHGM9//Rxmixers,higainmode #defineCC2420_RXCTRL1_MEDHGM8//Rxmixers,higainmode #defineCC2420_RXCTRL1_LNACAP6//2bits(6,7)SelectsLANvaractorarraysetting #defineCC2420_RXCTRL1_RMIXT4//2bits(4,5)Receivermixeroutputcurrent #defineCC2420_RXCTRL1_RMIXV2//2bits(2,3)VCMlevel,mixerfeedback #defineCC2420_RXCTRL1_RMIXCUR0//2bits(0,1)Receivermixercurrent //FSCTRLRegisterBitPositions #defineCC2420_FSCTRL_LOCK14//2bits(14,15)#ofclocksforsynch #defineCC2420_FSCTRL_CALDONE13//Readonly,=1ifcaldonesincefreqsynthturnedon #defineCC2420_FSCTRL_CALRUNING12//Readonly,=1ifcalinprogress #defineCC2420_FSCTRL_LOCKLEN11//Synchwindowpulsewidth #defineCC2420_FSCTRL_LOCKSTAT10//Readonly,=1iffreqsynthesizerisloced #defineCC2420_FSCTRL_FREQ0//10bits,setoperatingfrequency //SECCTRL0RegisterBitPositions #defineCC2420_SECCTRL0_PROTECT9//ProtectenableRxfifo #defineCC2420_SECCTRL0_CBCHEAD8//Define1stbyteofCBC-MAC #defineCC2420_SECCTRL0_SAKEYSEL7//Standalonekeyselect #defineCC2420_SECCTRL0_TXKEYSEL6//Txkeyselect #defineCC2420_SECCTRL0_RXKEYSEL5//Rxkeyselect #defineCC2420_SECCTRL0_SECM2//2bits(2..4)#ofbytesinCBC-MAXauthfield #defineCC2420_SECCTRL0_SECMODE0//Securitymode //SECCTRL1RegisterBitPositions #defineCC2420_SECCTRL1_TXL8//7bits(8..14)Txin-linesecurity #defineCC2420_SECCTRL1_RXL0//7bits(0..7)Rxin-linesecurity //BATTMONRegisterBitPositions #defineCC2420_BATTMON_OK6//Readonly,battervoltageOK #defineCC2420_BATTMON_EN5//Enablebatterymonitor #defineCC2420_BATTMON_VOLT0//5bits(0..4)Batterytogglevoltage //IOCFG0RegisterBitPositions #defineCC2420_IOCFG0_BCNACCEPT11 #defineCC2420_IOCFG0_FIFOPOL10//Fifosignalpolarity #defineCC2420_IOCFG0_FIFOPPOL9//FifoPsignalpolarity #defineCC2420_IOCFG0_SFD8//SFDsignalpolarity #defineCC2420_IOCFG0_CCAPOL7//CCAsignalpolarity #defineCC2420_IOCFG0_FIFOTHR0//7bits,(0..6)#ofRxbytesinfifototrgfifop //IOCFG1RegisterBitPositions #defineCC2420_IOCFG1_HSSD10//2bits(10,11)HSSDmoduleconfig #defineCC2420_IOCFG1_SFDMUX5//5bits(5..9)SFDmultiplexerpinsettings #defineCC2420_IOCFG1_CCAMUX0//5bits(0..4)CCAmultiplexepinsettings //CurrentParameterArrrayPositions enum{ CP_MAIN=0, CP_MDMCTRL0, CP_MDMCTRL1, CP_RSSI, CP_SYNCWORD, CP_TXCTRL, CP_RXCTRL0, CP_RXCTRL1, CP_FSCTRL, CP_SECCTRL0, CP_SECCTRL1, CP_BATTMON, CP_IOCFG0, CP_IOCFG1 }; #ifndefCC2420_DEF_RFPOWER #defineCC2420_DEF_RFPOWER0x1F #endif #ifndefCC2420_DEF_CHANNEL #defineCC2420_DEF_CHANNEL15//channelselect #endif #defineCC2420_DEF_FCF_LO0x08 #defineTOS_BCAST_ADDR0xffff #defineCC2420_DEF_FCF_HI_ACK0x21//withACK //STATUSBitPosititions #defineCC2420_XOSC16M_STABLE6 #defineCC2420_TX_UNDERFLOW5 #defineCC2420_ENC_BUSY4 #defineCC2420_TX_ACTIVE3 #defineCC2420_LOCK2 #defineCC2420_RSSI_VALID1 #defineCMD_READ(0x40) #endif/*_CC2420CONST_H*/ #include"port_config_CC2420.h" #include"cc2420const.h" #include volatileintgCurrentParameters[14]; voidCC2420_Set_PIN_DIR(void){ DIROUT_PHY_RESETn; DIROUT_PHY_VREG_EN; DIROUT_PHY_CSn; SET_PHY_RESETn (1); SET_PHY_VREG_EN(0); SET_PHY_CSn (1); DIRIN_PHY_FIFOP; DIRIN_PHY_GIO0; DIRIN_PHY_SFD; DIRIN_PHY_GIO1;} voiddelay(void) {inti;for(i=0;i<1000;i++);} intisTxIntrPending()//TXFIFOEMPTY返回true {if(IFG2&UTXIFG1){IFG2&=~UTXIFG1;return1;} return0;} intisRxIntrPending()//RXFIFOFULL返回true {if(IFG2&URXIFG1){IFG2&=~URXIFG1;return1;} return0;} voidSPI_Tx(unsignedchardata)//SPItx {while((UTCTL1&0x01)! =0x01);//等待直到没有数据发送 TXBUF1=data;} unsignedcharSPI_Rx()//SPIrx {unsignedchardata;data=RXBUF1;returndata;} voidHPLCC2420_cmd(charaddr){ P6OUT&=~0x04; isTxIntrPending();SPI_Rx();SPI_Tx(addr); while(! (isRxIntrPending()));P6OUT|=0x04;} voidhalRfWaitForCrystalOscillator(){charspiStatusByte; PHY_Selected();//CS=0 //PolltheSPIstatusbyteuntilthecrystaloscillatorisstable do{SPI_Tx(CC2420_SNOP);spiStatusByte=SPI_Rx();} while(! (spiStatusByte&0x40));PHY_Deselected();//CS=1} /***Read16-bitdata**@return16-bitregistervalue*/ intHPLCC2420_read(charaddr){intdata=0;PHY_Selected(); isTxIntrPending();SPI_Rx();SPI_Tx(addr|0x40); while(! isRxIntrPending());SPI_Rx();SPI_Tx(0); while(! (isRxIntrPending()));data=SPI_Rx(); SPI_Tx(0);while(! (isRxIntrPending())); data=((data<<8)&0x0FF00)|(SPI_Rx()&0x0FF); PHY_Deselected();returndata;} voidflushRxfifo(void) { HPLCC2420_read(CC2420_RXFIFO);//flushRxfifo HPLCC2420_cmd(0x08);//FASTSPI_STROBE(CC2420_SFLUSHRX); HPLCC2420_cmd(0x08);//FASTSPI_STROBE(CC2420_SFLUSHRX); } voidRfRegInit(void){ //Setdefaultparameters gCurrentParameters[CP_MAIN]=0xf801; /*setupREG_MDMCTRL0*/ //SetAUTOACKbitinMDMCTRL0register. //15: 14='00'=Reserved //13='0'=Reservedframesarerejected //12='? '='1'ifthisiscoordinator,'0'ifotherwise //11='1'=Addressdecodingisenabled //10: 8='010'=CCAHysteresisinDB-defaultvalue //7: 6='11'=CCA=1,whenRSSI_VAL //5='1'=AutoCRC //
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- cc2420 recieve