在做CC1101的wor时遇到点问题:发送端连续发送60字节长度数据,发送速率为28.7KBaud,接收端使用wor,GDO2引脚触发中断唤醒MSP430F5324。1、现发现wor可以实现唤醒,但唤醒时间严重偏长,时间不定大约有6——8s,设定EVENT0为1.89s,T Rx timeout大约39ms。2、开启wor后(发送端此时没发送数据,无法退出LPM3)整个板子功耗在5ua左右,但是有很短一段时间会跳到300ua左右,请问下这是wor由空闲转为rx模式时造成的嘛?300ua电流正常吗?
以下是我的寄存器配置,请TI员工帮我看下哪地方出问题,万分感谢!!!
0x08, // FSCTRL1 Frequency synthesizer control.
0x00, // FSCTRL0 Frequency synthesizer control.
0x10, // FREQ2 Frequency control word, high byte.
0xA7, // FREQ1 Frequency control word, middle byte.
0x62, // FREQ0 Frequency control word, low byte.
0xFA, // MDMCFG4 Modem configuration.
0x21, // MDMCFG3 Modem configuration.
0x03, // MDMCFG2 Modem configuration.
0x22, // MDMCFG1 Modem configuration.
0xF8, // MDMCFG0 Modem configuration.
0x00, // CHANNR Channel number.
0x34, // DEVIATN Modem deviation setting (when FSK modulation is enabled).
0x56, // FREND1 Front end RX configuration.
0x10, // FREND0 Front end RX configuration.
0x06, // MCSM2
0x00, // MCSM1
0x18, // MCSM0 Main Radio Control State Machine configuration.
0x16, // FOCCFG Frequency Offset Compensation Configuration.
0x6C, // BSCFG Bit synchronization Configuration.
0x43, // AGCCTRL2 AGC control.
0x40, // AGCCTRL1 AGC control.
0x91, // AGCCTRL0 AGC control.
0xE9, // FSCAL3 Frequency synthesizer calibration.
0x2A, // FSCAL2 Frequency synthesizer calibration.
0x00, // FSCAL1 Frequency synthesizer calibration.
0x1f, // FSCAL0 Frequency synthesizer calibration.
0x59, // FSTEST Frequency synthesizer calibration.
0x81, // TEST2 Various test settings.
0x35, // TEST1 Various test settings.
0x09, // TEST0 Various test settings.
0x06, // IOCFG2 GDO2 output pin configuration. //06
0x06, // IOCFG0 GDO0 output pin configuration. Refer to SmartRF?Studio User Manual for detailed pseudo register explanation.
0x05, // PKTCTRL1 Packet automation control.
0x45, // PKTCTRL0 Packet automation control.
0x00, // ADDR Device address.
0xff, // PKTLEN Packet length.
0xff, // WOREVT1
0xfa, // WOREVT0
0x48, // WORCTRL
0xD3, // SYNC1
0x91, // SYNC0
//开启OWR
halSpiStrobe(CCxxx0_SWORRST); // Resets the real time clock
halSpiStrobe(CCxxx0_SIDLE);
halSpiStrobe(CCxxx0_SWOR); // Starts Wake-on-Radi
// GDO2(P2.6) P2口中断
P2SEL &=~ BIT6;
P2DIR &=~ BIT6;
P2IFG &= ~BIT6;
P2IES &=~ BIT6; //
P2IE |= BIT6;
#pragma vector = PORT2_VECTOR
__interrupt void GDO_2()
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
INT8U len=60; //接收最大数据长度
if(halRfReceivePacket(RxBuf_CC1101,&len)) // 接收数据包判断
{
LPM3_EXIT;
}
P2IFG &= ~BIT6;
}