如何进入和退出睡眠模式

14个帖子/ 0个新
最后发表
yachao
离线
最后看到:6年4个月前
加入:2014-06-04 03:39
如何进入和退出睡眠模式

嗨。

1.我发现当我关闭所有的外设,仍然有0.6~0.7mA的电流关于对话框。有没有可能它不是在睡眠模式下?如果不是在睡眠模式,我应该如何进入睡眠模式时,对话开始?

2.我怎么知道它是否处于睡眠模式?

3.如果在睡眠模式,我应该做什么来唤醒它按下键?

最好的问候,

yachao
离线
最后看到:6年4个月前
加入:2014-06-04 03:39
我在申请,

我正在创建一个应用程序,它应该进入睡眠模式时,电源,当中断出现,对话框醒来,处理中断,然后再次睡眠。

任何想法都将受到欢迎

JE_Dialog
离线
最后看到:1周3天前
工作人员
加入:2013-12-05 14:02
你好Yachao,

你好Yachao,

我们已经创建了一个应用程序注释,描述了如何进入和退出睡眠模式(通常通过下面的两个主要方法)。

1.同时,通过BLE定时器,可以编程来唤醒系统以服务BLE事件和

2.如果由外部事件(输入)触发,则通过唤醒定时器和正交解码器异步进行。

该应用程序笔记可以下载

http://support.dialog-semiconductor.com/um-b-006-user-manual-sleep-mode-configuration

它包括一些示例,并描述了实现深度睡眠和扩展睡眠配置的软件体系结构。

BR JE_DIalog

yachao
离线
最后看到:6年4个月前
加入:2014-06-04 03:39
谢谢你的回复。

谢谢你的回复。

我检查了pdf文件,然后在DA14580板上运行demo code reporter_fh, version 3.0.2.0,并测量了缓冲测试点TP1和TP2的电压,其电压为168mV,根据an - b - 015_da14580_current_measurements .pdf的3.2.2章节,电流为1.68mA。如果我是对的,对话板不是在睡眠模式,因为深度睡眠和扩展睡眠电流的范围在500nA到
2uA,我试图使用app_set_deep_sleep, app_set_extended_sleep和其他api,不幸的是不能工作,你可以给一些说明如何修改演示代码进入睡眠模式?或者给其他演示让DA14580休眠?

最好的问候,

JE_Dialog
离线
最后看到:1周3天前
工作人员
加入:2013-12-05 14:02
你好Yachao,

你好Yachao,

用测量TP1和TP2的方法,无论如何都会有偏移,在你看到的任何平均广告/连接活动上,大约相当于几百uA(注意他只是一个抵消,因为它的设计并不是为了测量uA水平)。你确实需要使用该文件第4节中的方法,即使用高精度的万用表。

接近记者应用程序(当它来的时候)需要离开3-4分钟,然后它会进入延长睡眠模式。在此之前,它将是广告,在广告间隔之间它将进入长时间睡眠-但你可能看到的问题是平均测量(3个频道的广告)。

6.3广告

- - - - - -睡眠模式。

SmartTag以无向模式发布广告,不同的广告阶段间隔不同:

200ms间隔阶段-用于启动或断开连接后的第一分钟。

1000ms间隔阶段- 200ms阶段结束后的接下来三分钟。

深度睡眠阶段:SmartTag停止广告,进入持续深度睡眠模式

四分钟的广告。

为了验证设备是否进入了延长睡眠模式,我建议使用智能片段功率分析器来查看接近应用程序:在这里,你应该能够看到设备在上述阶段后进入深度睡眠。典型视图参见下面文档中的图5。如果你看到电流下降到零(图6的右边),那么你就知道它进入了延长睡眠模式。

http://support.dialog-semiconductor.com/system/files/UM-B-018_Smart_tag_application_1.0.pdf

BR JE_Dialog

赵Gui孟
离线
最后看到:4年6个月前
加入:2014-08-25 05:18
对话框支持者们:

对话框支持者们:

当间隔睡眠结束在从角色设备,我想保持射频电源关闭一些连接事件,以便可以节省一定时期的电力,并希望仍然保持与主连接的期间。谁能告诉我这是否可能,如何可能。

我尝试如下:
1.参考示例为Fh_proxr_sdk。
2.使用GPIO引脚启用外部唤醒
3.在连接建立后启用扩展模式休眠。
4.使用第2步初始化的GPIO从睡眠中唤醒。
结果:
步骤1 ~步骤3功能恢复。
在步骤4后,唤醒似乎成功,但它不再进入睡眠,并在监督超时后发生链接丢失。看来hungup。我做错了什么?

JE_Dialog
离线
最后看到:1周3天前
工作人员
加入:2013-12-05 14:02
你好孟动物园,

你好孟动物园,

我会让支援小组联系你。

BR JE_Dialog

赵Gui孟
离线
最后看到:4年6个月前
加入:2014-08-25 05:18
亲爱的BR JE_Dialog,

亲爱的BR JE_Dialog,

谢谢你。
我期待你的解决方案。
致以最亲切的问候。

Z.G.Meng

WT_Dialog(未验证)
嗨,伙计们,

