DA14585 SleepMode代码在OTP后卡住了

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在进入我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
39帖子/ 0新
最后发表
markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
DA14585 SleepMode代码在OTP后卡住了

您好对话小组,

我正在为我的项目使用一个自定义板。

该项目具有压力传感器,通过GPIO每30秒发送曼彻斯特编码数据。我的对话框芯片对数据进行解码并将其加载到广告字符串中。我有一个电池,用于电源电源。我正在睡觉以节省电池寿命。

到目前为止,我做过以下了。由于我们正在开发自定义硬件,因此我对示例(BLE_APP_SLEEPMODE)程序进行了以下更改,如下所示。

1)根据我们在user_peripher_setup .h中的原理图更改led端口和按钮引脚

2)在da1458x_config_advanced.h中更改#define CFG_LP_CLK LP_CLK_XTAL32为#define CFG_LP_CLK LP_CLK_RCX20,因为我们没有一个32Khz的外部晶体。

3)因点2而将#define cfg_xtal16m_adaptive_settling更改为#undef cfg_xtal16m_adaptive_settling。

4)#undef cfg_code_location_ext和#define cfg_code_location_otp在da1458x_config_advanced.h中

我已成功使用585devkit调试项目,而且没有任何问题。我现在面临以下问题。由于我的调试会话正常运行,我计划执行OTP。在我完成OTP之后,程序不会运行很长时间。它运行了一段时间,然后停止我想。不知道为什么。

问候,

标记

设备:
markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
我正在附上这个项目

我也附加了项目文件夹。

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨Kuda,

嗨Kuda,

谢谢你的问题。

>>>>我现在面临以下问题。由于我的调试会话正常运行,我计划执行OTP。

你的意思是你已经附加了调试器?如果是,这将防止系统进入睡眠模式。你完全确定你的应用程序在我们的DK中运行吗?

如果是您的定制板,您是否尝试在调试模式下运行您的应用程序?例如,您是否尝试将FW下载到系统RAM?

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

是的。我将代码下载到sys-RAM,它完美地工作而没有任何问题。

在我将代码下载到OTP之后,我断开了调试器。我把电池拆了下来,又装了回去。它运行了几分钟,然后卡住了。

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨Markdsylva_2277.

嗨Markdsylva_2277.

您能否导出和分享您正在使用的OTP标题?

谢谢,PM_DIalog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

如何导出OTP头?

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨Markdsylva_2277.

嗨Markdsylva_2277.

来自SmartSnippets工具箱。您需要连接到OTP标题并将其导出到文件。

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

我在阅读时犯了很多错误。

我正在连接圆木。

问候,

标记

附件:
markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨PM_dialog,

嗨PM_dialog,

我设法打了头球。它附在这里。

问候,

标记

附件:
markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

请将我的状态更新,因为我在等待您的项目中进一步发展的回复。

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

两个应用程序标志都设置为“是”,这是正确的。您使用的包裹是什么?WLCSP34,QFN40或QFN48?我选择了QFN40的OTP标题。另外,将时钟源选择为外部晶体振荡器,但在您使用的初始帖子中使用间隔RCX。您在OTP标题中完成了哪些变化?您是否烧毁了“设备和包”和“睡眠时钟源”或是默认配置?

>>>我将代码下载到OTP后,我断开了调试器。我把电池拆了下来,又装了回去。它运行了几分钟,然后卡住了。

由于它运行了几分钟,这意味着设备正在从OTP正确引导。这个问题可能和SW有关。这个设备会突然停止广告吗?你能将它与对等设备连接吗?

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

--->您使用的包裹是什么?WLCSP34,QFN40或QFN48?我选择了QFN40的OTP标题。

是的,它是qfn40。

---->另外,将时钟源选择为外部晶体振荡器,但在您使用的初始帖子中使用间隔RCx。您在OTP标题中完成了哪些变化?您是否烧毁了“设备和包”和“睡眠时钟源”或是默认配置?

我有一个外部的晶体连接。但对于低功率晶体选择,我没有32Khz外部晶体连接到我的对话芯片。所以我将它从#define CFG_LP_CLK LP_CLK_XTAL32改为#define CFG_LP_CLK LP_CLK_RCX20。我没有改变头部的其他东西。我只将应用程序标志更改为Yes。

---->因为它运行了几分钟,这意味着设备正在从OTP正确引导。这个问题可能和SW有关。这个设备会突然停止广告吗?你能将它与对等设备连接吗?

