未进入睡眠模式-DA1469x

了解更多常见问题教程

7个职位/0个新职位
最后一篇文章
琪纳尔
离线
最后一次见到:1周4天前
已加入:2020-09-23 08:58
未进入睡眠模式-DA1469x

你好Dialog,

如果你能帮我解决一个与睡眠和醒来有关的问题,那就太好了。

我已经配置睡眠模式和唤醒通过唤醒控制器与GPIO 0\ U 12。但我无法验证设备是否进入睡眠模式,我也尝试过测量电流消耗,但没有看到电流的任何变化。

main.c,sys\u init(),

cm\系统\时钟\设置(sysclk\ XTAL32M);

///*设置所需的睡眠模式。*/
pm_set_wakeup_mode(true);/*'false'-->不要等待XTAL32M,如果XTAM32M还没有准备好,就开始用RC32M运行代码*/
pm\睡眠\模式\设置(pm\模式\扩展\睡眠);
pm\设置\系统\唤醒\模式(pm\系统\唤醒\模式\快速);

==>通过gpio子块唤醒,

静态无效唤醒\u中断\u cb(无效)
{
hw_wkup_reset_interrupt();

uint32\t状态;
/*读取端口0的状态*/
status=hw\u wkup\u get\u status(hw\u GPIO\u PORT\u 0);
if(状态&(1</*通知主要任务*/
来自ISR的OS\u TASK\u NOTIFY\u(acc\u main\u h、acc\u TASK\u NOTIFY、OS\u NOTIFY\u SET\u位);

/*清除闩锁状态*/
hw_wkup_clear_status(hw_GPIO_PORT_0,(1<}
}

静态void LIS2\u WakeupEventsTask(void*pvParameters)
{
国际号码;
OS\ U底座\类型ret;
uint32\t uld值;
lis2de12\u int1\u src\u t src;

enableWakeUpDetect(li2de12\u hdl);

hw\u wkup\u init(空);

hw\u wkup\u gpio\u configure\u pin(hw\u gpio\u PORT\u 0,hw\u gpio\u pin\u 12,true,hw\u wkup\u pin\u STATE\u HIGH);
硬件\工作\寄存器\ gpio \ p0 \中断(唤醒\中断\ cb,1);

/*启用WKUP控制器的中断*/
hw_wkup_enable_irq();

/*注册看门狗监视的ble\u多链路任务*/
wdog\u id=sys\u watchdog\u register(假);

对于(;;){

printf(“LIS2\u WakeupEventsTask任务\r\n”);

/*在每个循环上通知看门狗*/
系统看门狗通知(wdog id);

/*阻止操作系统时挂起看门狗\u任务\u通知\u等待()*/
系统看门狗挂起(wdog\u id);

/*等待任何通知位,然后将其全部清除*/
ret=OS\u TASK\u NOTIFY\u WAIT(0,OS\u TASK\u NOTIFY\u ALL\u BITS,&ulNotifiedValue,OS\u TASK\u NOTIFY\u FOREVER);

/*这必须永远阻止,直到收到任务通知。所以
返回值必须为OS\u TASK\u NOTIFY\u SUCCESS*/
OS\u ASSERT(ret==OS\u TASK\u NOTIFY\u SUCCESS);

/*在轮询模式下读取INT引脚1
*或读取src状态寄存器
*/
if(ulNotifiedValue和ACC任务通知)
{
lis2de12\u int1\u gen\u source\u get(li2de12\u hdl和src);
如果(src.xh文件|| src.yh公司|| src.zh公司)
{
acc\ U flag\ U h=假;
hw_gpio_set_inactive(hw_gpio_PORT_0,hw_gpio_PIN_24);//红色开启
硬件gpio pad latch enable(硬件gpio端口0,硬件gpio引脚24);
hw\ U gpio\ pad\ U latch\ U disable(hw\ U gpio\ U PORT\ U 0,hw\ U gpio\ U PIN\ U 24);
enableWakeUpDetect(li2de12\u hdl);
}
其他的
{
hw_gpio_set_active(hw_gpio_PORT_0,hw_gpio_PIN_24);//红色关闭
硬件gpio pad latch enable(硬件gpio端口0,硬件gpio引脚24);
hw\ U gpio\ pad\ U latch\ U disable(hw\ U gpio\ U PORT\ U 0,hw\ U gpio\ U PIN\ U 24);
启用InactivityDetect(li2de12\u hdl);

acc\ U flag\ U h=真;

ble_gap_adv_stop();
ble_gap_scan_stop();

pm\u sleep\u mode\u set(pm\u mode\u休眠);
}
}

/*主要应用*/
系统看门狗通知和恢复(wdog id);
}

}

gpio唤醒工作正常,但设备没有进入任何睡眠模式?

为了我的要求,我也停止了BLE活动。

谢谢,

兹纳尔。

关键词:
设备:
琪纳尔
离线
最后一次见到:1周4天前
已加入:2020-09-23 08:58
你好Dialog,

你好Dialog,

请回答这将有助于我。

设备不会休眠,而且我测量的电流也没有变化。

读数如28.3334mA

谢谢,

PM\U对话框
离线
最后一次见到:7小时24分钟前
工作人员
已加入:2018-02-08 11:03
你好,Zinal,

你好,Zinal,

你能分享一下耗电量的快照吗?您可以使用SmartSnippets工具箱中的Power Profiler。我希望看到BLE活动停止,设备进入睡眠模式。因此,如果我理解正确的话,您是在广告停止时尝试将系统置于休眠模式。

如果设备正在做广告,为什么要使用ble\u gap\u scan\u stop()?

在pm\u sleep\u mode\u set(pm\u mode\u hibernation)中添加断点;并在调试模式下运行它。BKPT击中了吗?

执行ble\u gap\u adv\u stop()时,如果设备停止播发,则应用程序将收到ble\u EVT\u gap\u adv\u COMPLETED事件。此事件被ble\u adv\u demo\u任务中的开关(hdr->evt\u code)捕获,因此将触发handle\u evt\u gap\u adv\u completed()。你回电话是干什么的?请在那个地方将设备设为休眠。

休眠模式是运送模式,所以为了使系统进入休眠状态,你应该确保你没有任何活动与闪存,外设等。

为此,您应注意:

  • 所有任务都处于空闲状态
  • 无密集写入闪存操作
  • 定时器处于空闲状态
  • 无中断活动:将所有传感器置于休眠/断电模式(如果您的设计中有传感器)

谢谢,下午好

琪纳尔
离线
最后一次见到:1周4天前
已加入:2020-09-23 08:58
你好Dialog,

你好Dialog,

我试过了,你让我测试,但应用程序没有收到BLE\u EVT\u GAP\u ADV\u COMPLETED event in also noi set in that callback sleep mode also but not working。

你能告诉我怎样才能停止像这样的活动吗

所有任务都处于空闲状态

无闪存操作

定时器处于空闲状态

没有爆发活动。

抱歉,我问这个问题,但我不明白这一点,而且我是第一次这样做,所以它不是geeting它。

我的要求是,如果没有移动和/或没有灯光,通过睡觉来降低功耗。

所以我通过一个唤醒控制器做了动作检测,你可以在代码里看到。

让设备进入睡眠模式的下一步我还不明白。

谢谢,

兹纳尔。

PM\U对话框
离线
最后一次见到:7小时24分钟前
工作人员
已加入:2018-02-08 11:03
你好,Zinal,

你好,Zinal,

你用SDK的哪个项目来测试这个?您提到设备停止广告,因此您应该获得BLE\u EVT\u GAP\u ADV\u COMPLETED事件。请同时使用SS工具箱中的Power Profiler,并共享一个显示设备停止广告的屏幕截图。

谢谢,下午好

琪纳尔
离线
最后一次见到:1周4天前
已加入:2020-09-23 08:58
你好Dialog,

你好Dialog,

抱歉,迟了回复。

我正在为这个项目使用Wira-10.440.8.6sdk。

你解释的方式,我已经这样做了,但我仍然得到最初的峰值电流高约25.0462毫安和平均电流我得到2.5毫安,而广告停止。

我已经附上电源档案器的SS请找到它并检查它。

是否有其他API应该调用或需要做的其他更改??

谢谢,

兹纳尔。

PM\U对话框
离线
最后一次见到:7小时24分钟前
工作人员
已加入:2018-02-08 11:03
你好,Zinal,

你好,Zinal,

你能试着用SDK中的ble\u adv示例来复制它吗?设置停止播发的时间,然后将设备配置为休眠模式。现在的耗电量是多少?

谢谢,下午好