你好,
我使用的USB开发工具包,以尽量减少功耗,我们正试图纳入其中一个睡眠模式从下面的链接
http://lpccs docs.dialog semiconductor.com/DA14531\u Sleep\u Mode+/introduct。。。
我的要求是,
1在每100毫秒的周期中,它应该休眠50毫秒(剩下的50毫秒将进行adc读取并更新到ble)
2通过可编程定时器它应该醒了。
你能给我举一些以上限制的例子吗。
提前谢谢
巴拉吉。
你好,
我使用的USB开发工具包,以尽量减少功耗,我们正试图纳入其中一个睡眠模式从下面的链接
http://lpccs docs.dialog semiconductor.com/DA14531\u Sleep\u Mode+/introduct。。。
我的要求是,
1在每100毫秒的周期中,它应该休眠50毫秒(剩下的50毫秒将进行adc读取并更新到ble)
2通过可编程定时器它应该醒了。
你能给我举一些以上限制的例子吗。
提前谢谢
巴拉吉。
你好,巴拉吉,
在您选择三种不同模式中的一种后,SDK6将管理睡眠模式。在您的情况下,最佳模式是延长睡眠时间。设置此模式后(根据睡眠模式教程),设备将自动唤醒以执行任何BLE事务—您不必在代码中执行任何操作来确保正确的BLE唤醒。
就您的常规ADC活动而言,您可以选择使用app\u easy\u计时器触发读数,也可以将ADC读数绑定到每个BLE事件的尾部。您可以在此处找到有关如何使用app\u easy\u计时器的说明:http://lpccs-docs.dialog-semiconductor.com/Tutorial\u SDK6/timer.html
将ADC读数绑定到每个BLE事件的末尾可以稍微提高能效,因为它限制了唤醒的数量。您可以在主头文件中定义宏函数,例如user\u myproj.h:
在此文件中,还向函数添加原型:
最后,在usermyproj.c中,实现这个函数中的ADC read。
我希望这有帮助。
/MHv公司
嗨,MHv,
感谢您的快速回复,我会努力研究它,只是一个后续的查询,我需要实现相同的adc操作每100毫秒时,BLE是未连接。我的广告间隔是687.5毫秒,广告超时是3秒几分钟后只有当用户按下按钮时,广告周期才会重新开始,直到这时收音机应该保持关闭。“有没有可能去”延长睡眠时间“如果BLE如您所述连接并且”深度睡眠“当BLE不是有联系吗相同的替代建议。
提前谢谢!
比尔,
巴拉吉。
你好,巴拉吉,
这就给你留下了一个最容易实现的app\u easy\u timer。对于需要每100ms唤醒一次(在您的情况下执行ADC读数)的设备,延长睡眠是最低功耗的解决方案。从深度睡眠中醒来,每次醒来都需要额外的能量,以便在执行时从OTP复制到RAM。如果您的应用程序代码是flash格式的,那么深度睡眠只对几天或几周的睡眠时间有用。
记住,睡眠是由SDK管理的。设备将进入睡眠状态,除非:
/MHv公司
嗨,MHv,
我接受了ble\u app\u睡眠模式项目,并在中配置了app\u简易计时器用户\睡眠模式.c
在这个ble\u timer\u wake()中
我使ble adv超时5秒,睡眠时间是10秒,醒来后。一切如期进行。
现在我有一个用户应用程序任务,它在下面的user\u app\u回调中配置
.app \u on \u set \u dev \u config \u complete=用户\u on \u set \u dev \u config \u complete
创建函数原型和定义如下
我担心的是,如果应用程序是广告有一个执行上述任务的延迟,但当ble是在延长睡眠,它的工作如预期。可能的错误是什么。
我要知道adv停止后,睡眠是如何疼痛的,从下面的代码段引用。
1 . 主循环如何设置睡眠模式?
2如果禁用BLE\u APP\u PRESENT,应用程序将进入睡眠状态?
提前谢谢,
比尔,
巴拉吉。
你好,贝拉吉,
蓝牙活动的优先级高于任何用户应用程序。这意味着有时候你的应用程序的简易计时器会在稍晚的时候触发。实现近实时执行的唯一方法是停止所有Bluetooth LE活动(没有广告,没有连接)。
sleep实现是SDK中最复杂的部分,因此完全从用户抽象出来。解释这一错综复杂的细节超出了论坛的范围。正如前面的回复中所提到的,关于睡眠,您需要知道的是,您可以设置默认的操作模式,设备将在可能的时候睡眠。请看一下我前面提到的“SDK6入门”教程。在该教程中,你可以找到所有你需要知道的睡眠模式。
只有在GTL模式下使用设备时(您不是),才与未定义的APP\u PRESENT相关,所以保持原样。
/MHv公司
嗨,MHv,
谢谢你的详细回复。正如你所说,当没有广告或应用程序未连接。用户应用程序执行为是的,但是我们的产品不符合要求。我的邮件id:巴拉吉。邮箱:s@pmsind.com. 我可以分享我们的需求,经过4个月的发展,我们在这里卡住了。我们需要在SDK的轻微修改支持。如果这个问题得不到解决,我们将被迫更换BLE模块。到目前为止,您的产品非常棒,请记住,我们的smartcane产品(我们选择使用da14531的ble设计)迄今已售出10万台。请考虑我的请求并尽早回复。
提前谢谢
比尔
巴拉吉
嗨,MHv,
当我把睡眠模式设为
在user\ u config.h中,项目文件为ble\ U睡眠模式项目来自SDK。
超时后进入睡眠(如PD(系统关闭),正如在文档中提到的,我们可以使用多个选项来唤醒,所以我更喜欢使用BLE定时器
我在user\u app\u回调中配置了一个BLE计时器
设备进入睡眠状态,但没有从睡眠中醒来。如何使用RTC/Timer 1/BLE Timer唤醒。和我分享一个同样的小片段。
当设备进入睡眠状态时,用户应用程序计时器是否被取消?
提前谢谢
比尔,
巴拉吉
你好,巴拉吉,
我读了整个对话,关于这句话:
>>当BLE未连接时,我需要每100毫秒进行一次相同的adc操作。我的广告间隔是687.5毫秒,广告超时是3分钟。
当设备配置为延长睡眠模式时,它将在间隔(广告或连接间隔)之间睡眠。在睡眠模式下,所有外围域的电源都会关闭,这样系统的功耗就会降低。因此,如果系统处于延长睡眠模式,这意味着不可能使用包括ADC在内的任何外围模块。
正如MHv\u Dialog提到的,为了定期唤醒它,应该使用app\u easy\u timer()。这个API使用的是BLE计时器,因此它在扩展睡眠模式下有效。你能检查一下在app\u easy\u timer()中注册的回调是否被触发了吗?
>>>设备进入睡眠状态,但没有从睡眠中醒来。如何使用RTC/Timer 1/BLE Timer唤醒。
哪种睡眠模式?是延长睡眠吗?
谢谢,下午好