嗨,我们有精确的硬件(PCB)作为邻近参考设计,我可以刻录接近智能标签固件并能够与其进行通信。我的设置很好。我使用SmartTags Android应用程序来测试它。我正在尝试修改固件并与应用程序连接。最初它有效,但在一段时间后它会睡觉,它永远不会在Android应用程序中显示。请让我们知道解决方案。即使是示例固件,也没有修改代码也会看到此行为。无论如何都可以重新配置或避免睡眠模式..etc。帮助需要,谢谢。
嗨Madhusf,
默认情况下,接近演示将停止广告,并在一段时间后进入深度睡眠,直到一个按钮被按下。这不是一个问题,而是一个节省电力的设置。
您不必完全禁用睡眠,只需删除广告上的TIMOUT设置。
转到user_config.h.
set .adv_scenario = def_add_forever,
在user_default_hnd_conf
并看看它是否适用于您想要的
嗨qinjiny,谢谢你的回复。我检查了代码。这个设置已经存在于下面的每个user_config.h中。如果有其他设置缺失,请让我知道。另外,请让我知道这个按钮的功能是在哪个代码被照顾。------------------------------------.....静态const struct default_handlers_configuration user_default_hnd_conf = {//配置默认处理程序使用的通告操作/ /可能的值:// - def_adv_forever/ /——DEF_ADV_WITH_TIMEOUT。adv_scenario = def_add_forever,
//配置DEF_ADV_WITH_TIMEOUT的通告时间。//以10ms为计时单位。使用MS_TO_TIMERUNITS宏进行转换//从毫秒(ms)到定时器单位。.Advertise_Period = MS_TO_TIMERUNITS(10000),
//配置默认处理程序的安全开始操作//如果启用了安全性(cfg_app_security).security_request_scenario = def_sec_req_on_connect.};
..------------------------------
外部唤醒机制正在app_advertise_complete()回调在user_proxr.c文件。但是,如果场景设置为DEF_ADV_FOREVER,则系统不应该到达此点。如果这个系统仍然处于休眠状态,并且永远不会醒来,那么就存在其他一些潜在的问题。请尝试以下步骤来解决硬件/软件中的问题。
1.尝试在开发套件上运行一个“开箱即用”的prox_reporter项目,并将Adv场景设置为“永远”。如果您没有看到任何问题,那么在您的自定义硬件上运行相同的映像,看看是否工作良好。如果这里有问题,那么问题可能是在自定义硬件。
2.另外,用你现在使用的导致睡眠问题的图像编写一个Dev Kit。使用smartnippets工具箱中的Power Profiler工具,在它处于永久睡眠阶段时检查读数。该阅读可以为理解系统是处于完全睡眠状态还是出现崩溃提供一些见解。
3.您还可以从Keil MDK调试此程序,并查看它是否达到任何断点或看门狗重置等,这将确认崩溃。
请让我们知道你在这些测试中的观察。
此外,您在默认项目中取出的所有更改是什么。这可能会提供有关导致此问题可能的一些信息。
最好的lc_dialog
嗨lc_dialog,谢谢你的回复。我尝试过了下面的回复。
1.尝试在开发套件上运行一个“开箱即用”的prox_reporter项目,并将Adv场景设置为“永远”。如果您没有看到任何问题,那么在您的自定义硬件上运行相同的映像,看看是否工作良好。如果这里有问题,那么问题可能是在自定义硬件。答:是的,没有发现问题,工作正常。实际上,应用程序正在后台锁定蓝牙会话/对象。所以,必须重新启动或关闭应用程序来重新扫描和连接。
2.另外,用你现在使用的导致睡眠问题的图像编写一个Dev Kit。使用smartnippets工具箱中的Power Profiler工具,在它处于永久睡眠阶段时检查读数。该阅读可以为理解系统是处于完全睡眠状态还是出现崩溃提供一些见解。答:我不知道如何使用功率分析器,但使用它:它总是显示相同的电流,没有变化。请建议设置。
3.您还可以从Keil MDK调试此程序,并查看它是否达到任何断点或看门狗重置等,这将确认崩溃。ANS:没尝试过,我猜现在的睡眠问题是解决的。
问题:但是,我需要知道我们如何从没有任何GPIO触发的情况下唤醒睡眠或深睡眠?请建议。随着基于象限测量的电流电源绘制,显示了该接近项目的约600UA电流使用情况。请帮助我们降低功率和最佳值。
谢谢你!MadhuSF
嗨MadhuSF,
您是否跟踪了如何解决问题。请在此帖子上发布,以便其他用户也可以利用它。
关于你的问题。只要将睡眠模式设置为延长睡眠,你就可以从延长睡眠中醒来。它将在内部配置一个计时器,并每隔一段时间唤醒一次,以执行任何BLE事件或任何用户定义的事件(您需要在特定的回调点添加这些事件以处理任何数据)。如果您在应用程序中不进行任何数据处理,那么您的睡眠电流应该比您现在所经历的要小得多。我建议检查你的设计是否有电流泄漏等,以确保你的外部设备没有额外的电流。
如果您想让我们对您的设计做一个快速的回顾,请将您的原理图以及SWITCH上电感(L1)和16MHz晶体(Y1)的数据表发送给我们。如果你想安全地分享这个,我可以发给你一个安全的服务器链接来上传你的文件。
亲爱的LC_Dialog,请发送安全链接,以便我将分享您的设计,要求和睡眠要求。谢谢你。
使用下面的链接将文件上传到服务器。请注意,您只能在这里上传。
https://diasemi.egnyte.com/ul/jrgzqaa9x6.
从原理图中,我注意到您正在使用设计中的模块。模块设计指南可能与我们的设计指南不同。我们对客户设计的基本检查已经在模块上完成,并且根据模块供应商的建议,这些组件的其余部分应该被设计为系统,这是模块供应商可以帮助的。
我建议首先查看你的软件应用程序,看看设备是否真的进入睡眠状态。因为您看到的当前消耗接近活动电流,这可能主要是由于软件设计中的一些问题,或者如果主循环被修改,保持处理器活动。关于如何利用我们的工具,如SmartSnippets工具箱等,请参阅支持网站上的文档,您可以查看程序执行期间发生了什么。
嗨Madhusf,
默认情况下,接近演示将停止广告,并在一段时间后进入深度睡眠,直到一个按钮被按下。这不是一个问题,而是一个节省电力的设置。
您不必完全禁用睡眠,只需删除广告上的TIMOUT设置。
转到user_config.h.
set .adv_scenario = def_add_forever,
在user_default_hnd_conf
并看看它是否适用于您想要的
嗨qinjiny,谢谢你的回复。我检查了代码。
这个设置已经存在于下面的每个user_config.h中。如果有其他设置缺失,请让我知道。另外,请让我知道这个按钮的功能是在哪个代码被照顾。
------------------------------------
.....
静态const struct default_handlers_configuration user_default_hnd_conf = {
//配置默认处理程序使用的通告操作
/ /可能的值:
// - def_adv_forever
/ /——DEF_ADV_WITH_TIMEOUT
。adv_scenario = def_add_forever,
//配置DEF_ADV_WITH_TIMEOUT的通告时间。
//以10ms为计时单位。使用MS_TO_TIMERUNITS宏进行转换
//从毫秒(ms)到定时器单位。
.Advertise_Period = MS_TO_TIMERUNITS(10000),
//配置默认处理程序的安全开始操作
//如果启用了安全性(cfg_app_security)
.security_request_scenario = def_sec_req_on_connect.
};
..
------------------------------
嗨Madhusf,
外部唤醒机制正在app_advertise_complete()回调在user_proxr.c文件。但是,如果场景设置为DEF_ADV_FOREVER,则系统不应该到达此点。如果这个系统仍然处于休眠状态,并且永远不会醒来,那么就存在其他一些潜在的问题。请尝试以下步骤来解决硬件/软件中的问题。
1.尝试在开发套件上运行一个“开箱即用”的prox_reporter项目,并将Adv场景设置为“永远”。如果您没有看到任何问题,那么在您的自定义硬件上运行相同的映像,看看是否工作良好。如果这里有问题,那么问题可能是在自定义硬件。
2.另外,用你现在使用的导致睡眠问题的图像编写一个Dev Kit。使用smartnippets工具箱中的Power Profiler工具,在它处于永久睡眠阶段时检查读数。该阅读可以为理解系统是处于完全睡眠状态还是出现崩溃提供一些见解。
3.您还可以从Keil MDK调试此程序,并查看它是否达到任何断点或看门狗重置等,这将确认崩溃。
请让我们知道你在这些测试中的观察。
此外,您在默认项目中取出的所有更改是什么。这可能会提供有关导致此问题可能的一些信息。
最好的
lc_dialog
嗨lc_dialog,谢谢你的回复。我尝试过了下面的回复。
1.尝试在开发套件上运行一个“开箱即用”的prox_reporter项目,并将Adv场景设置为“永远”。如果您没有看到任何问题,那么在您的自定义硬件上运行相同的映像,看看是否工作良好。如果这里有问题,那么问题可能是在自定义硬件。
答:是的,没有发现问题,工作正常。实际上,应用程序正在后台锁定蓝牙会话/对象。所以,必须重新启动或关闭应用程序来重新扫描和连接。
2.另外,用你现在使用的导致睡眠问题的图像编写一个Dev Kit。使用smartnippets工具箱中的Power Profiler工具,在它处于永久睡眠阶段时检查读数。该阅读可以为理解系统是处于完全睡眠状态还是出现崩溃提供一些见解。
答:我不知道如何使用功率分析器,但使用它:它总是显示相同的电流,没有变化。请建议设置。
3.您还可以从Keil MDK调试此程序,并查看它是否达到任何断点或看门狗重置等,这将确认崩溃。
ANS:没尝试过,我猜现在的睡眠问题是解决的。
问题:但是,我需要知道我们如何从没有任何GPIO触发的情况下唤醒睡眠或深睡眠?请建议。随着基于象限测量的电流电源绘制,显示了该接近项目的约600UA电流使用情况。请帮助我们降低功率和最佳值。
谢谢你!
MadhuSF
嗨MadhuSF,
您是否跟踪了如何解决问题。请在此帖子上发布,以便其他用户也可以利用它。
关于你的问题。
只要将睡眠模式设置为延长睡眠,你就可以从延长睡眠中醒来。它将在内部配置一个计时器,并每隔一段时间唤醒一次,以执行任何BLE事件或任何用户定义的事件(您需要在特定的回调点添加这些事件以处理任何数据)。如果您在应用程序中不进行任何数据处理,那么您的睡眠电流应该比您现在所经历的要小得多。我建议检查你的设计是否有电流泄漏等,以确保你的外部设备没有额外的电流。
如果您想让我们对您的设计做一个快速的回顾,请将您的原理图以及SWITCH上电感(L1)和16MHz晶体(Y1)的数据表发送给我们。如果你想安全地分享这个,我可以发给你一个安全的服务器链接来上传你的文件。
最好的
lc_dialog
亲爱的LC_Dialog,请发送安全链接,以便我将分享您的设计,要求和睡眠要求。谢谢你。
嗨MadhuSF,
使用下面的链接将文件上传到服务器。请注意,您只能在这里上传。
https://diasemi.egnyte.com/ul/jrgzqaa9x6.
最好的
lc_dialog
嗨MadhuSF,
从原理图中,我注意到您正在使用设计中的模块。模块设计指南可能与我们的设计指南不同。我们对客户设计的基本检查已经在模块上完成,并且根据模块供应商的建议,这些组件的其余部分应该被设计为系统,这是模块供应商可以帮助的。
我建议首先查看你的软件应用程序,看看设备是否真的进入睡眠状态。因为您看到的当前消耗接近活动电流,这可能主要是由于软件设计中的一些问题,或者如果主循环被修改,保持处理器活动。关于如何利用我们的工具,如SmartSnippets工具箱等,请参阅支持网站上的文档,您可以查看程序执行期间发生了什么。
最好的
lc_dialog