不会从长时间的睡眠中醒来

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
10个帖子/ 0个新
最后发表
第欧根尼
离线
最后看到:2年6个月前
加入:2018-10-04 05:09
不会从长时间的睡眠中醒来

嗨,对话框中,

现在我试图通过基于ble_app_all_in_one的项目从长时间睡眠中醒来。
我认为唤醒是可能的从WAKE PIN边缘变化。
我写了一个唤醒启用功能,通过如下方式唤醒唤醒引脚上升沿,并将其设置为app_resume_from_sleep函数。

静态const struct arch_main_loop_callbacks
.app_on_init = user_app_init,
.app_on_ble_powered = &app_on_ble_powered,
.app_on_system_powered =零,
.app_before_sleep =零,
.app_validate_sleep =零,
.app_going_to_sleep =零,

.app_resume_from_sleep = enable_Wake_from_sleep / /空,
};

空白enable_Wake_from_sleep(空白)

app_easy_wakeup_set(app_wakeup_cb);
wkupct_register_callback(enable_wakeup_cb);
wkupct_enable_irq (WKUPCT_PIN_SELECT (WAKE_PIN_PORT WAKE_PIN_BIT,),
WKUPCT_PIN_POLARITY (WAKE_PIN_PORT WAKE_PIN_BIT WKUPCT_PIN_POLARITY_HIGH),
1);
}

但是WAKE不是通过WAKE PIN的上升边缘完成的。
原因是什么,我怎么能解决它?
如果有人知道补救方法或者有过解决的经验,请给我一些建议。

谢谢,
第欧根尼

设备:
PM_Dialog
离线
最后看到:29分35秒前
工作人员
加入:2018-02-08 11:03
嗨Diogenes,

嗨Diogenes,

你能解释一下你想完成什么吗?如果我理解正确,你希望你想通过外部中断异步唤醒,例如通过按钮?如果您想要类似的东西,BLE_APP_ALL_IN_ONE示例已经包含此实现。此外,SDK中还有另一个示例,BLE_APP_SLEEPMODE示例。此示例演示如何使用睡眠模式API并在运行时更改睡眠模式。设备广告已定义的时间量(app_adv_data_update_to),默认值为10 s。只要设备处于广告状态,它的睡眠模式将设置为深睡眠状态。在上述超时到期后,如果设备未进入连接状态,则会停止广告。现在芯片没有任何作用,并等待外部事件退出睡眠状态。你可以按一个按钮唤醒它.按下按钮后,设备将在预定时间内再次开始发布广告。在ble_app_sleep中实现的唤醒过程的功能,也在ble_app_all_in_one示例中实现。为了获得这个SDK示例的进一步信息,请阅读柱5(睡眠模式)和柱7(所有在一个)部分UM-B-050: DA1458x Software Developers Guide (SDK5)来自我们的支持页面的用户手册。

谢谢,PM_Dialog

第欧根尼
离线
最后看到:2年6个月前
加入:2018-10-04 05:09
嗨,对话框中,

嗨,对话框中,

感谢你的回复。
我想我从理论上理解了,但我也理解了唤醒中断只会在几秒钟后发生。
首先我检查了“ble_app_sleepmode”示例,如果唤醒中断正常发生。
并且我发现唤醒中断才能从重置超过10秒后有效。
我也发现,下一个唤醒中断只有在从前唤醒中断到10秒后才发生。
即使在短暂的间隔内重置和连续,立即使用唤醒中断。
那么我怎么能更短的时间间隔时间来配置最小的间隔时间?
我无法在示例项目中找到app_add_data_update_to。

我发现了另一个问题。
我将WAKE PIN从P1.1改为P0.1,并连接其他MCU的输出引脚。
在DA重置后20秒后,其他MCU上升到H的信号。
虽然SW但通过信号发生唤醒中断。
我认为H持续时间不足以激活唤醒中断。
如果是对的,请告诉我如何配置持续时间?

我在等你好的答案。

谢谢,
第欧根尼

PM_Dialog
离线
最后看到:29分35秒前
工作人员
加入:2018-02-08 11:03
嗨,第欧根尼,

嗨,第欧根尼,

您可以更改广告的默认持续时间,因为设备唤醒,通过配置App_add_data_update_to定义,该定义放入user_sleepmode.h标题文件中。默认值为1000(10秒)。您能否请确保您对user_periph_setup.h / .c文件执行了正确的配置?P1.1 GPIO是默认配置为输入拉动,因此如果在user_sleepmode.c文件中查看来自app_button_enable()函数的wkupct_enable_irq(),则会看到极性是低电平的。请你描述你想要完成的事情吗?了解您的要求并为您提供适当的支持,这将是非常有帮助的。如果您发现上述任何答案有用请标记其中一个接受。

