DA14585睡模代码在OTP之后被卡住

⚠️
嗨,那里..感谢您参加论坛。激动人心的消息!现在,我们正在转到我们的新论坛平台,该平台将提供更好的功能,并包含在主话网站中。所有帖子和帐户都已迁移。我们现在仅在新论坛上接受流量 - 请在https://www.dialog-spoomendonductor.com/support。我们将在未来几天修复错误 /优化搜索和标记。
39帖子 / 0新
最后一篇文章
Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
DA14585睡模代码在OTP之后被卡住

你好对话团队,

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

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

到目前为止,我已经完成了以下操作。由于我们正在开发自定义硬件,因此我对示例(ble_app_sleepmode)程序进行了以下更改,如下所示。

1)根据我们的user_periph_setup.h中的示意图更改了LED端口和按钮引脚

2)更改#define cfg_lp_clk lp_clk_xtal32 to #define cfg_lp_clk lp_clk_rcx20在da1458x_config_advanced.h中,因为我们没有32KHz外部晶体。

3)更改#define cfg_xtal16m_adaptive_settling到#undef cfg_xtal16m_adaptive_settling,因为点2。

4)#undef cfg_code_location_ext和#define cfg_code_location_otp in da1458x_config_advanced.h

我已经成功地通过585DEVKIT进行了调试,它没有任何问题。我现在面临以下问题。由于我的调试会话正常运行,因此我计划进行OTP。完成OTP之后,该程序不会长时间运行。它运行了一段时间,然后我想停下来。不知道为什么。

问候,

标记

设备:
Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
我正在附上这个项目

我也附上了项目文件夹。

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,库达,

嗨,库达,

感谢您的问题。

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

您的意思是附带了调试器吗?如果是,则可以防止系统进入睡眠模式。您是否完全确定您的应用程序在我们的DK中运行?

如果您的自定义板,您是否尝试在调试模式下运行应用程序?例如,您是否尝试将FW下载到System-ram?

谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

是的。我将代码下载到sys-ram,它运行得很好,没有任何问题。

将代码下载到OTP后,我断开了调试器的连接。我卸下了电池并将其插入。它运行了几分钟,然后被卡住了。

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
HI MarkdSylva_2277

HI MarkdSylva_2277

您可以出口并分享您使用的OTP标头吗?

谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

如何导出OTP标头?

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
HI MarkdSylva_2277

HI MarkdSylva_2277

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

谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

阅读时我会遇到很多错误。

我正在附上日志。

问候,

标记

附件:
Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

我设法获得了标题。它附在这里。

问候,

标记

附件:
Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

当我等待您的回复以进行进一步开发时,请向我更新状态。

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

两个应用程序标志都设置为“是”,这是正确的。您正在使用什么包?WLCSP34,QFN40或QFN48?我是您选择了QFN40的OTP标头。此外,将时钟源选择为外部晶体振荡器,但是在您的初始帖子中,您使用的是Interval RCX。您在OTP标头中进行了哪些更改?您是否燃烧了“设备和软件包”和“睡眠时钟源”,还是默认配置?

>>>将代码下载到OTP后,我断开了调试器的连接。我卸下了电池并将其插入。它运行了几分钟,然后被卡住了。

由于它正在运行几分钟,因此这意味着该设备正在从OTP正确启动。问题可能与SW有关。该设备是否会宣传并突然停止?您可以将其与对等设备连接起来吗?

谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

--->您正在使用什么包装?WLCSP34,QFN40或QFN48?我是您选择了QFN40的OTP标头。

是的,它是QFN40。

---->另外,将时钟源选择为外部晶体振荡器,但是在您的初始帖子中,您使用的是Interval RCX。您在OTP标头中进行了哪些更改?您是否燃烧了“设备和软件包”和“睡眠时钟源”,还是默认配置?

我有一个外部晶体连接。但是对于低功率晶体选择,我没有连接到对话框芯片的32kHz外部晶体。因此,我将其从#Define CFG_LP_CLK LP_CLK_XTAL32更改为#Define CFG_LP_CLK LP_CLK_RCX20。我没有在标题中更改其他任何内容。我只将应用程序标志更改为“是”。

