我该怎么办法进入并退出睡眠模式

14个帖子/ 0新
最后发表
雅芳
离线
最后看到:6年4个月前
加入:2014-06-04 03:39.
我该怎么办法进入并退出睡眠模式

嗨。

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

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

3.如果在睡眠模式下,我该怎么办才能通过按键唤醒键?

此致,

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

我正在制作一个应用程序,电源时应进入睡眠模式,当中断来时,对话框唤醒并处理该中断然后再次睡眠。

任何想法都会欣赏

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

你好yachao,

我们创建了一个应用笔记,描述了如何输入和退出睡眠模式(通常通过下面的2个主要方法)。

1.同步地,通过BLE定时器可以被编程为唤醒系统以便为BLE事件提供服务

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

可以下载应用笔记

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

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

BR JE_DIALOG.

雅芳
离线
最后看到: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_extendend_sleep和其他api,不幸的是不起作用,你可以给出一些关于如何修改演示代码进入睡眠模式的说明吗?或者给其他演示让DA14580睡觉?

此致,

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

你好yachao,

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

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

6.3广告

- - - - - -睡眠模式。

SmartTag以特定广告阶段的不同间隔广告,以不同的间隔广告:

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

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

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

四分钟的广告。

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

http://support.dialog-seminile.com/system/files/um-b-018_smart_tag_application_1.0.pdf.

BR JE_Dialog

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

对话框支持者们:

当间隔睡眠结束在从角色设备中,我想为某些连接事件保持RF电源,以便可以为某些时段提供电力,并且希望仍然将链接与主设备保持不变。谁可以在可能和如何呢。

我尝试如下:
1. fh_proxr_sdk是参考示例。
2.使用GPIO引脚启用外部唤醒
3.链接建立后启用扩展模式睡眠。
4.使用第2步初始化的GPIO从睡眠中唤醒。
结果:
步骤1 ~步骤3功能恢复。
在步骤4之后,唤醒似乎已成功,但它再也不会进入睡眠,并在监控超时后发生链路损耗。它似乎是挂起的。我错了什么?

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

你好Z.G.孟,

我将有一个支持团队与您联系。

BR JE_Dialog

赵桂萌
离线
最后看到: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

#define development_debug 1.

#定义CFG_CALIBRATED_AT_FAB

2.延长睡眠模式下生产

#定义CFG_EXT_SLEEP

#define 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_extendend_sleep()app_adv_timer_handler。

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

亲爱的对话支持者:

我不知道上面对我来说是否对我来说,但似乎不是我的主题。

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

此致,

wt_dialog(未经验证)
您可以使用从属延迟。

您可以使用从属延迟。这将有助于您跳过一些连接事件。主人会继续接收。但是从设备将跳过许多连接事件,如从属延迟中指定的。

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

赵桂萌
离线
最后看到: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
#define cfg_deep_sleep.

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

我当前的邮件循环只是重用SDK One,如下行。你能否建议我应该修改的其他东西可以启用14580睡眠模式?深度睡眠或延长睡眠对我来说没问题。

int main_func(void)
{
sleep_mode_t sleep_mode;
system_init();
而(1)
{
{做
schedule_while_ble_on ();
}
而((app_asynch_proc ()));//授予控制给应用程序,尝试去断电

if(((!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);

WFI();

ARCH_RESUME_FROM_SLEEP();
}
否则if(sleep_mode == mode_idle)
{
if((!ble_app_present)&& check_gtl_state())||(ble_app_present))
{
WFI();
}
}
global_int_start();
}

如果(USE_WDOG)
{
wdg_reload(watchdog_default_period);
}
}
}

mt_dialog.
离线
最后看到:3个月2周前
工作人员
加入:2015-06-08 11:34
嗨smdzj007,

嗨smdzj007,

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

https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...

谢谢mt_dialog.