⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
2个帖子/ 0新
最后一篇
POINT85.
离线
最后一次露面:2周前1年
加入:2018-06-29 15:31
休眠电流在冬眠

你好,

我一直在DA14682和DA14681上使用Hibernation函数进行一些测试。

我一直在使用电源测量文档中指定的BLE-ADV示例。我已将睡眠模式更改为“PM_Mode_Hibernation”。

当设备位于DA14681基本开发套件上时,我正在测量大约192UA的电流。

在我们的生产PCB上,我正在测量大约200UA的睡眠电流。

在我看来,有些东西不会完全睡觉,闪光灯可能?有任何想法吗?

提前致谢。

设备:
PM_DIALOG.
离线
最后一次露面:3天15小时前
职员
加入:2018-02-08 11:03
嗨point85,

嗨point85,

一般来说,为了将系统放入休眠模式,您应该确保:

  1. 所有任务都处于空闲状态
  2. 没有密集的写闪光操作
  3. 定时器处于空闲状态
  4. 没有中断活动(例如将传感器放在睡眠/断电模式下)
  5. 调试器不应附加

任何上述陈述都将阻止系统休眠,因此将发生冷启动。您可以在BLE_PERITIVELALAL示例的BLE_PERITALL_TASK.C中执行以下修改。

1.设置OS_TIMER(),以便在15秒后停止广告:

privileged_data静态os_timer hiberbation_timer;静态void hiberbation_timer_cb(os_timer timer){ble_gap_adv_stop();}

2.在ble_peripheral_task中启动计时器:

/ *在15sec * / hiberbation_timer = os_timer_create(“hibernate”,os_ms_2_ticks(15000),os_timer_fail,(void *)os_get_current_task(),hiberbation_timer_cb)之后创建计时器。os_assert(hiberbation_timer);os_timer_start(hiberbation_timer,os_timer_forever);

3.在定时器到期时,广告将停止,因此将触发Handle_evt_gap_adv_Completed(),系统将进入休眠状态。

静态void handle_evt_gap_adv_Completed(ble_evt_gap_adv_completed_t * evt){ble_reset();hw_cpm_trigger_sw_cursor();pm_set_sleep_mode(pm_mode_hibernation);}

谢谢,PM_DIALOG.