设备运行几分钟,当它从睡眠中醒来时。应用程序的运行时间变化很大。有些人在2分钟内停止,或者也可能需要15分钟。由于我的项目仅与广告有关,因此我并没有使用对等设备连接。如果问题与软件有关,为什么在调试期间出现它会发生它?

---------------------------------------------------------------------------------------------------------------------------------------------------------

>我最大的疑问是,如果应用程序中有一个错误,为什么它运行了一定的时间,然后停止。

- >我有一个移动应用程序,可以使用系统时间记录广告数据。根据我的项目,广告间隔是150ms,它在广告停止后5秒钟完成。根据我的日志,芯片在广告停止前5秒钟之间唤醒并停止。

->我也从你们网站上的在线教程中读到,下面一行应该由rwip.c评论。如果不使用32Khz外部晶体

// DA14585/586不支持Boost模式+ RCX
if (GetBits16(ANA_STATUS_REG, BOOST_SELECTED) == 1) / /将所有的数据都加到1

assert_warning(0);

我没有评论,因为我们因为新冠肺炎被封锁了,我没有多少筹码了。我的代码在调试中连续运行了一个多星期。在我做了OTP之后,我开始面临一些问题。这件事非常紧急,请支持我。

------------------------------------------------------------------------------------

如果您可以在某些方面引导我,因为我正在使用自定义板,并且在做OTP后发现错误后,我就会更好。我将被问到我的管理员关于多少筹码你会浪费多少?

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

您提到您在开发模式下测试了您的项目。请记住,当安装调试器时,这可以防止系统进入睡眠模式。你有没有在没有调试器附着的情况下测试过?

您的问题与睡眠模式的唤醒是相关的。

例如,如果将相同的FW下载到Sys-RAM(没有附加调试器)或SPI Flash中,则运行是否正确?

关于OTP头似乎是正确的。如果OTP头和OTP映像没有正确刻录,设备将无法启动!在您的例子中,DA14585正在正确引导并开始发布广告。

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

--->您提到您在开发模式下测试了您的项目。请记住,当安装调试器时,这可以防止系统进入睡眠模式。你有没有在没有调试器附着的情况下测试过?

我试图从keil开始调试会话,然后按相同的调试按钮停止调试会话。代码没有运行。

正如我在上面的文章中所说的,我认为代码挂在广告过程的某个地方(即在广告间隔期间醒来和睡觉)。我的代码在user_sleepmode.c文件中,在这里我处理外部中断和数据解码。收到数据后,启动广告并设置一个app_easy_timer,时间为5秒....之后我停止广告。在这期间,我什么都没有。我如何检查代码挂起的地方?什么好主意吗?

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

所以问题与SW相关。让我们试着调查根本原因的原因。如果您使用连接的调试器在您的自定义板中运行应用程序代码,则停止任何地方吗?如果是,请您能在哪里分享截图?看门狗是否已禁用ORE?

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

- >否。代码在任何地方都停止。它没有任何问题。

——>我已经关闭了看门狗。

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

你能用WDOG运行它吗?现在,如果在调试模式下运行它,则代码是否粘在任何地方?请定义CFG_WDOG宏并再次运行。

谢谢,PM_Dialog

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

另外,你使用的SDk是什么?我无法在我们的SDK中构建提供的示例代码。

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

我使用的SDK是6.0.12

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

我的建议是让WDOG启用并在调试模式下运行代码。此外,请启用CFG_Development_debug标志。这允许您热连接调试器,如果发生硬盘或NMI,则获取调试信息。因此,通过启用这2个宏,在调试模式下毁了它时,会粘在任何地方吗?另外,不需要禁止OTP才能调试它 - 只需通过Keil IDE将固件下载到系统-RAM中。

与此同时,我将尝试在我们的开发板上运行附加的项目。

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

我照你说的做了。

我#Defined宏并按下调试按钮并再次上传代码,然后再次按相同的按钮。代码再次被困。

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

它卡在哪里?你能分享一个截图吗?

谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

我已经断开了调试器。所以我看不出它卡在哪里了。

但是,当我使用调试器运行时,代码运行正常。

----------------------------------------------------------------------

我在最后期限完成项目在明天,因为代码广告之间的间隔就卡住了,我想删除otp副本的睡眠之间间隔,通过虚假广告arch_set_extended_sleep (false)和改变静态常量sleep_state_t app_default_sleep_mode = ARCH_EXT_SLEEP_ON……

这能暂时解决我的问题吗?

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

我用CFG_Wdog和CFG_Development_Debug宏运行附加项目。我正在研究QFN40女儿板和我们的新款Pro-DK主板。为了使用板载按钮唤醒设备,我正在使用P1_1为LED。

