⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
7个帖子/ 0新
最后一篇
ddustin
离线
最后一次露面:1年5个月前
加入:2016-04-20 22:12
没有16khz水晶配置

我如何配置custom_config_qspi.h给定我的电路没有16khz水晶?

在切换到内部晶体之前,系统似乎试图使用16khz晶体。几秒钟后,应用程序关闭与一个“未处理的异常。”因为这个板没有16khz水晶和开发子板做,我假设这是问题。

该代码在Devepment女儿板上完美地工作,但在我的电路板上失败,没有16khz水晶。

我从lp_clk_32000改变了这个设置:

#定义dg_configuse_lp_clk lp_clk_rcx.

但问题仍然存在。

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

嗨ddustin,

我认为你已经创建了一个类似的论坛帖子如下:

https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bluetooth-low-energy-%e2%80%93-hardware-device-reference-designs/chip-seeming

在custom_config_qspi.h中,可以定义系统的低功耗(LP)时钟。

  • 定义DG_CONFIGUSE_LP_CLK LP_CLK_32768:使用EXTERNA XTAL32K Crystal振荡器,该振荡器是SDK emperpels的默认选项
  • 定义DG_CONFIGUSE_LP_CLK LP_CLK_RCX:使用内部RCX
  • 定义DG_CONFIGUSE_LP_CLK LP_CLK_32000:使用外部数字波发生器

如果你16khz或16MHz,你能澄清一下吗?如果您的意思是16kHz,则无法实现这一点,因为对于LP,我们正在使用32.768kHz的时钟。当系统进入睡眠模式时,LP时钟一直在使用。除了LP之外,您应该有一个系统时钟,当设备处于活动模式时,它将在运行时运行。系统时钟应在System_Init()函数中定义。

如果您使用外部XTAL16:

  • cm_sys_clk_init(sysclk_xtal16m);
  • cm_sys_clk_set (sysclk_XTAL16M);

请检查SDK的pxp_reporter示例中的system_init()函数。如果您不想有一个外部晶体振荡器,您应该用syscclk_rc16替换syscclk_xtal16m。

我强烈建议您看看图21:DA14682数据表的唤醒/电动时序和PMU操作。

谢谢,PM_DIALOG.

ddustin
离线
最后一次露面:1年5个月前
加入:2016-04-20 22:12
你好,

你好,

是的,我用的是16Mhz的主晶体,但没有睡眠晶体。因此,我在配置中指定了这个设置,以使用内部晶体进行睡眠:define dg_configUSE_LP_CLK LP_CLK_RCX。

我拍摄了BLE_Peripheral示例代码并在女儿开发板和我自己的电路板上运行它,煞费苦地删除代码并将它们放回去,直到我找到了在我的板上突破但不是子板上的特定线路。我从永远改变了这条线。

RET = OS_TASK_NOTIFY_WAIT(0,OS_TASK_NOTIFY_ALL_BITS,&NOTIF,OS_TASK_NOTIFY_NO_WAIT);

// ret = os_task_notify_wait(0,OS_TASK_NOTIFY_ALL_BITS,&NOTIF,OS_TASK_NOTIFY_FOREVER);

这似乎纠正了这个问题(尽管浪费了大量的周期)。我认为这意味着在我的滑板上睡觉是失败的。类似地,将睡眠模式改为空闲而不是延长睡眠也可以解决这个问题。这会浪费多少能量?

pm_set_sleep_mode (pm_mode_idle);

// pm_set_sleep_mode(pm_mode_extended_sleep);

什么是进一步诊断这一诊断的最佳方法?是否有这种特殊的芯片有一个有缺陷的内容 - 如果是这样,我会如何检查?

谢谢你的帮助。

编辑:在视觉上比较子板和我的电路板 - 最大的区别是L1电感的大小。我在我的板上使用了一个物理上更小的电感。如果设备睡着的同时,是否有可能将其与DC-DC拧紧的东西?

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

嗨ddustin,

让我检查你的问题,我会尽快回复你。

谢谢,PM_DIALOG.

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

嗨ddustin,

OS_TASK_NOTIFY_FOREVER属性,将强制底层任务输入阻塞状态,只要没有待处理通知即可。如果在活动模式下没有其他任务,则将执行空闲特殊任务,并且设备将进入睡眠模式。此外,一旦通知来自BLE管理器或代码本身,就将执行该任务。所以,你的陈述是错误的。

pm_set_sleep_mode(pm_mode_idle)将M0+ Core设置为IDLE状态,仅当没有任何功能需要CPU干扰时。

虽然芯片处于睡眠模式,但DC-DC将被解除激活,只有LDO接通电源。请检查图11:DA14682数据表中的电源管理单元框图。仅在睡眠模式下激活红色bocks。每个用户的要求激活/去激活绿色块。

谢谢,PM_DIALOG.

ddustin
离线
最后一次露面:1年5个月前
加入:2016-04-20 22:12
好的,很好。

好的,很好。

现在为什么用你们提供的例子,ble_peripheral,*不起作用?我之前描述了这个问题,但我会再次描述。

当设备执行OS_TASK_NOTIFY_FOREVER操作时,大约3秒后程序会停止。

这通过将睡眠模式更改为PM_Mode_Idle来解决。

其他睡眠模式不*工作。为什么他们不起作用?我们如何调查他们为什么不起作用?

请帮忙。告诉我我的陈述是错的不是有用!!请告诉我如何实际调查这个问题!

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

嗨ddustin,

我在Pro-DK中运行了SDK1.0.14.1081的ble_peripheral示例,内部启用了RCX,它工作得很好。SDK的默认示例功能齐全。你也可以在你的Pro-DK中明确它,在一个干净的SDK路径中使用ble_peripheral项目而不做任何修改。只需将dg_configUSE_LP_CLK宏从LP_CLK_32768更改为LP_CLK_RCX。此外,我建议您运行相同的项目,只有上述修改在您的自定义板。如果它在Pro-Dk中工作而不是在你的自定义板中,这意味着这是你的自定义板上的一个硬件问题,而不是在DA14682 SoC中。所以,我的建议是审查一下你自己的董事会。

你可以读到AN-B-061应用笔记:DA1468X应用程序硬件设计指南从我们的支持门户寻找硬件设计指南,可以帮助您查看您的原理图和PCB。如果您能够分享您的原理图和PCB,我将不得不审核它们。

谢谢,PM_DIALOG.