MODE_IDLE在扩展睡眠模式下

15个职位/ 0个新职位
最后一篇
kamagasako
离线
最后一次露面:4年10个月前
加入:2015-03-31 08:47
MODE_IDLE在扩展睡眠模式下

你好,

我使用信标参考源(3.40.6)测试扩展睡眠模式。
在Arch_Main.c中,调用RWIP_SLEEP()并返回MODE_SLEEPING和MODE_IDLE。使用MODE_SLEEP,它似乎正确进入了扩展的睡眠模式,但MODE_IDLE,收音机和外围设备似乎保持活动状态。
我想在没有mode_idle的情况下设置无线电和外围设备。你能告诉我该怎么办?

谢谢,

关键词:
设备:
mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨kamagasako,

嗨kamagasako,

你可以在arch_main.c函数检查命令SetBits16(PMU_CTRL_REG, RADIO_SLEEP, 1);for the radio and SetBits16(PMU_CTRL_REG, peri_sleep, 1);外围设备。在mode_idle中关闭收音机可能不是一个好主意,它没有经过测试,可能会导致问题。

谢谢mt_dialog.

kamagasako
离线
最后一次露面:4年10个月前
加入:2015-03-31 08:47
嗨MT_dialog,

嗨MT_dialog,

很抱歉这么晚才回复你。
当mode_idle被返回时,在main_func()中,只有WFI()被调用,而没有无线电/外设休眠,这似乎增加了功耗。
你会告诉我如何降低功耗即使mode_idle?返回mode_idle时的情况是什么?

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨kamagasako,

嗨kamagasako,

模式空闲返回DA无关但其指示也不睡眠时返回,因此它通过关闭外围设备和无线电的指令,并等待发生中断。在mode_idle中关闭收音机可能并不是一个好主意,但你可以通过使用它来尝试SetBits16 (PMU_CTRL_REG RADIO_SLEEP 1);我也认为它是可能的下电外设,你尝试它使用SetBits16(PMU_CTRL_REG,外围的睡眠,1);

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年4个月前
加入:2016-01-04 14:03
你好,

你好,
我在DA14583DEVKT-B板上使用SDK 5.0.3软件。
我使用了“ble_app_peripheral”(给出的BLE示例项目)。

我希望优化能耗。我需要指导,我们可以使DA14583运行在最低的功耗而不影响功能(即BLE数据的传输,甚至可用的数据)。

问候,
Mahesh Chandana。

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨的卖方,

嗨的卖方,

最低功耗的想法是睡眠,只要您可以(更长的广告和长连接间隔),并且仅在Nessecary时醒来。此外,您可以检查信标参考设计(在广告模式中),广告活动周期有点较短,并且允许580在较短时段内为每个事件保持清醒。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年4个月前
加入:2016-01-04 14:03
你好,

你好,
感谢您的快速回复。
我可以在其中配置睡眠模式或无睡眠模式(即正常工作模式)。任何文档都在有彻底了解功耗。

问候,
Mahesh Chandana。

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨的卖方,

嗨的卖方,

在app_default_sleep_mode的user_config.h文件中,您可以将Value Arch_sleep_off放置为No Sleep和Arch_ext_sleep_on进行睡眠。在广告活动和连接事件期间,580是清醒的,并且当然当应用程序保持唤醒时,有关电力消耗的更多信息,您可以看一下AN-B-015文档。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年4个月前
加入:2016-01-04 14:03
你好,

你好,
我已经经历了“AN-B-015”。本文档介绍了如何测量功耗。

在我的上下文中,我的应用程序函数必须调用main函数(在无限循环中)。我可以调用我的app函数。如果我将“app_default_sleep_mode”配置为“ARCH_EXT_SLEEP_ON”,当应用程序需要CPU时间,那么它将如何从睡眠中唤醒来执行我的应用程序功能。

在“AN-B-015”中,没有太多关于如何从睡眠模式切换到正常模式,反之亦然的信息。

请指导我了解它是如何处理的。

问候,
Mahesh Chandana。

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨的卖方,

嗨的卖方,

app_default_sleep_mode将为580设置默认休眠模式,如果要在运行时在运行时配置休眠模式,则可以使用ARCH_DISABLE_SLEEP(),ARCH_SET_EXTEDDED_SLEEP()和ARCH_SET_DEEP_SLEEP()函数将设备放在无睡眠模式下,扩展睡眠模式和深度睡眠模式相应。此外,您可以做些什么,以强制您的设备保持清醒而不改变睡眠模式是使用App_On_ble_Powered回调。此回调返回goto_sleep按顺序返回580到睡眠状态或返回keep_powered并强制循环以重新执行RWIP_shedule()并重新开始。您可以查看UM-B-006文档睡眠模式配置,功能有点不同,因为文档基于SDK3,但功能是相同的,或者您可以看一下UM-B-051在第7节中的文档,其中睡眠机制在SDK5术语中描述。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年4个月前
加入:2016-01-04 14:03
你好,

你好,
我采取了“ble_app_peripheral”示例代码。只需将“app_default_sleep_mode”更改为“arch_ext_sleep_on”(在“user_config.h”文件中)。
然后我在手机上看不到BLE设备名。

是我需要的任何事情。
与此同时,我在看"UM-B-006"文件。

问候,
Mahesh Chandana。

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨的卖方,

嗨的卖方,

没有其他的事情可以做,通过停止调试程序,你应该能够看到你的设备广告。

谢谢mt_dialog.

Mahesh.
离线
最后一次露面:3年4个月前
加入:2016-01-04 14:03
你好,

你好,
我试过了。我已经看到了设备名称(即“对话框PRPH”)最初几秒钟。后来我看不到设备名称。

只有代码中的更改是将“app_default_sleep_mode”修改为“arch_ext_sleep_on”(在“user_config.h”文件中)。

Reagards,
Mahesh Chandana。

Mahesh.
离线
最后一次露面:3年4个月前
加入:2016-01-04 14:03
你好,

你好,

我需要使用哪个API来将控制器从同步和异步方法中的扩展睡眠唤醒到正常模式。

问候,
Mahesh Chandana。

mt_dialog.
离线
最后一次露面:2个月3周前
职员
加入:2015-06-08 11:34
嗨的卖方,

嗨的卖方,

580通过BLE定时器同时唤醒(通过SDK控制睡眠时间的时间,并且它被设置为下一个BLE事件 - 连接或广告间隔 - 每次580才能睡眠)。异步,您可以通过唤醒定时器或通过正交解码器或使用内核定时器来唤醒它。您可以在第10.7节中检查如何在UM-B-051.PDF中使用和设置外部唤醒。通过通过内核计时器唤醒非常简单,只需设置Timer App_easy_Timer(),然后将唤醒580。在这两种情况下,SDK将检查是否有任何未决的BLE事件,如果没有任何它会恢复睡眠,所以如果您想保留您的设备唤醒,则必须使用ARCH_DISABLE_SLEEP()函数来做任何您的应用程序需要执行,然后再次启用休眠功能(Arch_set_extending_sleep()),以便重新返回睡眠状态。

谢谢mt_dialog.