ble_app_sleepmode是否可以与XTAL16M一起工作,而不与XTAL32K一起工作

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
6个职位/0个新职位
最后一篇文章
阿努希亚
离线
最后一次见到:6个月1周前
已加入:2017-12-20 02:30
ble_app_sleepmode是否可以与XTAL16M一起工作,而不与XTAL32K一起工作

你好,

我有一个自定义板与XTAL16M连接,没有XTAL32K连接。当我在非可连接模式下运行ble\u app\u sleepmode示例时,WDOG超时发生并进入函数/例程NMI\u HandlerC。

当我评论da1458x_config_basic.h中的行#define cfg_wdog时,我注意到代码留在(!ble_deep_sleep_stat_getf());永远。

我也不能用RCX20。代码有问题。

我如何在没有连接XTAL32K的情况下解决此问题?

我使用的是sdk6.0.10.511

谢谢您,

阿努希亚

设备:
PM\U对话框
在线的
最后一次见到:12分29秒前
工作人员
已加入:2018-02-08 11:03
嗨,阿努希亚,

嗨,阿努希亚,

由于您的自定义板上没有XTAL32,因此您应该在睡眠状态时切换RCX的低功耗时钟。请检查da1458x_config_advanced.h文件并将cfg_lp_clk从lp_clk_xxtal32更改为lp_clk_rcx20。此外,请记住,XTAL16M自适应算法仅使用XTAL23K工作而不是RCX,作为LP时钟,因此您应该拒绝CFG_XTAL16M_ADTIVE_SETTLING宏检查DA1458X_CONFIG_ADVANCE.h文件。关于WDOG,您不应该发表评论,因为它是SDK定义,并且您将无法建立您的项目。如果您不想使用它,您应该删除它。但是,如果WDOG被禁用,并且您的固件卡在某个地方,那么WDOG将永远不会击中。因此,我的建议是保持WDOG为您的调试启用。

谢谢,下午好

阿努希亚
离线
最后一次见到:6个月1周前
已加入:2017-12-20 02:30
>关于WDOG,你

>关于WDOG,您不应该注释掉它,因为它是SDK定义,您将无法构建您的项目。如果你不想使用它,你应该取消它的定义。但是,如果WDOG被禁用,并且您的固件被卡在某个地方,那么您将永远无法访问WDOG。因此,我的建议是为调试启用WDOG。

正如我在最初的消息中提到的,这是暂时的,以看看发生了什么。

>此外,请记住,XTAL16M自适应调整算法仅适用于XTAL23K,而不适用于RCX(作为LP时钟),因此应取消CFG\u XTAL16M\u adaptive\u settling macro check da1458x\u config\u advanced.h文件的定义。

当系统处于不可连接配置时,它将如何影响系统?耗电量会受到影响吗?“XTAL16M自适应调整算法”有什么好处?

阿努希亚
离线
最后一次见到:6个月1周前
已加入:2017-12-20 02:30
你好,

你好,

当我采用上述建议的方法时,我面临着一个与上述解决方案相关的新问题。

(我将DA14586与6.0.10.511 SDK一起使用。使用中的建议将代码ble\u app\u sleepmode修改为non\u connectable modehttps://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-hardware-device-reference-designs/mnfdata-update#comment-24042.

不可能有外部中断。在广告之间睡觉,需要自动醒来)

系统传输了大约20分钟,然后进入rwble.c下面一行的assert warning。

#if(use_xtal16m_adaptive_settling)
如果(&&())&&()){}

#其他
if(development_debug)
//如果此断言命中,则LP ISR持续的时间比
//已通过LP\u ISR\u TIME\u XTAL32\u CYCLES和LP\u ISR\u TIME\u USEC保留。
if(睡眠周期&&(睡眠周期断言警告(0)//(在这里输入)
#结束

所以我将LP_ISR_TIME_XTAL32_CYCLE的定义改为(127)(从110改为)LP_ISR_TIME_USEC的定义改为(3876)(从3357改为)。

它挂在绳子上

//等待BLE core解除LP IRQ

while(GetWord16(GP\u CONTROL\u REG)&BLE\u WAKEUP\u LP\u IRQ);

如何克服这种情况。

我在看https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/some-porblem-sleep-mode.

仍然不知道如何克服这个问题。

PM\U对话框
在线的
最后一次见到:12分29秒前
工作人员
已加入:2018-02-08 11:03
嗨,阿努希亚,

嗨,阿努希亚,

您能指出您是否有以下配置吗?

  • #未定义\u XTAL16M \u自适应\u设置
  • #定义CFG\u LP\u CLK LP\u CLK\u RCX20(因为您的电路板中没有XTAL32K)

您能否澄清“不可能的外部中断”吗?您的意思是您停止广告 - 将您的设备放在永久睡眠模式中,您无法通过唤醒控制器唤醒它?

谢谢,下午好

阿努希亚
离线
最后一次见到:6个月1周前
已加入:2017-12-20 02:30
我解决了这个问题:

我解决了这个问题:

原因是我的自定义板加速度计初始化代码在periph\u init函数的use\u periph\u setup.c文件中,由于初始化时间比允许的时间长,所以导致了问题。

我不得不把SPI总线初始化放在那里,然后在user\u sleepmode.c中将其余的移到user\u app\u init,然后系统就可以正常工作了。

回答你下面的问题,是的,我一直都有。

>您能指出您是否有以下配置吗?

>#未定义#额外16m#自适应#

> #define cfg_lp_clk lp_clk_rcx20(因为您的董事会中没有XTAL32K)