谢谢,PM_DIalog

第欧根尼
离线
最后看到:2年6个月前
加入:2018-10-04 05:09
嗨,对话框中,

嗨,对话框中,

感谢你的回复。
对于APP_ADV_DATA_UPDATE_TO,我找到了,问题解决了。
我看到最小间隔是10毫秒。
我最初使用GPIO通过外部信号上升INT,后来我尝试使用相同引脚的WAKEUP INT。
通过执行GPIO INT和WAKEUP INT,我发现有时只有唤醒int发生,而GPIO INT虽然不起作用。
至少我不能通过调试捕获GPIO INT,这是可能的吗?
如果你能给我一些有用的信息,我会很高兴的。

谢谢,
第欧根尼

PM_Dialog
离线
最后看到:29分35秒前
工作人员
加入:2018-02-08 11:03
嗨,第欧根尼,

嗨,第欧根尼,

对不起,你的描述让我有点困惑。你能解释一下你想完成什么吗?我无法理解你的意思,我最初使用GPIO通过外部信号上升INT,后来我尝试使用相同引脚的WAKEUP INT。你想唤醒你的设备与外部信号,而不是一个按钮,因为它是实现在ble_app_sleepmode的例子?当设备处于延长睡眠模式时,您是否试图捕获GPIO INT ?请提供更多关于您的实现的信息,这将非常有帮助。此外,对于调试过程非常有用的文档是第8课:调试methods_v1.1来自我们的支持页面。在DA14580部分的“教程”和“文档”选项卡中,您可以找到所有可用文档。如果您发现上述任何答案有用请标记其中一个接受。

谢谢,PM_Dialog

第欧根尼
离线
最后看到:2年6个月前
加入:2018-10-04 05:09
感谢您的回复

谢谢你的回复,

>您是否希望使用外部信号唤醒您的设备,而不是使用按钮,因为它在BLE_APP_SLEEPMODE示例中实现?

是的,我用P0.1作为外部唤醒针。

当设备处于延长睡眠模式时,您是否试图捕获GPIO INT ?

是的,是的,我需要相同的P0.1引脚的GPIO INT。
首先,我认为唤醒int和gpio int用相同的引脚发生,但我发现gpio int似乎有时跳过。
所以我把必要的处理器从GPIO INT移到了WAKEUP INT。
我的程序本身就像我想要处理程序内容一样,我想要询问使用与Wakeup Int的相同引脚跳过现象GPIO Int是否正常。

如果您能给我介绍一下,我会很高兴的。

谢谢,
第欧根尼

PM_Dialog
离线
最后看到:29分35秒前
工作人员
加入:2018-02-08 11:03
嗨Diogenes,

嗨Diogenes,

如果您使用DA14580使用PRO-DK或自定义板,请澄清您是否可以澄清?在Pro-DK中,按钮连接到PIN1_1。此外,您能否解释你用“GPIO int”和“唤醒int”的意思。对不起,但我无法理解你的意思。您是否想用连接到PIN1_1的按钮唤醒,并且在同一引脚中您想要连接外部GPIO中断?BLE_APP_SLEEPMODE示例已实现唤醒过程,如果您想更改GPIO唤醒,则应在USER_PERIPH_SETUPH / C中配置它。请尝试清楚地描述您试图完成的内容,以便为您提供正确的指导方针。

谢谢,PM_Dialog

第欧根尼
离线
最后看到:2年6个月前
加入:2018-10-04 05:09
感谢你的回复,

感谢你的回复,

>请问您是使用Pro-DK还是DA14580的定制板?

我正在使用Murata的P2ML3656,在电路板上也连接到SW。
但是我使用的是P0.1而不是P1.1, WAKEUP INT和GPIO INT是由连接到P0.1的外部MCU信号产生的。
无论如何,我不使用船上的sw。
首先,我只实现了GPIO INT,然后我尝试如果两个WAKEUP INT和GPIO INT发生或不使用相同的引脚。
正如我之前写的,我为WAKEUP INT和GPIO INT设置了相同的引脚,结果,GPIO INT有时可能被跳过,尽管WAKEUP INT发生了。
我想问的是行为正常是否正常。

谢谢,
第欧根尼

PM_Dialog
离线
最后看到:29分35秒前
工作人员
加入:2018-02-08 11:03
嗨,第欧根尼,

嗨,第欧根尼,

如果将GPIO配置为唤醒中断,DA14580可以唤醒。你把GPIO INT注册到唤醒api了吗?如果我能正确理解的话,这是正常的行为。我认为这份文件可以帮助你:

https://support.dialog-semiconductor.com/system/files/resources/AN-B-026_DA14580%20External%20wake-up%20mechanisms_v1.0.pdf

谢谢,PM_Dialog