BLE_APP_SLEEPMODE可以使用XTAL16M和没有XTAL32K的工作

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
Anushiya.
离线
最后一次露面:7个月3天前
加入:2017-12-20 02:30
BLE_APP_SLEEPMODE可以使用XTAL16M和没有XTAL32K的工作

你好,

我有一个带有XTAL16M的自定义板,连接XTAL32K连接。当我在non_connectable模式下运行ble_app_sleepmode示例时,wdog超时发生并进入函数/例程nmi_handlerc。

当我在da1458x_config_basic.h中注释#define CFG_WDOG行时,我注意到代码停留在while(!ble_deep_sleep_stat_getf())中;永远。

我也不能使用RCX20。代码抱怨。

在不连接XTAL32K的情况下如何解决这个问题?

我正在使用SDK 6.0.10.511

谢谢,

Anushiya.

设备:
PM_DIALOG.
离线
最后一次露面:12小时57分钟前
职员
加入:2018-02-08 11:03
嗨Anushiya,

嗨Anushiya,

由于在您的自定义板上没有XTAL32,您应该切换低功耗时钟的RCX,以便在睡觉时操作。请检查da1458x_config_advanced.h文件,将CFG_LP_CLK从LP_CLK_XTAL32改为LP_CLK_RCX20。此外,请记住,XTAL16M自适应解决算法只适用于XTAL23K,不适用于作为LP时钟的RCX,所以您应该取消定义cfg_xtal16m_adaptive_settlement宏检查da1458x_config_advanced.h文件。关于WDOG,你不应该注释掉它,因为它是SDK定义,你将不能构建你的项目。如果你不想使用它,你应该取消它的定义。然而,如果WDOG被禁用,你的固件卡在某处,你的WDOG永远不会击中。因此,我的建议是保持WDOG为您的调试启用。

谢谢,PM_DIALOG.

Anushiya.
离线
最后一次露面:7个月3天前
加入:2017-12-20 02:30
>关于WDOG,你

>关于WDOG,你不应该发表评论,因为它是SDK定义,你将无法建立你的项目。如果你不想使用它,你应该取消它的定义。然而,如果WDOG被禁用,你的固件卡在某处,你的WDOG永远不会击中。因此,我的建议是保持WDOG为您的调试启用。

正如我在原始信息中提到的那样,这是暂时完成的,以查看正在发生的事情。

>此外,请记住,XTAL16M自适应沉降算法仅使用XTAL23K工作而不是RCX,作为LP时钟,因此您应该拒绝CFG_XTAL16M_ADTIVE_SETTLING宏检查DA1458x_config_Advanced.h文件。

在不可连接的配置中,它将如何影响系统?电力消耗是否会受到影响?“XTAL16M自适应算法”的益智是什么?

Anushiya.
离线
最后一次露面:7个月3天前
加入:2017-12-20 02:30
你好,

你好,

当我在上面做了建议的方法时,我面临与上述解决方案相关的新问题。

(我正在使用6.0.10.511 SDK的DA14586。将代码BLE_APP_SLEEPMODE修改为NON_CONECTABLE调制建议https://support.dialog-seminile.com/forums/post/dialog-smartbond-bluetooth-low-energy-%2%80%93-hardware-device-reference-designs/mnfdata-update#Comment24042.

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

系统传输大约20分钟,然后在Rwble.c中进入以下行中的警告。

#如果(USE_XTAL16M_ADAPTIVE_SETTLING)
如果(( && ()) && ()) { }

#别的
如果(DEVELOPMENT_DEBUG)
//如果此断言命中,则LP ISR持续时间长于时间
//已通过LP_ISR_TIME_XTAL32_CYCLES和LP_ISR_TIME_USEC保留。
if(sleep_lp_cycles &&(sleep_lp_cycles assert_warning(0);//(它进入此处)
#万一

因此,我将LP_ISR_TIME_TITE_XTAL32_CYCLE的定义更改为(127)(从110)和LP_ISR_TIME_USEC到(3876)(从3357)。

它挂在线

//等到BLE Core De-Suists LP IRQ

而(getword16(gp_control_reg)&ble_wakeup_lp_irq);

我该如何克服这种情况。

我看着https://support.dialog-seminile.com/forums/post/dialog-smartbond-bluetooth-low-energy-%2%80%93-software/some- tormal-sleep-mode.

仍然不确定如何克服这个问题。

PM_DIALOG.
离线
最后一次露面:12小时57分钟前
职员
加入:2018-02-08 11:03
嗨Anushiya,

嗨Anushiya,

您是否可以说明您是否有以下配置?

  • #undefcfg_xtal16m_adaptive_settling.
  • #define cfg_lp_clk lp_clk_rcx20(因为您的董事会中没有Xtal32k)

你能解释一下"不可能有外部干扰"吗?你的意思是你停止广告-把你的设备置于永久睡眠模式,你不能通过唤醒控制器唤醒它?

谢谢,PM_DIALOG.

Anushiya.
离线
最后一次露面:7个月3天前
加入:2017-12-20 02:30
我修复了这个问题:

我修复了这个问题:

原因是我在USIPH_INIT函数中有我的自定义板加速度计初始化代码_periph_setup.c文件中,由于初始化时间比允许的时间长,它引起了问题。

我不得不在那里留下SPI总线初始化,然后在user_sleepmode.co中移动到user_app_init,然后系统工作正常。

要回答你的问题,是的,我都拥有它们。

>请您可以说明您是否有以下配置?

>#undefcfg_xtal16m_adaptive_settling.

> #define CFG_LP_CLK LP_CLK_RCX20(因为你在你的板上没有XTAL32K)