---->由于它正在运行几分钟,因此这意味着该设备正在从OTP正确启动。问题可能与SW有关。该设备是否会宣传并突然停止?您可以将其与对等设备连接起来吗?

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

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

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

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

- >我还从您网站的在线教程中读到,应从RWIP.C评论以下行。如果不使用32kHz外部Crstal

// BOOST模式 + RCX在DA14585/586中不支持RCX
if(getBits16(ana_status_reg,boost_selected)== 1)

assert_warning(0);

我没有尝试评论这一点,因为由于19号,我们在锁定时没有剩下很多筹码。我的代码连续运行超过一周。完成OTP后,我开始面临问题。请支持我,因为这非常紧急。

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

如果您可以使用自定义板,那么您可以在某些方面引导我,而且在执行OTP后发现错误后,我根本无法浪费芯片。我会从我的货币上问我要浪费多少芯片的问题。

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

您提到您在开发模式下测试了项目。请记住,连接调试器时,这会防止系统进入睡眠模式。您是否曾经没有附带调试器进行测试?

您的问题便是与睡眠模式醒来有关的。

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

关于OTP标头似乎是正确的。如果OTP标头和OTP图像未正确燃烧,则设备将无法启动!就您而言,DA14585正在正确启动并开始广告。

谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

--->您提到您在开发模式下测试了项目。请记住,连接调试器时,这会防止系统进入睡眠模式。您是否曾经没有附带调试器进行测试?

我试图从Keil开始调试会话,并通过按相同的调试按钮停止了调试会话。代码没有运行。

正如我在上面的帖子中所说的那样,我认为该代码悬挂在广告过程中的某个地方(即在广告间隔之间醒来和睡觉)。我的代码位于user_sleepmode.c文件中,我正在处理外部中断和数据解码。收到数据后,我启动广告并设置App_easy_timer 5秒。...此后,我停止了广告。在两者之间,我什么都没有。我如何检查代码挂在哪里?有任何想法吗?

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

因此,问题与SW有关。让我们尝试研究可能是根本原因。如果您使用附带的调试器在自定义板上运行应用程序代码,它是否在任何地方停止?如果是,您可以在卡住的位置分享屏幕快照吗?启用监管机的矿石是否禁用?

谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

- >否。代码不会在任何地方停止。它运行没有任何问题。

- >我已经禁用了看门狗。

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

您可以在启用WDOG的情况下运行它吗?现在,如果您以调试模式运行它,代码会粘在任何地方吗?请定义CFG_WDOG宏并再次运行。

谢谢,pm_dialog

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

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

谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

我使用的SDK是6.0.12

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

我的建议是启用WDOG并在调试模式下运行代码。此外,请启用CFG_Development_debug标志。这使您可以加热调试器并获取调试信息,如果发生了硬故障或NMI。因此,通过启用了这两个宏,在调试模式下破坏它时会卡住吗?此外,不需要将OTP击败以调试它 - 只需通过Keil IDE下载固件即可。

同时,我将尝试在我们的开发委员会中运行所附项目。

谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

我按照你说的。

我#定义了宏,并通过按调试按钮将代码上传,然后再次按下同一按钮。代码再次陷入困境。

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

它在哪里卡住了?您能分享屏幕屏幕吗?

谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

我断开了调试器的连接。因此,我看不到它被卡在哪里。

但是,当我使用附加的调试器运行时,代码可以正确运行。

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

I am having a deadline to complete the project by tomorrow, and since the code is getting stuck between advertisement intervals, I am thinking of removing the otp copy sleep between advertisement intervals by passsing false to arch_set_extended_sleep(false) and changing the static const sleep_state_t app_default_sleep_mode= Arch_ext_sleep_on ...

这会解决我的问题吗?

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

我已经使用CFG_WDOG和已定义的CFG_Development_debugg宏来运行您的附件项目。我正在制作QFN40女儿董事会和我们的新Pro-DK主板。为了使用板上按钮唤醒设备,我将P1_1用于LED。

在调试模式下运行代码时,它将卡在以下行中的gpio.c.c文件中的gpio_setpinfunction()中。

