[SDK5]关于EXT_SLEEP的问题

32 posts / 0 new
最后一篇文章
kurbylee.
Offline
最后一次见到:3 years 6 months ago
已加入:2014-11-05 09:10
[SDK5]关于EXT_SLEEP的问题

背景
1>项目名称:项目\ target_apps \ ble_examples \ ble_app_profile
2> #undef cfg_development_debug在da1458x_config_basic.h中
3> 为了简化问题,请注释行://#include“custs1.h”in user_profiles_config.h;
4>change value of app_default_sleep_mode to ARCH_EXT_SLEEP_ON in user_config.h
const static sleep_state_t app_default_sleep_mode = arch_ext_sleep_on;
5>编译并刻录到外部闪光灯;

Result:
1> 手机将无法扫描DA,除非只是在电源DA;
2>After powered DA,I scan use phone as soon as quick,I will find DA,but connect fail; and can't scan DA any more except reset DA;

背景2:
基于上面的背景,打开看门狗,并在init中切换一个LED,我发现芯片将再次重置,所以手机将永远
扫描DA,但连接失败。

我如何正确使用Arch_ext_sleep_on ??

关键词:
设备:
MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
嗨Kurbylee,

嗨Kurbylee,

我已经测试了你的设置,它似乎工作好。我的年代uppose that you are using Smart Snippets to burn your SPI, do you make your device bootable when you are promted from Smart Snippets ? After burning the flash do you reset your board in order for the bootloader to run and boot from your SPI ? By setting the app_default_sleep_mode to ARCH_EXT_SLEEP_ON is enough to set your device to extended sleep. Are you able to see your device correctly when you dont use sleep mode?

谢谢你的对话

kurbylee.
Offline
最后一次见到:3 years 6 months ago
已加入:2014-11-05 09:10
嗨,mt_dialog

嗨,mt_dialog
1>是,我使用智能片段(Ver 3.9)将BLE_APP_PROFILE_580.HEX刻录为SPI,SDK Ver是DA1458x_sdk_5.0.3
2>我没有使用bootloader(secondery bootloader.hex),只需刻录ble_app_profile_580.hex使用smartsnippert并使其启动;我可以看到添加的可引导标志(8bytes以7050开头)
3>烧伤后,我总是通过重力重新启动董事会;
4>如果我将app_default_sleep_mode更改为arch_ext_sleep_off,它将非常好;
5>当我使用SDK3.0.8时,没有问题,无论是定义/ undef cfg_ext_sleep