当在调试模式下运行代码时,它会在gpio.c文件中的GPIO_SetPinFunction()中卡住。

__asm(“BKPT # 0 \ n”);//这个pin码以前没有被保留过!

在user_peripher_setup .c中,您将所有gpio配置为下拉输入。这是不需要的,因为默认状态是INPUT_PULLDOWN。您可以很容易地阅读GPIOs寄存器来澄清它。此外,这种和平的代码重新配置所有的gpio,这是不推荐的。

此外,在user_sleepmode.c文件中,您正在使用永不保留的GPIO!

请在附件中找到一个diff文件,里面有我在你的代码中做的修改。通过这些修改,我可以在我们的dk中运行您的项目。

OTP代表一个时间可编程,因此您应该确保您的项目在燃烧之前完全运行!

在开发阶段,建议拥有WDOG和启用的开发调试,否则,如果代码被困在某个地方,您将永远不会通知此!总之,刻录OTP图像和OTP标题要求应用程序代码运行100%。否则,芯片将永远不会启动OTP!

您正在使用的da14585的包是什么?

谢谢,PM_Dialog

附件:
markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

好的。我会照你说的去做。

我正在使用qfn40包。

GPIO预订问题会导致代码在做OTP后挂起吗?

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
因为你在运行

由于您在调试模式下运行项目,因此您应该定义CFG_Development_debug。这允许您从OTP到System-RAM模拟OPT镜像。

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
我建议跑

我建议在DK中运行该项目。它是否正确运行?

如果是,那么使用您的定制板并下载FW到System-RAM中。请确保OTP是空的。100%有效吗?

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

我从你的SKD中拍了一份梦幻仪器的副本,并试图将其下载到585女儿板中的RAM。我没有在任何代码中修改任何内容。当我按下调试按钮并启动代码时,它会立即在NMI_Handler停止。您的示例代码是否会在585女儿板上进行修改?

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨Mark,请下载

嗨,马克,请先把fw下载到内存中-现在可以工作了吗?

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨马克,你能不能

嗨,马克,你能说明你用的是哪个dk?哪个女儿板和哪个母板?是的,该示例正常工作..

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
你好,

你好,

工具包是DA14580DevKT-P_VC

子板是DA14585。

问候

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,是的,ble_app

你好,马克,是ble_app_sleepmode在该板中正常运行。我可以在我身边跑。是否有可能与跳线配置共享一张照片?

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
你好,

你好,

照片均附呈。

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,刚刚测试了一下

你好,Mark,刚刚在我们的DK上测试了ble_app_sleepmode的例子-我用的是和你一样的DK和相同的跳线配置。你有多余的DK来测试吗?我建议在干净的SDK目录下工作。另外,通过我昨天分享给你的修改,我可以在我们的DK中运行你的项目…你是在为DA14585建造项目吗?谢谢,PM_Dialog

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20
嗨pm_dialog,

嗨pm_dialog,

你有多余的DK来测试吗?

不,我没有一个。

我建议在一个干净的SDK目录下工作。

我从6.0.12.1020.2..zip文件中提取了SDK文件夹,然后打开BLE_APP_SLEEPMODE项目并建立它并启动调试会话。我没有修改里面的任何东西。但我面临着同样的问题。我附上了截图。

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,你会跑吗

HI MARK,您是否能够运行其他其他SDK项目?例如,BLE_APP_BAREBONE。所有SDK示例都在我们的DKS出框中运行,并且由SDK提供。在这个特定的设备中,你有没有烧掉OTP?

markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20

你好,

我不能举出任何可靠的例子。我尝试了blinky项目。它工作得很好。

问候,

标记

PM_Dialog
离线
最后看到:1天4小时前
工作人员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

请查收附件我的跳线配置。所有BLE示例都按照预期运行。在ble_app_sleepmode的情况下,我能够运行它与附加的配置。所以,请尝试解压SDK到一个新的文件夹,并再次尝试。我建议有一个短的SDK路径-可能在C:\下解压缩。如果不能再次运行,可能是单板损坏。你在那个设备上写过OTP吗?

谢谢,PM_Dialog

附件:
markdsylva_2277.
离线
最后看到:3个月1周前
加入:2019-06-19 04:20

嗨pm_dialog,

我曾经试过。

1)我拿出了一个新的SDK副本,并在D驱动器中创建了一个文件夹。我跑了睡眠管理示例而不修改任何东西。一旦我开始调试会话,它就会被困在NMI处理程序。

2)连接智能片段工具并检查读取OTP内存。它只读零。

问候,

标记