BLE模块卡住了

4个帖子/ 0新
最后一篇
Michao.
离线
最后一次露面:2个月4周前
加入:2015-08-11 14:30
BLE模块卡住了

你好。
我们使用DA14580(Murata)如下:
DA14580因异步事件而从扩展睡眠模式唤醒,并使用超时启动不可连接的广告流程。如果在异步事件时,上一个广告过程仍然正在进行,它将被取消,并将启动具有更新数据的新广告。
因此,实际上da14580从异步和同步事件中唤醒。
通常它有效,但有时DA14580刚刚陷入困境,不会产生同步事件,不会响应外部事件。
外部事件之间的间隔可以是几分钟或几小时的几毫秒。

它看起来有一个导致问题的特定场景。DA14580从异步事件中唤醒,然后从同步事件中唤醒然后粘在一起。
再次,通常它有效。

当DA14580卡住时,消耗的电流约为500微型安培。
你有一些想法是什么原因和如何调试它?
此致

设备:
mt_dialog.
离线
最后一次露面:3个月3周前
职员
加入:2015-06-08 11:34
嗨michao,

嗨michao,

您必须检查应用程序停止何处的位置,在应用程序停止时尝试将调试器挂钩,我想代码在hardfault_handler或nmi_handler处完成(如果您使用的是看门狗)。如果在启用睡眠时发生,请检查。

谢谢mt_dialog.

Michao.
离线
最后一次露面:2个月4周前
加入:2015-08-11 14:30
我想澄清我们的

我想澄清我们的问题:

1)系统睡觉。(我很确定MCU正在睡觉。我使用GPIO切换来决定应用程序所在的位置。我在“exch_goto_sleep”函数中,就在“ext_wakeup_enable”和“low”之前,我将其设置为“high”。在“set_pad_functions”之后的“periph_init”中。

2)有时系统不会从外部事件或同步事件(定时器)醒来。

问候

mt_dialog.
离线
最后一次露面:3个月3周前
职员
加入:2015-06-08 11:34
嗨michao,

嗨michao,

我无法讲述为什么会从您提供的信息中发生这种情况,您必须检查上面提到的代码停顿的位置,当设备无响应时代码的状态是什么。如果您可以测量功耗并且当设备正常运行时,休眠时间跌落,则功耗接近1.4UA,然后发生事件,并且功耗为500UA,然后代码击中断言的某些方法(如上所述,硬盘,nmi或警告)。

谢谢mt_dialog.