你好,
我正在使用USB开发工具包,为了减少功耗,我们正在尝试从下面的链接中加入一种睡眠模式
http://lpccs-docs.dialog-semiconductor.com/DA14531_Sleep_Mode + /介绍……
我的要求是,
1.在每100毫秒的周期内,它应休眠50毫秒。(剩余的50毫秒将进行adc读取并更新到ble)
2.通过BLE计时器它应该醒了。
您可以为我提供以上约束的一个例子。
谢谢提前
巴拉吉。
你好,
我正在使用USB开发工具包,为了减少功耗,我们正在尝试从下面的链接中加入一种睡眠模式
http://lpccs-docs.dialog-semiconductor.com/DA14531_Sleep_Mode + /介绍……
我的要求是,
1.在每100毫秒的周期内,它应休眠50毫秒。(剩余的50毫秒将进行adc读取并更新到ble)
2.通过BLE计时器它应该醒了。
您可以为我提供以上约束的一个例子。
谢谢提前
巴拉吉。
你好,巴拉吉,
选择三个不同模式之一后,SDK6管理SleepMode。在您的情况下,最佳模式将延长睡眠状态。设置此模式时(根据SleepMode教程)设备将自动唤醒以执行任何BLE事务 - 您不必在代码中执行任何操作以确保正确的BLE唤醒。
就常规ADC活动而言,您可以选择使用app_easy_timer触发读数,或者您可以将ADC绑定到每个BLE事件的尾部。您可以在此处找到有关如何在此处使用app_easy_timer的说明:http://lpccs-docs.dialog-semiconductor.com/Tutorial_SDK6/timer.html
将ADC读数绑定到每个BLE事件的末尾可能会稍微更节能,因为它限制了唤醒的数量。你可以在你的头文件中定义一个宏函数,比如user_myproject .h:
在这个文件中,还可以为函数添加一个原型:
最后在user_myproj.c中,在此函数中实现您的ADC。
我希望这有帮助。
/ MHv
嗨mhv,
感谢您的快速回复,我会尝试调查它,只需进行后续查询,我需要在ble时为每100毫秒实现相同的ADC操作未连接.my广告间隔是687.5ms,广告超时是3分钟。广告周期仅在用户按下按钮时重新启动,直到无线电应保持关闭。是有可能的“延长睡眠"如果如你所述BLE已连接"深度睡眠“当没有连接BLE时。备用建议是相同的。
提前谢谢!
Br,
巴拉。
你好,巴拉吉,
这样就剩下app_easy_timer,这是最容易实现的。对于需要每100ms唤醒一次(在您的情况下执行ADC读数)的设备来说,延长睡眠是最低功耗的解决方案。从深度睡眠中醒来需要额外的能量,以便从OTP复制到RAM执行。如果您的应用程序代码处于flash状态,那么深度睡眠仅对几天或几周的睡眠时间有用。
请记住,睡眠由SDK管理。除非:
/ MHv
嗨mhv,
我接受了ble_app_睡眠模式项目,并在中配置了一个app_简易计时器user_sleepmode.c.
在这个ble_timer_wake()里面
我制作了5秒的BLE ADV超时,睡眠时间为10秒,唤醒后。它按预期工作。
现在我有一个用户应用程序任务,它在下面的user\u app\u回调中配置
.app_on_set_dev_config_complete = user_on_set_dev_config_complete
创建的函数原型和定义如下
我担心的是,如果应用程序是广告,就会延迟执行上述任务,但当ble处于长时间睡眠时,它会像预期的那样工作。什么可能是可能的错误。
我需要知道一旦adv停止,睡眠是如何实现的,从下面的代码段中引用。
1 .主循环如何设置睡眠模式?
2.如果将BLE_APP_PRESENT禁用应用程序以输入睡眠?
提前谢谢,
Br,
巴拉吉。
嗨Belaji,
蓝牙活动的优先级高于任何用户应用程序。这意味着有时您的app_easy_timer会稍后触发。在实时执行附近实现的唯一方法是停止所有蓝牙LE活动(没有广告,无连接)。
睡眠实现是SDK中最复杂的部分,并且完全从用户抽象出来。超出论坛的范围,可以解释这一点的复杂细节。如前所述的回复,您需要了解的只是睡眠的就是您可以设置默认操作模式,并且设备将在何时睡眠状态。请看看“使用SDK6开始”教程我之前提到的。在该教程中,您可以找到关于睡眠模式所需的所有内容。
仅当您在GTL模式下使用设备时(您不在GTL模式下),未定义的可编程应用程序才相关,因此请保持原样。
/ MHv
嗨mhv,
感谢您的详细回复。就像你说的,当没有广告或应用程序没有连接。用户应用程序按照预期执行。但是我们的产品要求没有达到。我的邮箱号:balaji.s@pmsind.com..我可以分享我们的需求,经过4个月的开发,我们被困在了这里。我们需要对SDK稍加修改的支持。如果这个问题没有解决,我们将被迫更改BLE模块。到目前为止,你的产品是很棒的,记住我们有我们的智能拐杖产品(我们选择使用da14531的ble设计)到目前为止销售了100K单位。请考虑我的请求,并尽快回复。
谢谢提前
布尔
巴拉吉
嗨mhv,
当我设置睡眠模式时
在user_config.h和项目文件中是ble_sleepmode项目来自SDK。
超时后,它进入睡眠(如pd_sys已关闭),如文档所述,我们可以使用多个选项唤醒,因此我更喜欢BLE Timer
我在用户\应用\回调中配置了一个BLE定时器
设备睡觉,但没有从睡梦中醒来。如何使用RTC /定时器1 / BLE定时器唤醒。为我分享一个小片段。
设备输入睡眠时是否已取消用户应用程序定时器?
谢谢提前
Br,
巴拉吉
你好,巴拉吉,
我阅读了整个对话并就此声明:
>>当BLE未连接时,我需要每100毫秒实现相同的adc操作。我的广告间隔是687.5毫秒,广告超时是3分钟。
当设备配置为延长睡眠模式时,它将在间隔(广告或连接间隔)之间睡眠。在睡眠模式下,所有外围域都断电,以便系统消耗较低的电源。因此,如果系统处于延长睡眠模式,这意味着不可能使用包括ADC在内的任何外围模块。
作为MHV_Dialog所提到的,要定期唤醒它,应使用app_easy_timer()。此API正在使用BLE定时器,因此在扩展睡眠模式下有效。您能否请检查App_easy_Timer()中注册的回调是否已进行Triggreed?
>>>设备睡觉,但没有从睡梦中醒来。如何使用RTC /定时器1 / BLE定时器唤醒。
哪个是睡眠模式?睡着睡了吗?
谢谢,PM_DIALOG.