__asm(“ bkpt#0 \ n”);//以前没有保留此PIN!

在USER_PERIPH_SETUP.C中,您正在配置所有GPIO以输入下拉。这是不需要的,因为默认状态是input_pulldown。您可以轻松阅读GPIO寄存器以澄清它。此外,代码的平静重新配置了所有不建议的GPIO。

另外,在User_sleepmode.c文件中,您使用的是永远不会保留的GPIO!

请在您的代码中找到附带的差异文件。通过这种修改,我可以在我们的DKS中运行您的项目。

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

在开发阶段,建议使用WDOG并启用开发调试,否则,如果代码卡在某个地方,您将永远不会通知您!总之,燃烧OTP图像和OTP标头要求应用程序代码运行100%。否则,芯片将永远不会启动OTP!

您正在使用的DA14585的包装是什么?

谢谢,pm_dialog

附件:
Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

好的。我会按照你说的。

我正在使用QFN40软件包。

GPIO保留问题会导致执行OTP后悬挂代码吗?

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
由于您正在运行

由于您以调试模式运行项目,因此应定义CFG_DEVEVELMENT_DEBUG。这使您可以模拟从OTP到System-RAM的OPT镜像。

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
我建议运行

我建议将项目运行到DK中。它运行正确吗?

如果是,请使用您的自定义板,然后将FW下载到System-ram中。请确保OTP是空的。那起作用100%吗?

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

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

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,请倒影

嗨,马克,请首先将FW倒入RAM-现在正在工作吗?

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,你能

嗨,马克,您能指出您正在使用哪个DK?哪个女儿董事会和哪个母板?是的,示例正常工作..

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
你好,

你好,

套件是DA14580DEVKT-P_VC

女儿董事会是DA14585。

问候

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,是的,ble_app

嗨,马克,是的,ble_app_sleepmode在此板上正确运行。我可以在我身边运行它。可以与跳线配置共享一个光片吗?

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
你好,

你好,

照片附上。

问候,

标记

附件:
pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,刚刚测试了BLE

嗨,马克,刚刚在我们的DK上测试了BLE_APP_SLEEPMODE示例 - 我正在与您和相同的跳线配置一起使用相同的DK。您有任何备用DK测试吗?我也建议在干净的SDK目录上进行Worki。此外,通过我昨天分享了您的修改,我可以在我们的DK中运行您的项目...您是否正在为DA14585构建项目?谢谢,pm_dialog

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
嗨,pm_dialog,

嗨,pm_dialog,

--->您有任何备用DK测试吗?

不,我没有一个。

- >我也建议在干净的SDK目录上进行Worki。

我从6.0.12.1020.2.zip文件中提取了SDK文件夹,并打开了BLE_APP_SLEEPMODE项目,并构建了它并启动了调试会话。我没有修改内部的其他任何内容。但是我面临同样的问题。我已经连接了屏幕截图。

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,你能运行吗

嗨,马克,您可以运行其他任何SDK项目吗?例如,ble_app_barebone。所有SDK示例都在我们的DKS内运行,并由SDK提供。在这个特定的设备中,您是否燃烧了OTP?

Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20

你好,

我无法运行任何BLE示例。我尝试了眨眼的项目。它工作正常。

问候,

标记

pm_dialog
离线
最后一次露面:4天32分钟前
职员
加入:2018-02-08 11:03
嗨,马克,

嗨,马克,

请找到附带的跳线配置。所有BLE示例都按预期运行。如果BLE_APP_SLEEPMODE,我可以使用附件配置运行它。因此,请尝试将SDK解压缩到新文件夹中,然后再次尝试。我建议使用短的SDK路径 - 可能在c:\下取消拉链。如果它不再运行,则董事会可能会损坏。您是否在该设备中写了OTP?

谢谢,pm_dialog

附件:
Markdsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20

嗨,pm_dialog,

我像你说的那样尝试。

1)我取出了SDK的新副本,并在D驱动器中创建了一个文件夹。我在不修改任何内容的情况下运行了Sleepmode示例。一旦我开始调试会议,它就会陷入NMI处​​理程序。

2)我连接了智能摘要工具并检查了阅读OTP内存。它仅读取零。

问候,

标记