Hi.
1. i found that when i close all the peripherals, there still has 0.6~0.7mA current about the Dialog. Is it possible that it's not in sleep mode? if not in sleep mode, how should i enter the sleep mode when the dialog starts?
2. how should i know whether or not it's in sleep mode?
3.如果在睡眠模式下,我该怎么办才能通过按键唤醒键?
此致,

我正在制作一个应用程序,电源时应进入睡眠模式,当中断来时,对话框唤醒并处理该中断然后再次睡眠。
任何想法都会欣赏
你好yachao,
我们创建了一个应用笔记,描述了如何输入和退出睡眠模式(通常通过下面的2个主要方法)。
1.同步地,通过BLE定时器可以被编程为唤醒系统以便为BLE事件提供服务
2. Asynchronously, via the Wakeup Timer and Quadrature Decoder if triggered by an external event (input).
可以下载应用笔记
http://support.dialog-semicondiondionder.com/um-b-006-user-manual-sleep-mode-code-configuration.
它包括一些示例并描述了实现深睡眠和扩展睡眠配置的软件架构。
BR JE_DIALOG.
感谢您的回复。
i checked the pdf file and then run the demo code reporter_fh, version 3.0.2.0, on DA14580 board, and measured the voltage at buffered test-points TP1 and TP2, it's voltage is 168mV, according to chapter 3.2.2 of AN-B-015_DA14580_Current_Measurement.pdf, the current is 1.68mA. if i am right, the dialog board is not in sleep mode, since Deep Sleep and Extended Sleep currents are in the range of 500nA till
2UA,我尝试过app_set_deep_sleep,app_set_extendend_sleep和其他api,不幸的是不起作用,你可以给出一些关于如何修改演示代码进入睡眠模式的说明吗?或者给其他演示让DA14580睡觉?
此致,
你好yachao,
using the method of just measuring across TP1 and TP2 there will be offset anyhow , of around equivalent of few hundred uA (note his is just an offset of the motherrboard measuremnet since its not designed to measure down to uA level) on top of any averaged advertising/connection activity you see To measure actual deep sleep or extended sleep current, you do need to be using method as in section 4 of that document - which takes high accuracy mutlimeter.
The proximity reporter app (as it comes) needs to be left for 3-4 minutes before it will enter extended sleep mode. Before that time, it will be advertising , and between advertising intervals it will be dropping into extended sleep - but the issue you might be seeing is the average measurement (of advertising on 3 channels).
6.3 Advertise
–睡眠模式。
SmartTag以特定广告阶段的不同间隔广告,以不同的间隔广告:
200 ms间隔阶段 - 启动后的第一分钟或断开连接。
1000 ms interval phase - For the next three minutes after the termination of 200ms phase.
深度睡眠阶段:SmartTag停止广告并进入连续深度睡眠模式
四分钟的广告。
To verify if the device is dropping into extended sleep mode , i would recommend using the smart snippets power profiler to view the proximity app : here you should be able to view the device moving to deep sleep after the phases mentioned above. See figure 5 in below document for the typical view . If you see the current dropping to zero (right hand side of fig6) then you know its moving into extended sleep mode.
http://support.dialog-seminile.com/system/files/um-b-018_smart_tag_application_1.0.pdf.
BR JE_Dialog
Hello Dialog Supporters :
当间隔睡眠结束在从角色设备中,我想为某些连接事件保持RF电源,以便可以为某些时段提供电力,并且希望仍然将链接与主设备保持不变。谁可以在可能和如何呢。
I have tried as following:
1. fh_proxr_sdk是参考示例。
2. enable external wakeup with a GPIO pin
3.链接建立后启用扩展模式睡眠。
4. wakeup from sleeping using GPIO that initialized by step 2.
Result:
Step 1 to step 3 functioned.
在步骤4之后,唤醒似乎已成功,但它再也不会进入睡眠,并在监控超时后发生链路损耗。它似乎是挂起的。我错了什么?
你好Z.G.孟,
我将有一个支持团队与您联系。
BR JE_Dialog
Dear BR JE_Dialog,
谢谢你的。
我期待着你的解决方案。
此致。
Z.G.Meng.
嗨,大家好,
I guess you guys are using extended sleep mode.
There are a few things you should pay attention to.
In SDK 3.0.6:
1.在扩展睡眠模式下调试
in da14580_config.h,
#define CFG_EXT_SLEEP
#define development_debug 1
#define CFG_CALIBRATED_AT_FAB
2.延长睡眠模式下生产
#define CFG_EXT_SLEEP
#define development_debug 0.
#define app_boot_from_otp //如果应用程序存储在OTP中定义它。否则,例如在Systemram,在Flash或EEPROM中,您应该undef app_boot_from_otp
#define CFG_CALIBRATED_AT_FAB
回到你的问题,
In app_adv_timer_handler (this handler is called when 3 minutes timeout happens), app_set_deep_sleep(); is called.
If in your applicatoin,#define development_debug 0., then the chip is in deep sleep mode. If you do not burn the OTP and configure the chip into deep sleep mode, your chip will wake up but do nothting.
if in your application, #define DEVELOPMENT_DEBUG 1, then deep sleep mode simulation is enabled. your chip will wake up .and perform as if in extended sleep mode
简而言之,如果您使用的是深度睡眠模式,请将app_set_deep_sleep()更改为app_set_extendend_sleep()app_adv_timer_handler。
亲爱的对话支持者:
我不知道上面对我来说是否对我来说,但似乎不是我的主题。
简单的解释如下我的主题:
当睡眠模式集,祝福链接后问好blished, corresponding sleep mode should enter in the connection interval duration periodically. When the sleep be waked up, I want to keep RF power be off and initiate a another sleep duration to skip some master's polling and slave's sending for some certain connection event point. After the another sleep be waked, the BLE link should be kept.
我的设备的角色是奴隶。
有可能的?如果可能的话怎么能?
此致,
您可以使用从属延迟。这将有助于您跳过一些连接事件。主人会继续接收。但是从设备将跳过许多连接事件,如从属延迟中指定的。
Slave latency is a connection parameter, which is set when you establish a connection, and later on you can update this parameter by parameter update request.
Dear WT_Dialog,
谢谢你的善意。
I have tried to do that with slave latency.
Using slave latency do not meet my requirement.
所有连接事件都不是为了跳过的选项,调用跳过持续时间的信号都是从BLE控制器出来的,并与BLE链接异步,它需要一些时间跳过锚点连接事件,以便在对话框中为挂起芯片现在。
此致。
嗨mt_dialog:
I tried to define below in da1458x_config_basic.h in order to select deep sleep mode. Unfortunately, the power consumption is always ~500uA. What else I should do?
#undef CFG_EXT_SLEEP
#define cfg_deep_sleep.
I tried to follow up UM-B-006 DA14580 Sleep mode configuration v1.1 document, frankly speaking, this document is really hard to capture what is truly needed to enable sleep mode, should I modify main loop function? what else I should do to enable sleep mode beside the modification in da1458x_config_basic.h?
我当前的邮件循环只是重用SDK One,如下行。你能否建议我应该修改的其他东西可以启用14580睡眠模式?深度睡眠或延长睡眠对我来说没问题。
int main_func(void)
{
sleep_mode_t sleep_mode;
system_init();
而(1)
{
do {
schedule_while_ble_on();
}
while ((app_asynch_proc())); //grant control to the application, try to go to power down
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();
}
if (USE_WDOG)
{
wdg_reload(watchdog_default_period);
}
}
}
Hi smdzj007,
Please dont post your question multiple times, check your other post below for a possible answer.
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
谢谢mt_dialog.