如何优化示例'empty_peripheral_template'的功耗

7个职位/ 0个新职位
最后发表
hardy.chen
离线
最后看到:1年7个月前
加入:2015-03-13 04:20
如何优化示例'empty_peripheral_template'的功耗

你好,

我想基于示例'empty_peripheral_template'启动我们的应用程序。
但是,在与示例'da14580_beacon_3.40.6'进行功耗比较后,我发现有额外的2。x mA在'empty_peripheral_template'。
(注意:我已经为允许empty_peripheral_template运行到EXT_SLEEP模式设置了相应的配置)

那么,有没有人可以评论在哪里优化这个示例'empty_peripheral_template'的功耗到与'da14580_beacon_3.40.6'相同的级别?

测量在EVB 'DA14580DEVKT-B'进行。
使用SDK 5中的示例'empty_peripheral_template'。x时,IDLE电流(无RF)约为2。x马。
例如'da14580_beacon_3.40.6',空闲电流(无RF)约为0。x马。

设备:
MT_dialog
离线
最后看到:2周2天前
工作人员
加入:2015-06-08 34
嗨Hardy.chen,

嗨Hardy.chen,

你可以尝试使用我在这篇文章中提到的代码片段http://support.dialog-semiconductor.com/these-seems-bug-da14580dialogbea..。

由于MT_dialog

hardy.chen
离线
最后看到:1年7个月前
加入:2015-03-13 04:20
嗨MT_dialog,

嗨MT_dialog,

我不太明白你的意思。需要注意的是,我正在使用SDK 5.0.2中的示例'empty_peripheral_template'。
在检查SDK 5.0.2的源代码后,只有一行是为了改变广告间隔'ble_advtim_set',位于函数'lld_adv_start_patch'。

你想让我*添加*代码片段,如你建议在另一篇文章(这是试图解决非conn广告的问题,而使用信标示例)?
我应该在哪里添加它?

hardy.chen
离线
最后看到:1年7个月前
加入:2015-03-13 04:20
你好,

你好,

我发现示例'empty_peripheral_template'根本没有进入睡眠模式。这可能是IDLE状态下额外功耗的原因。
为允许它进入睡眠模式所必需的配置/更改在哪里?

MT_dialog
离线
最后看到:2周2天前
工作人员
加入:2015-06-08 34
嗨hardy.chen。

嗨hardy.chen。

在SDK5中,您可以在user_config文件夹下的user_config.h文件中更改睡眠模式。只需将app_default_sleep_mode更改为任何相应的睡眠。我以为你的睡眠是激活的(从你的第一个帖子)。至于信标优化,在之前的帖子中,我告诉你评论的功能,是设置两个ADV_xxx包之间的广告包间隔的功能,这是信标参考设计为超低功耗所做的。

由于MT_dialog

hardy.chen
离线
最后看到:1年7个月前
加入:2015-03-13 04:20
嗨MT_dialog,

嗨MT_dialog,

是的,我已经在示例'empty_peripheral_template'上设置了相应的睡眠模式。
但是,信标引用(设置发送两个ADV_xxx包之间的广告包间隔)所节省的额外功率会达到1~2mA吗?

我的计划是使用'empty_peripheral_template'作为基础并创建我自己的ibeacon应用程序。
所以,有两个必要条件:
1.低功耗的样品'DA14580_beacon_3.40.6'。
2.包含扫描响应数据的ADV_IND和ADV_NON_CONN支持。

如果我理解正确,当我试图修复1)例子'empty_peripheral_template',然后它将违反2)在下面的代码应该注释掉。
请你对你的建议再详细说明一点好吗?
--
app_advertise_mode == GAPM_ADV_NON_CONN
ble_advtim_set (500);
--

MT_dialog
离线
最后看到:2周2天前
工作人员
加入:2015-06-08 34
嗨hardy.chen,

嗨hardy.chen,

app_template中的功耗如此之高显然是因为您没有设置睡眠功能。现在睡觉了,还差1~2毫安吗?

不,你的模板和信标之间有这么多的区别不是广告包的间隔,我对你之前的帖子有点困惑ADV_SCAN_IND是的,当你试图修正1的时候,你就违反了2的当前时间值。尝试在函数ble_advtim(500)中扩展时间,以便您的广告适合扫描数据的侦听周期。你可以使用函数calculate_arch_adv_time()来找到一个合适的时间。

由于MT_dialog