微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2530 低功耗模式断电重启后后 功耗发生变化

CC2530 低功耗模式断电重启后后 功耗发生变化

时间:10-02 整理:3721RD 点击:

在使用osal_pwrmgr_task_state让一个task保持唤醒的情况下直接断电后重启,CC2530会进入低功耗模式,但功耗比正常情况下高(正常是0.4uA)。现象为电流每隔3S会跳变至12uA,然后再变回0.8uA。

另外,还有一种情况下同样会发生上面的现象:EndDevice   PM3模式下失去parent节点后,利用串口RX管脚下降沿功能唤醒IC,后会出现功耗变化。具体现象为每隔2--3S就会出现一次功耗跳变至12uA,然后再变回0.8uA。正常情况下是0.3---0.4uA。

应用层无任何周期性事件。

详细描述:

1,我开启了POWER_SAVING 编译选项,定义了RFD_RCVC_ALWAYS_ON=FALSE   初始化pwrmgr_device为PWRMGR_BATTERY(  osal_pwrmgr_init中pwrmgr_attribute.pwrmgr_device = PWRMGR_BATTERY;)未使用键盘等其他事件。

2,为使用串口,打开了HAL_UART=TRUE     HAL_UART_DMA=2 编译选项    

3,由于我的Device不需要接收zigbee数据,因此将POLL_RATE、QUEUED_POLL_RATE、RESPONSE_POLL_RATE都设置为了0.

4,在UART RX管脚设置成IO口下降沿触发,中断服务程序

HAL_ENTER_ISR();
   
    if(P0IFG & (BV(5)))
    {
        
        P0SEL  |= HAL_UART_Px_RX_TX;        // Enable Tx and Rx on P0
        IEN1   &= ~(BV(5));                 //disenable Port 0 interrupt 
        P0IEN  &= ~(BV(5));                 //(Port 0 Interrupt Mask)disenable P0_5 interrupt
         
        osal_set_event(Hal_TaskID,HAL_PWRMGR_HOLD_EVENT);//hold Hal_TaskID awake
        
       
    }
    
    /*
    Clear the CPU interrupt flag for Port_0
    PxIFG has to be cleared before PxIF
    */
    
    P0IFG &= ~(BV(5));
    P0IF  = 0;
    CLEAR_SLEEP_MODE();
    HAL_EXIT_ISR();

5:在串口回调函数里,osal_set_event(Hal_TaskID,HAL_PWRMGR_CONSERVE_EVENT);//set Hal_TaskID sleeped mode
然后再将UART RX管脚重新设置成IO口下降沿触发。

如果去掉UART相关的功能,还是否会有种情况?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top