没有16Khz水晶配置

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
7个帖子/ 0个新
最后发表
ddustin
离线
最后看到:1年3个月前
加入:2016-04-20二二12
没有16Khz水晶配置

我如何配置custom_config_qspii .h给我的电路没有16khz晶体?

在切换到内部晶体之前,系统似乎尝试使用16kHz晶体。几秒钟后,该应用程序与“未处理的例外”关闭。由于这个董事会没有16khz水晶和发展子板,我假设这是问题。

代码在开发子板上完美工作,但在没有16khz晶体的我的板上失败了。

我已经将这个设置从LP_CLK_32000更改为:

#定义dg_configUSE_LP_CLK LP_CLK_RCX

但问题依然存在。

设备:
PM_Dialog
离线
最后看到:23小时33分钟前
工作人员
加入:2018-02-08 11:03
嗨Ddustin,

嗨Ddustin,

我认为您已创建一个类似的论坛线程:

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-hardware-device-reference-designs/chip-seemingly

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

  • 定义dg_configUSE_LP_CLK LP_CLK_32768:使用外部的XTAL32K晶体振荡器,这是SDK示例的默认选项
  • 定义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()函数。如果您不想拥有外部水晶振荡器,则应使用SysClk_RC16替换SysClk_XxtAl16M。

我强烈建议您看一看图21:DA14682 datasheet的唤醒/通电计时和PMU操作。

谢谢,PM_Dialog

ddustin
离线
最后看到:1年3个月前
加入:2016-04-20二二12
你好,

你好,

啊,是的,是的,我正在使用16MHz主水晶,但没有睡觉的水晶。所以我在Config中指定了此设置以使用内部水晶睡眠:define dg_configuse_lp_clk lp_clk_rcx。

我使用ble_peripheral示例代码并在我的子开发板和我自己的板上运行它,费力地删除代码片段并将其放回原处,直到我发现在我的板上而不是子板上的特定行中断。我把这句话从永远改成了不等待。

ret = OS_TASK_NOTIFY_WAIT(0, OS_TASK_NOTIFY_ALL_BITS, ¬if, OS_TASK_NOTIFY_NO_WAIT);

// ret = OS_TASK_NOTIFY_WAIT(0, OS_TASK_NOTIFY_ALL_BITS, ¬if, OS_TASK_NOTIFY_FOREVER);

这似乎纠正了这个问题(尽管通过浪费吨循环)。我相信这意味着睡眠在我的董事会上失败了。同样将睡眠模式更改为空闲而不是扩展睡眠恢复问题。浪费多少力量?

pm_set_sleep_mode(pm_mode_idle.);

/ / pm_set_sleep_mode (pm_mode_extended_sleep);

进一步诊断的最好方法是什么?是否有可能这个特定的芯片有一个错误的内部晶体-如果是这样,我如何检查?

谢谢你的帮助。

编辑:视觉上比较子板和我的板-最大的区别是L1电感的大小。我在电路板上使用了一个体积小得多的电感器。有可能在设备睡着的时候把DC-DC搞砸吗?

PM_Dialog
离线
最后看到:23小时33分钟前
工作人员
加入:2018-02-08 11:03
嗨Ddustin,

嗨Ddustin,

让我检查一下您的问题,我会尽快给您回复。

谢谢,PM_Dialog

PM_Dialog
离线
最后看到:23小时33分钟前
工作人员
加入:2018-02-08 11:03
嗨Ddustin,

嗨Ddustin,

OS_TASK_NOTIFY_FOREVER属性将强制底层任务进入BLOCKED状态,只要没有挂起的通知。如果在active模式下没有其他任务,则执行IDLE特殊任务,设备将进入休眠模式。此外,一旦BLE管理器或代码本身发出通知,任务就会立即执行。所以,你的陈述是错误的。

PM_SET_SLEEP_MODE(PM_MODE_IDLE)将仅在没有任何需要CPU干扰的功能时将M0 +核心设置为空闲状态。

当芯片处于睡眠模式时,DC-DC将被取消激活,只有ldo上电。请查看DA14682 datasheet中的图11:电源管理单元方框图。只有红块在睡眠模式下才会被激活。绿色方块是根据用户的需求激活/取消激活的。

谢谢,PM_Dialog

ddustin
离线
最后看到:1年3个月前
加入:2016-04-20二二12
好的,那很好。

好的,那很好。

为什么你们提供的例子ble_peripheral, *NOT*有效?我之前描述过这个问题,但我将再描述一次。

当设备进入OS_TASK_NOTIFY_FOREVER时,程序将在预约3秒内寄出。

这可以通过将睡眠模式更改为pm_mode_idle来解决。

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

请帮助。告诉我我的陈述是错误的是没有用的!!请告诉我如何调查这个问题!

PM_Dialog
离线
最后看到:23小时33分钟前
工作人员
加入:2018-02-08 11:03
嗨Ddustin,

嗨Ddustin,

我在Pro-DK中运行了SDK1.0.14.1081的BLE_PERIENTAL示例,其中包含内部RCX,它完美地工作。SDK的默认示例是完全正常的。您也可以在Pro-DK中澄清它,并使用BLE_Peripheral项目,而无需在清洁的SDK路径中进行任何修改。只需将LP_CLK_32768从LP_CONFIGUSE_LP_CLK宏更改为LP_CLK_RCX。此外,我建议您只能在您的自定义板中的上述修改运行相同的项目。如果它在Pro-DK中工作而不在您的自定义板中工作,这意味着您的自定义板上的硬件问题,而不是在DA14682 SOC中。因此,我的建议是审查自己的董事会。

你可以阅读应用说明:DA1468x应用硬件设计指南从我们的支持门户,以找到硬件设计指南,将帮助您审查您的原理图和PCB。如果你能分享你的原理图和pcb,我很乐意给你看看。

谢谢,PM_Dialog