微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > TI的BLE-CC254x-1.4.0中SimpleBLEPeripheral工程示例不能休眠

TI的BLE-CC254x-1.4.0中SimpleBLEPeripheral工程示例不能休眠

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

hi,各位工程师好,

我最近再遇到从机SimpleBLEPeripheral进不了低功耗的问题,就先拿TI的示例代码来调试。板子用的是TI原厂的开发板,工程设置中开启了Power_saving,又在工程中不启动 SBP_PERIODIC_EVT事件,然后发现在以下函数

void osal_pwrmgr_powerconserve( void )
{
  uint32        next;
  halIntState_t intState;
 
  // Should we even look into power conservation
  if ( pwrmgr_attribute.pwrmgr_device != PWRMGR_ALWAYS_ON )
  {
    // Are all tasks in agreement to conserve
    if ( pwrmgr_attribute.pwrmgr_task_state == 0 )
    {
      // Hold off interrupts.
      HAL_ENTER_CRITICAL_SECTION( intState );

      // Get next time-out
      next = osal_next_timeout();

      // Re-enable interrupts.
      HAL_EXIT_CRITICAL_SECTION( intState );

      // Put the processor into sleep mode
      OSAL_SET_CPU_INTO_SLEEP( next );
    }
  }
}

pwrmgr_attribute.pwrmgr_device 一直等于 PWRMGR_ALWAYS_ON,导致进入不了低功耗。我猜测有东西没关掉一直在跑,特向各位工程师求助

现在说一下进展,我将osal_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, 100);注释掉之后,能进到if ( pwrmgr_attribute.pwrmgr_task_state == 0 )这个判断语句里面去,打断点调试来看,一直频繁进去,不断地走到这个断点,好像有什么一直在唤醒,有没有人遇到过?

TI的技术人员呢,都好几天过去了,一个回答的也没有,这是你们自己的例程

1、例程有没有修改过?

2、是否有其他开发板换块测试下?

1.唯一的修改就是注释掉了osal_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, 100) 和osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD )

2.没有换其他开发板,用的还是从TI买的板子

3.KeyFob是能进入低功耗PM3的,simpleBLEPeripheral进不去

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

网站地图

Top