您好,
我使用信标参考源(3.40.6)测试扩展睡眠模式。
在Arch_Main.c中,调用RWIP_SLEEP()并返回MODE_SLEEPING和MODE_IDLE。使用MODE_SLEEP,它似乎正确进入了扩展的睡眠模式,但MODE_IDLE,收音机和外围设备似乎保持活动状态。
我想在没有mode_idle的情况下设置无线电和外围设备。你能告诉我该怎么办?
Thanks,
Keywords:
Device:
Hi kamagasako,
You can check in the arch_main.c function the commands SetBits16(PMU_CTRL_REG, RADIO_SLEEP, 1); for the radio and SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 1); for the peripherals. Shutting down the radio in mode_idle probably is not such a good idea though, its not tested and may cause problems.
谢谢mt_dialog.
Hi MT_dialog,
I'm sorry to reply so lately.
When mode_idle is returned, in main_func(), just WFI() is called without radio/peripherals sleeping, it seems to increase the power consumption.
你会告诉我如何降低功耗即使mode_idle?返回mode_idle时的情况是什么?
Hi kamagasako,
模式空闲返回DA无关但其指示也不睡眠时返回,因此它通过关闭外围设备和无线电的指令,并等待发生中断。在mode_idle中关闭收音机可能并不是一个好主意,但你可以通过使用它来尝试SetBits16(PMU_CTRL_REG, RADIO_SLEEP, 1); also i think that its possible to powerdown the peripherals you try it by using the SetBits16(PMU_CTRL_REG, PERIPH_SLEEP, 1);
谢谢mt_dialog.
嗨,
I am using SDK 5.0.3 software on DA14583DEVKT-B board.
我已经采取了“ble_app_peripheral”(BLE的例子projects given).
I wish to optimize the power consumption. I need guidance how we can make DA14583 runs at lowest power consumption without effecting the functionality (i.e. Transmission of BLE data, even ever the data available).
Regards,
Mahesh Chandana。
Hi Mahesh,
最低功耗的想法是睡眠,只要您可以(更长的广告和长连接间隔),并且仅在Nessecary时醒来。此外,您可以检查信标参考设计(在广告模式中),广告活动周期有点较短,并且允许580在较短时段内为每个事件保持清醒。
谢谢mt_dialog.
嗨,
Thank you for quick response.
我可以在其中配置睡眠模式或无睡眠模式(即正常工作模式)。任何文档都在有彻底了解功耗。
Regards,
Mahesh Chandana。
Hi Mahesh,
在app_default_sleep_mode的user_config.h文件中,您可以将Value Arch_sleep_off放置为No Sleep和Arch_ext_sleep_on进行睡眠。在广告活动和连接事件期间,580是清醒的,并且当然当应用程序保持唤醒时,有关电力消耗的更多信息,您可以看一下AN-B-015文档。
谢谢mt_dialog.
嗨,
我已经经历了“AN-B-015”。本文档介绍了如何测量功耗。
In my context my application function has to call in the main function (in infinite loop). Where I can call my app function. If I am configuring "app_default_sleep_mode" to "ARCH_EXT_SLEEP_ON", When the application requires the CPU time then How it will get wake up from sleep to execute my app function.
In "AN-B-015", there no much information, how the switching from sleep mode to normal mode and vise versa.
请指导我了解它是如何处理的。
Regards,
Mahesh Chandana。
Hi Mahesh,
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.
嗨,
我采取了“ble_app_peripheral”示例代码。只需将“app_default_sleep_mode”更改为“arch_ext_sleep_on”(在“user_config.h”文件中)。
然后我无法在手机上看到BLE设备名称。
是我需要的任何事情。
Mean while i am going through the "UM-B-006" document.
Regards,
Mahesh Chandana。
Hi Mahesh,
No there isn't anything else to do, by stopping the debbuging procedure you should be able to see your device advertising.
谢谢mt_dialog.
嗨,
我试过了。我已经看到了设备名称(即“对话框PRPH”)最初几秒钟。后来我看不到设备名称。
只有代码中的更改是将“app_default_sleep_mode”修改为“arch_ext_sleep_on”(在“user_config.h”文件中)。
Reagards,
Mahesh Chandana。
嗨,
Which API's I need to use in order to wake up the controller from Extended sleep to normal mode both in Synchronous and asynchronous methods.
Regards,
Mahesh Chandana。
Hi Mahesh,
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.