扩展睡眠模式

5个帖子/ 0个新
最后发表
亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
扩展睡眠模式

支持团队:

我正在基于SDK3.0.8, sample128测试我的代码。

当我使用基本的DVK时,它既适用于Ext睡眠模式,也适用于没有ext_sleep_mode的情况。对于ext_sleep模式,基本的DVK停止调试。

当我将它刻录到我的电路板(EEPROM)时,代码在未激活的ext_sleep_mode下工作良好。如果我设置“#define CFG_EXT_SLEEP”并将其打到我的板(EEPROM)中,当它被重置时,我可以收到广告,然后没有广告。重新设置后,广告又来了,然后又丢失了。因此,停止广告的ext_sleep_mode有问题。请建议如何修复,哪里有问题?

谢谢,

设备:
MT_dialog
离线
最后看到:2个月6小时前
工作人员
加入:2015-06-08 34
嗨,Alex Luo,

嗨,Alex Luo,

请检查你以前的帖子http://support.dialog-semiconductor.com/advertising-problem

另外,由于你在这里提供了一些额外的信息,据我所知,当代码最初下载到你的板上时,我怀疑它需要一段时间,直到设备进入睡眠状态,所以在这段时间内,似乎你的设备是广告,一旦设备进入延长睡眠,它无法广告,你能通过使用智能片段检查这一点吗?我还能想到的是,你能检查da模块中的调试器是否出于某种原因被启用,并阻止da进入睡眠状态吗?

由于MT_dialog

亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
嗨太,

嗨太,

这个案例不同于关于广告的另一个问题,后者不是ext_sleep_mode的问题。没有广告是偶尔发生的,可以通过重置来修复。

这个问题是ext_sleep_mode,它不能在我的EEPROM板上工作(在启动时广告,然后它停止)。对于基本的DVK,在停止调试器会话后使用ext_sleep_mode可以很好地工作。

我猜原因来自调试器,但试图设置DEVELOPMENT_DEBUG =0(从OPT引导,原来是1为jtag),问题仍然存在。所以,这个问题真的是由调试器仍然在DA芯片上启用引起的吗?

在项目中搜索调试器,在BLE_SLP_Handler(void)中调用SetBits16(SYS_CTRL_REG, DEBUGGER_ENABLE, 0)。我认为这个问题可能不是调试器造成的。也请建议如何禁用调试器。

同样的代码,我把它下载到基本的DVK,并留下“停止调试会话”,它工作得很好。这意味着代码正常工作,而不是ext_sleep_mode问题影响广告。
同样的代码,我将HEX下载到我的板上(在EEPROM中),我可以在启动后看到广告,然后关闭。我再次重置,它重复同样的事情。我已经使用SDK3.0.6与ext_sleep_mode类似的代码,它工作得很好(也使用EEPROM)。

请告诉我,我可能需要为ext_sleep_mode设置或更改一些内容?或者调试器问题,我不能真正禁用它?

期待您的指教!
亚历克斯

MT_dialog
离线
最后看到:2个月6小时前
工作人员
加入:2015-06-08 34
嗨,Alex Luo,

嗨,Alex Luo,

我认为这两篇文章关注的是同一个事件,关于调试器的SetBits16(SYS_CTRL_REG, DEBUGGER_ENABLE,0)足以禁用它,而且由于事件不会发生在使用开发工具包时,你应该没问题。事实上,你可以在重置后发布广告,这意味着你的设备正常启动,并在你要睡觉时挂起。您能否检查您的设备是否由于任何原因进入了硬故障或NMI处理程序(尝试在其中一个处理程序中设置一个GPIO)?你用看门狗吗?唯一会阻止da运行的事情应该是调试器(我们可以排除),如果有硬故障或NMI

由于MT_dialog

亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
嗨太,

嗨太,

通过正确设置32K时钟,这个问题得到了解决。

谢谢,
亚历克斯

主题锁定