嗨,伙计们,

我猜你们在使用延长睡眠模式。

有几件事你应该注意。

在SDK 3.0.6:

1.在延长睡眠模式下调试

在da14580_config.h,

#定义CFG_EXT_SLEEP

#定义DEVELOPMENT_DEBUG 1

#定义CFG_CALIBRATED_AT_FAB

2.在延长睡眠模式下生产

#定义CFG_EXT_SLEEP

#定义DEVELOPMENT_DEBUG 0

#define APP_BOOT_FROM_OTP //如果应用程序存储在OTP中,定义它。否则,例如在systemRAM、Flash或EEPROM中,你应该undef APP_BOOT_FROM_OTP

#定义CFG_CALIBRATED_AT_FAB

回到你的问题上,

在app_adv_timer_handler(这个处理程序在3分钟超时时被调用)中,app_set_deep_sleep();被称为。

如果在你的申请中,#define DEVELOPMENT_DEBUG 0,则芯片处于深度睡眠模式。如果你不烧毁OTP,并配置芯片进入深度睡眠模式,你的芯片将醒来,但什么也不做。

如果在您的应用程序中,#define DEVELOPMENT_DEBUG 1,则深度睡眠模式模拟是启用的。你的芯片会被唤醒,表现得就像处于延长睡眠模式一样

简而言之,如果您正在使用深度睡眠模式,请将app_set_deep_sleep()更改为app_set_extended_sleep ()app_adv_timer_handler。

赵Gui孟
离线
最后看到:4年6个月前
加入:2014-08-25 05:18
亲爱的支持者对话框:

亲爱的支持者对话框:

我不知道上面的评论是否适合我,但这似乎不是我的主题。

我的主题如下:
当设置了睡眠模式后,BLE链路建立后,对应的睡眠模式应周期性地进入连接间隔时间。当睡眠被唤醒时,我希望保持RF电源关闭并启动另一个睡眠持续时间,以跳过某些主服务器的轮询和某些特定连接事件点的从服务器的发送。在另一个睡眠被唤醒后,BLE链接应该保持。
我的设备的角色是奴隶。
它是可能的吗?如果可能,又怎么可能呢?

最好的问候,

WT_Dialog(未验证)
您可以使用从延迟。

您可以使用从延迟。这将帮助您跳过一些连接事件。主人会继续接受。但是从设备将跳过许多连接事件,正如您在从设备延迟中指定的那样。

从服务器延迟是一个连接参数,在建立连接时设置,稍后可以通过参数更新请求更新该参数。

赵Gui孟
离线
最后看到:4年6个月前
加入:2014-08-25 05:18
亲爱的WT_Dialog,

亲爱的WT_Dialog,

谢谢你的建议。
我已经尝试用从延迟来做这个。
使用从属延迟不符合我的要求。
所有的连接事件都不是为被跳过的选项,调用跳过时间的信号来自BLE控制器,并与BLE链接异步,它需要跳过一个锚连接事件一些时间,从而导致在对话芯片现在挂起。

致以最亲切的问候。

smdzjl007
离线
最后看到:3年11个月前
加入:2015-08-04 15:07
嗨MT_dialog:

嗨MT_dialog:

我试图定义以下da1458x_config_basic.h,以选择深度睡眠模式。不幸的是,功耗总是~500uA。我还应该做什么?

# undef CFG_EXT_SLEEP
#定义CFG_DEEP_SLEEP

我试图跟进UM-B-006 DA14580 Sleep mode configuration v1.1文档,坦白说,这个文档真的很难捕捉到启用Sleep mode真正需要什么,我应该修改主循环函数吗?除了da1458x_config_basic.h的修改之外,我还应该做什么来启用睡眠模式?

我当前的邮件循环只是重用sdk 1,如下行所示。你能建议我还需要修改什么来启用14580睡眠模式吗?对我来说,深度睡眠和长时间睡眠都可以。

int main_func(空白)

sleep_mode_t sleep_mode;
system_init ();
而(1)

{做
schedule_while_ble_on ();

而((app_asynch_proc ()));//授予控制给应用程序,尝试去断电

如果(((! BLE_APP_PRESENT) & & (check_gtl_state ())) | | (BLE_APP_PRESENT))

GLOBAL_INT_STOP ();

app_asynch_sleep_proc ();

sleep_mode = rwip_power_down ();

If (sleep_mode == mode_ext_sleep) || (sleep_mode == mode_deep_sleep)

arch_goto_sleep (sleep_mode);

注射用水();

arch_resume_from_sleep ();

Else if (sleep_mode == mode_idle)

如果(((! BLE_APP_PRESENT) & & check_gtl_state ()) | | (BLE_APP_PRESENT))

注射用水();


GLOBAL_INT_START ();

如果(USE_WDOG)

wdg_reload (WATCHDOG_DEFAULT_PERIOD);


MT_dialog
离线
最后看到:三个月两个星期前
工作人员
加入:2015-06-08 34
嗨smdzj007,

嗨smdzj007,

请不要多次发布你的问题,查看你的其他帖子下面可能的答案。

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。

由于MT_dialog