你好,
我有一个自定义板与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
谢谢您,
阿努希亚
设备:
嗨,阿努希亚,
由于您的自定义板上没有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为您的调试启用。
谢谢,下午好
>关于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自适应调整算法”有什么好处?
你好,
当我采用上述建议的方法时,我面临着一个与上述解决方案相关的新问题。
(我将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)
如果(&&())&&()){}
#其他断言警告(0)//(在这里输入)
if(development_debug)
//如果此断言命中,则LP ISR持续的时间比
//已通过LP\u ISR\u TIME\u XTAL32\u CYCLES和LP\u ISR\u TIME\u USEC保留。
if(睡眠周期&&(睡眠周期
#结束
所以我将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.
仍然不知道如何克服这个问题。
嗨,阿努希亚,
您能指出您是否有以下配置吗?
您能否澄清“不可能的外部中断”吗?您的意思是您停止广告 - 将您的设备放在永久睡眠模式中,您无法通过唤醒控制器唤醒它?
谢谢,下午好
我解决了这个问题:
原因是我的自定义板加速度计初始化代码在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)