ps:I open the same project inDA1458x_SDK_5.0.2.1,and then get same result as in sdk5.3:(
ths kurbylee

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
嗨Kurbylee,

嗨Kurbylee,

I tested your setup again with a fresh 5.0.3 SDK and burn the image to the flash, it booted normally in reset and by removing the power. Are you able to donwload code by using keil, if yes is the device advertising as it should be ?

谢谢你的对话

kurbylee.
Offline
最后一次见到:3 years 6 months ago
已加入:2014-11-05 09:10
谢谢你的对话for your

谢谢mt_dialog以获取您的信息。
但我没有解决这个问题:
I burn the app hex with complied with app_default_sleep_mode=ARCH_SLEEP_OFF by smartSnippets 3.9, I can get expected result that the DA is running normal and android phone can scan/connect/access char it ;
如果我改变app\u default\u sleep\u mode=ARCH\u EXT\u sleep\u ON,并且我只能在DA通电时扫描DA一次,那么手机将永远找不到DA;

今天,我做了一个Anthor测试,我在main_func中添加LED切换:(P07连接LED)
1> 在user\u config.h中app\u default\u sleep\u mode=ARCH\u sleep\u OFF
#undef CFG_DEVELOPMENT_DEBUG
#define cfg_wdog在da1458x_config_basic.h(有关更多测试:))
2>在Arch_Main.c:
int main_func(void)
{
睡眠模式\u t睡眠模式;
system_init();
GPIO_ConfigurePin( GPIO_PORT_0, GPIO_PIN_7, OUTPUT, PID_GPIO, false );
while(1)
{
uint32_t i;
........................
if(((!ble_app_present)&&(check_gtl_state()))||
(BLE_APP_PRESENT))
{
GPIO\ U设置激活(GPIO\ U端口\ U 0,GPIO\ U引脚\ U 7);
i=0xfffff;
而(我)我--;
//禁用中断
global_int_stop();
......................
......................
......................
GPIO_SetInactive(GPIO_PORT_0, GPIO_PIN_7);
i=0xfffff;
而(我)我--;
GLOBAL_INT_START();
}
.....
}
3>现在,我可以看到LED是闪烁,手机无法扫描它(app_default_sleep_mode = arch_sleep_off)

4> 如果我让app\u default\u sleep\u mode=ARCH\u EXT\u sleep\u ON,手机会立即扫描并连接;

所以我对结果感到困惑:
当我添加led开关时,DA是正常的,app\u default\u sleep\u mode=ARCH\u EXT\u sleep\u ON(由于WDOG的原因,它将在几秒钟后断开连接)
当我删除LED切换时,DA与App_default_sleep_mode = Arch_sleep_off的正常情况;

我认为有一个与定时器/时间间隔等有关的strick。。。设置应用程序\默认\睡眠\模式,但我没有找到它:(

另一个信息:当我联系WDOG时,LED将闪烁5次,然后用app_default_sleep_mode = arch_ext_sleep_on保持灯

另一个信息:通过切换LED,我发现应用程序进入INFINIT循环(!BLE_DEEP_SLEEP_STAT_GETF()); ====>在func sleep_mode_t rwip_sleep(void)中

kurbylee.
Offline
最后一次见到:3 years 6 months ago
已加入:2014-11-05 09:10
比较SDK5.03和SDK3.0.8

比较SDK5.03和SDK3.0.8files one by one, finally I found the culprit.
just chang SetWord16(RF_ENABLE_CONFIG13_REG, PREF_RF_ENABLE_CONFIG13_REG);
到setword16(rf_enable_config13_reg,0);
在Func rf_nfm_disable,
一切都回来了。

戈塔
Offline
最后一次见到:1年10个月前
已加入:2016-02-20 20:10
亲爱的对话团队,

亲爱的对话团队,
Can you explain how does it effects? What is correct?

Sprhawk.
Offline
最后一次见到:3 years 1 month ago
已加入:2016-03-03 17:25
你确定这是

你确定这是你问题的原因吗?

我遇到了你的确切问题。

我搜索了,rf_nfm_disable叫做,所以我认为这不是原因。

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
Hi ggotta,

Hi ggotta,

你能解释一下你的问题是什么吗?在sdk5中,如果您想在睡眠模式下启用580,您所要做的就是将默认睡眠模式设置为ARCH\u EXT\u sleep\u ON。rf\u nfm\u disable与近场模式操作有关,与睡眠操作无关。默认情况下,SDK中不会调用该函数,它只是用于禁用近场模式(如果启用)的API。

谢谢你的对话

戈塔
Offline
最后一次见到:1年10个月前
已加入:2016-02-20 20:10
Hi,

Hi,
谢谢你的细节。
我启用了延长睡眠模式并闪烁了DA。之后我无法通过JTAG连接。但后来我又找到了更多的答案。它正在工作。
-gotta

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
嗨ggotta,

嗨ggotta,

我遇到和你同样的问题,使EXT_SLE之后EP_ON, my phone can't scan the DA now except power on DA time.

你最后是怎么解决这个问题的?只有改变才是真的吗:
just chang SetWord16(RF_ENABLE_CONFIG13_REG, PREF_RF_ENABLE_CONFIG13_REG);
到setword16(rf_enable_config13_reg,0);
在Func rf_nfm_disable.

或其他时间设置也是必要的?

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
Hi smdzjl007,

Hi smdzjl007,

As mentioned above in the previous comment, the rf_nfm_disable doesn't have to do with the sleep but with the near field mode which is disabled by default. In order to put the 580 in sleep mode only the app_default_sleep_mode = ARCH_EXT_SLEEP_ON; is enough to put the device in sleep mode. What is the SDK that you are using, and are you experincing this on a dev kit or on a custom board ? If you are able to scan the device only for a couple of seconds, then either something is wrong with your low power clock or the debuuger stays attached to your device and prevents it from going to sleep if you are using an SDK prior to the SDK 5.0.4.

谢谢你的对话

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
亲爱的mt_dialog团队,

亲爱的mt_dialog团队,

谢谢你的帮助。是的,我确实发现rf_nfm_disable函数中的修改根本不起作用。我正在使用SDK 5.0.3。如何定位问题与低功率时钟或其他原因有关?我应该升级到SDK 5.0.4吗?

另一个问题,da14580输入到睡眠模式后,控制醒来的定时器设置从睡眠中?控制持续时间的计时器是什么?

谢谢,最好的问候,

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
嗨smdzji007,

嗨smdzji007,

RF_NFM_Disable()函数不必用睡眠做任何事情,如果转移到新的SDK 5.0.4,则在睡眠期间,调试器未禁用,因此即使调试器停留也应继续通告。如果通过进入新的SDK没有帮助,并且您有一个自定义板检查LP时钟的设置应为XTAL或RCX,如果您在降压模式下运行,请切换到RCX,然后您就可以看到广告,那么您的问题是您在自定义板上的外部XTAL32。

SDK照顾设备将留在睡眠模式和何时醒来的时间,您所要做的就是设置广告和连接间隔,SDK将照顾其余的并配置系统按时唤醒和睡觉也是如此。

谢谢你的对话

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
谢谢,MT_Dialog团队,非常

谢谢,MT_Dialog团队,非常及时反馈!

I tried to modify user_config.h for advertising and connection intervals as below, actual user_connection_param_conf is not changed:

static const struct _configuration user_adv_conf = {
.addr\u src=GAPM\u PUBLIC\u地址,
.renew_dur = 0,
.addr={0x1、0x2、0x3、0x4、0x5、0x6},
.intv_min = 1000, // 625 ms (1000*0.625ms)
.intv_max = 2000, // 1250 ms (2000*0.625ms)
.channel_map=0x7,
.mode=间隙\u GEN\u可发现,
。adv_filt_policy = adv_allow_scan_any_con_any,
.peer_addr = {0x1, 0x2, 0x3, 0x4, 0x5, 0x6},
.peer_addr_type = 0,
};

static const struct connection_param_configuration user_connection_param_conf = {
.intv_min = ms_to_doubleslots(20),
.intv_max = ms_to_doubleslots(100),
.延迟=0,
.time_out = MS_TO_TIMERUNITS(125),
.ce_len_min = MS_TO_DOUBLESLOTS(0),
.ce_len_max = MS_TO_DOUBLESLOTS(0),
};

But the test result is still failed, the device can broadcast BLE advertisement message for very short time, then sleep and my smartphone can't scan the device anymore.

我应该修改其他内容,以使其睡眠/唤醒作为正常可穿戴设备?

谢谢和最好的问候

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
Hi smdzj007,

Hi smdzj007,

I would suggest not to modify anything (in order to verify that the reason for the 580 not advertising is not the fw), just take ble example from the 5.0.4 as is and run it to sleep mode (const static sleep_state_t app_default_sleep_mode = ARCH_EXT_SLEEP_ON;) in the user_config.h file also run the same example with const static sleep_state_t app_default_sleep_mode = ARCH_SLEEP_OFF; and check if you do that is the device advertising and if it does you will have to set the sleeping mode always to off (ARCH_SLEEP_OFF). Do the above and let me know. Also please let me know if you are using a custom board or a dev kit and if you are using an external XTAL or you are operating with the RCX.

谢谢你的对话

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
Thanks, MT_Dialog team!

Thanks, MT_Dialog team!

I upload my .hex file to other dialog support engineer, he see the same result as me.
https://support.dialog-semicondiondiondum/smartsnippets-spi-flash-program ...

He is using 580 dev kit pro. My design is also use dialog reference design with external XTAL clock. It works fine if switch off sleep.

Anyway, I will try again to download 5.0.4 sdk example to see any difference or not.

In the meanwhile, can you confirm my previous question about advertising and connection intervals adjustment? Are those 2 structures correct? Is my interval setting valid?

谢谢和最好的问候

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
嗨,MT\u Dialog团队,

嗨,MT\u Dialog团队,

After checking with previous colleague, he told me that our design is based on dialog wechat sdk reference design:
https://support.dialog-semiconductor.com/connectivity/reference-designs?...

我试着下载微信sdk参考设计并运行到睡眠模式(const static sleep\u state\u t app\u default\u sleep\u mode=ARCH\u EXT\u sleep\u ON;)在user\u config.h文件中。这个问题和我的一样,设备睡眠,智能手机应用程序AirSyncDebugger无法发现

这里有两个问题:
- did wechat SDK reference design tested for extended sleep mode?
- 如何将WeChat SDK参考设计使用Dialog SDK替换为5.0.4标准SDK?

谢谢,最好的问候,

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
Hi smdzjl007,

Hi smdzjl007,

- Yes, the wechat is tested to operate under extended sleep mode and i am also able to see the advertising string when the device is in sleep mode.

- 我没有得到这个问题,你是什么意思如何更换FW?您可以通过JTAG直接运行其中一个SDK示例,或者您可以通过UART下载示例的.hex文件,或者如果您有闪存,可以刻录闪光灯,电涌580将从闪存下载代码。

谢谢你的对话

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
嗨,MT\u Dialog团队,

嗨,MT\u Dialog团队,

问题来自这样一个事实:11月15日微信参考设计发布了14580 SDK版本x,因为最近有新的14580 SDK版本5.0.4,如果我需要将微信参考设计SDK源代码升级到5.0.4 SDK,我应该怎么做?

谢谢,最好的问候,

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
嗨smdzji007,

嗨smdzji007,

如果你使用的是dialog提供的微信,那么你应该编译代码并下载到你的设备上。如果设备使用闪存或EEPROM内存来加载固件,您可以通过智能代码段工具,通过JTAG或UART(取决于设备可用的接口)擦除和重新刻录设备。如果微信在OTP中被烧掉,你将无法更新OTP,因为你只能编写一次程序。您还可以通过keil和JTAG接口将新的fw直接下载到sysram来测试新的源代码(同样,如果您的设备上有此接口,您也可以在这种情况下调试代码),还可以通过UART通过Smart Snippets工具将代码下载到sysram中。

谢谢你的对话

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
亲爱的MT\u dialog,

亲爱的MT\u dialog,

Today I ask my colleague to measure clock output signals. You can find attached 3 jpg.
如果禁用睡眠,我们可以测量32khz和16mhz时钟:32k_withoutsleep.jpg和16m_withoutsleep.jpg
If enable sleep, only can see 32KHz signal:32K_withsleep.jpg

我正在使用sdk5.0.4,从SDK示例文件夹中使用BLE_APP_SLEEPMODE。根据示例代码,唤醒持续时间为0.5s,因此应该非常快。但我的测试结果看起来看起来14580无法摆动,我无法从智能手机扫描14580设备

你能帮助暗示更麻烦的射击吗?

BTW,应该在睡眠前/之后配置clk_16m_reg作为xtal16_bias_sh_enable寄存器吗?

谢谢和最好的问候

附件:
MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
嗨smdzji007,

嗨smdzji007,

BLE_APP_SLEEPMODE在特定时间段内(几秒钟)后(几秒钟)和XTAL16启用时禁用XTAL16后,您可以尝试使用不断睡眠的另一个项目,但在预定义的时间内唤醒以进行广告再次检查。您不必配置CLK_16M_REG默认,SDK将在PERIPH_INIT()函数中处理该功能。

此外,特定项目也实现了按钮按下,当按下设备唤醒并继续宣传,必须尝试按下该按钮以唤醒设备。

另外请勿在无关主题中发布问题,如果有任何后续问题,您可以随时创建一个新的线程。

谢谢你的对话

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
嗨mt_dialog,

嗨mt_dialog,

如果确认BLE_APP_SLEEPMODE行为在我的电路板上是正确的,那么我应该在14580进入延伸或深睡眠后启用自动唤醒添加一个XTL32定时器回拨功能或还有什么?我应该用哪个示例项目参考?

我在这里发布问题的原因是因为我发现我的问题与当前的线程主题相关,我找不到创建新线程的按钮。如果我的发布给您带来任何方便,我需要向您说道歉。

谢谢,最好的问候,

Qinjiny_Dialog
Offline
最后一次见到:2周2天前
工作人员
已加入:2016-11-01 05:47
Hi smdzjl007,

Hi smdzjl007,

You could try function应用程序\u简易\u计时器如果您指定的睡眠时间不是太长(如5分钟)

布罗尔,

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
谢谢你的反馈,Qinjiny

谢谢你的反馈,Qinjinyfrom Dialog team,

正如前支持工程师所说,当睡眠被启用时,XTAL16时钟被禁用,app\u easy\u timer能否正常工作?我是否应该编写一个回调函数,通过注册如下回调函数来启用XTAL32时钟?

static const struct arch_main_loop_callbacks user_app_main_loop_callbacks = {
.app_before_sleep = my_app_enable_xtal32_clock,
.app_resume_from_sleep = my_app_disable_XTAL32_clock,
};

SMDZJL007.
Offline
最后一次见到:3年10个月前
已加入:2015-08-04 15:07
嗨mt_dialog,

嗨mt_dialog,

我重新研究了ble\u app\u sleepmode示例,在da1458x\u config\u advance.h中找到了以下定义

/****************************************************************************************************************/
/ *从外部处理器运行主机应用程序的唤醒。* /
/****************************************************************************************************************/
#undef CFG\u外部唤醒

/****************************************************************************************************************/
/ *当消息发送到GTL * /时,唤醒外部处理器
/****************************************************************************************************************/
#未定义CFG\u唤醒\u扩展\u处理器

Not sure whether it is aligned with your previous answer that the ble_app_sleepmode fall into permanent sleep until external button press trigger wake up. So, how this example code to undefine the external wake up but using external wake up?

对我令人困惑

Best regards,
smdzjl

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
Hi smdzjl007,

Hi smdzjl007,

您在那里看到的定义与BLE_APP_SLEEPMODE项目无关,但在580以完全嵌入模式(由SDK定义)时,使用外部唤醒。如果您有兴趣查看指示Pargulullar项目的代码,您可以检查以下内容:

  • user_app_adv_start() -> a ke_timer is started with adv_data_update_timer_cb() as a handler to execute when elapsed.
  • When time elapses adv_data_update_timer_cb() executes and stops the advertising procedure.
  • 当广告过程停止时,user_app_adv_undirect_complete()处理程序被调用。
  • 在user_app_adv_undirect_complete()中,调用函数ARCH_BLE_EXT_WAKEUP_ON()以防止以稳定间隔唤醒580,并且APP_BUTTON_ENABLE()设置唤醒定时器和用于唤醒以及相应的回调的相应GPIO为了醒来的事件。

谢谢你的对话

梁云豪
Offline
最后一次见到:3年2个月前
已加入:2016-03-05 13:38
嗨mt_dialog,

嗨mt_dialog,

现在我使用da14580 pro套件,我将app_default_sleep_mode设置为arch_sleep_off。当我将十六进制文件刻录到SPI FALSH时,它可以很好地工作,按RESET按钮并将子板拉离母板。(它由外部电池供电。)可以从我的手机扫描。但是,当我将App_default_sleep_mode设置为Arch_ext_sleep_on时,无法从手机扫描。我是否必须设置任何其他代码?哪个辅导器在进入睡眠模式时使用芯片使用?谢谢。

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
嗨梁云浩,

嗨梁云浩,

Please dont post questions in irrelevant topics, you can always create a new thread.

关于您的问题,尝试直接从Keil运行项目,并在延长睡眠状态并检查您是否能够查看您的设备广告,也尝试使用SDK示例进行操作并检查。当设备处于睡眠模式时,使用LP时钟,这意味着设备与外部XTal32或使用RCX操作,可以从DA1458x_config_Advanced.h文件中的CFG_LP_CLK定义配置此选项。

谢谢你的对话

zhounaichun
Offline
最后一次见到:3年4个月前
已加入:2017-07-17 02:54
那是工作!

那是工作!
我的问题:当我设置扩展睡眠模式时,我的手机无法连接到我的BLE设备,但如果我设置sleep_mode = arch_sleep_off,则是正常的。然后我将cfg_lp_clk(da458x_config_advance.h)的值从lp_clk_xxtal32更改为lp_clk_rcx20,即确定。
但我还有一个问题,那就是当我把睡眠模式设置为深度睡眠时,我的手机找不到可移动设备。
如果有人能告诉我为什么?

SDK:5.0.3 5.0.4
设备:不是非官方设备

MT\u对话框
Offline
最后一次见到:2 months 1 week ago
工作人员
已加入:2015-06-08 11:34
嗨zhounaichun,

嗨zhounaichun,

好吧,如果你在开发模式下,你已经设置了ARCH\u DEEP\u SLEEP\u,并且你还将内存配置更改为CFG\u MEM\u MAP\u DEEP\u SLEEP(取消CFG\u MEM\u MAP\u EXT\u SLEEP并设置CFG\u MEM\u MAP\u DEEP\u SLEEP),那么你应该能够在DEEP SLEEP模式下测试fw。但是要查看设备的正确功耗,您必须用固件烧录OTP,因此每次唤醒时,图像都会从OTP复制到系统内存,因为在深度睡眠时系统内存会关闭。

谢谢你的对话