DA14585 SleepMode代码在OTP后卡住了

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
39个员额/ 0个新员额
最后一篇
MarkDsylva_2277
离线
最后一次露面:3个月3周前
加入:2019-06-19 04:20
DA14585 SleepMode代码在OTP后卡住了

你好,对话框的团队,

我正在为我的项目使用定制板。

这个项目有一个压力传感器,它通过gpio每30秒发送一次曼彻斯特编码数据。我的对话芯片解码数据并将其加载到广告字符串中。我带了一块电池给电路充电。我启用睡眠以节省电池寿命。

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

1)根据我们的user_periph_setup.h中的原理图改变了LED端口和按钮引脚

2)将#define cfg_lp_clk lp_clk_xxtal32更改为#define cfg_lp_clk lp_clk_rcx20在da1458x_config_advanced.h中,因为我们没有32khz外部水晶。

3)更改#define cfg_xtal16m_adaptive_setting为#undef cfg_xtal16m_adaptive_setting,因为第2点。

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

我已经成功地调试了项目与我的585devkit,它运行没有任何问题。我现在面临以下问题。因为我的调试会话正常运行,所以我计划执行OTP。在我做了OTP之后,程序不能运行很长时间。它跑了一段时间,然后我想停了。不知道为什么。

问候,

标记

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

我也在附加项目文件夹。

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨kuda,

嗨kuda,

谢谢你的问题。

>>>>我现在正面临以下问题。由于我的调试会话正常运行,我计划执行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.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨MarkDsylva_2277

嗨MarkDsylva_2277

你能导出并分享你正在使用的OTP头吗?

谢谢,PM_DIALOG.

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

嗨pm_dialog,

如何导出OTP标题?

问候,

标记

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨MarkDsylva_2277

嗨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.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨马克,

嗨马克,

两个应用程序标志都设置为正确的“是”。您使用的包裹是什么?WLCSP34,QFN40或QFN48?我选择了QFN40的OTP标题。此外,选择时钟源在外部晶体振荡器中,但在您使用的初始帖子中使用间隔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。

---->另外,将时钟源选择为外部晶体振荡器,但在您使用的初始帖子中使用间隔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外部乳房

// DA14585 / 586不支持Boost Mode + RCX
if(getBits16(ANA_Status_reg,Boost_selected)== 1)

ASSERT_WARNING (0);

我没有尝试评论这一点,因为我们没有许多筹码,因为我们在Covid-19锁定时锁定。我的代码在调试中跑了超过一周的直线。在我做了OTP之后,我开始面对问题。请支持我,因为它非常紧迫。

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

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

问候,

标记

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入: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.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨马克,

嗨马克,

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

谢谢,PM_DIALOG.

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

嗨pm_dialog,

- - - >没有。代码不会停在任何地方。运行起来没有任何问题。

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

问候,

标记

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨马克,

嗨马克,

你能在启用WDOG的情况下运行它吗?现在,如果您在调试模式下运行它,代码是否会卡住?请定义CFG_WDOG宏并再次运行它。

谢谢,PM_DIALOG.

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入: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.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨马克,

嗨马克,

我的建议是启用WDOG并在调试模式下运行代码。另外,请启用CFG_DEVELOPMENT_DEBUG标志。这允许您热附加调试器,并在发生硬故障或NMI时获取调试信息。所以,这两个宏启用,是卡住任何地方,当破坏它在调试模式?另外,没有必要为了调试它而缩短OTP -只需通过Keil IDE下载固件到System-RAM中。

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

谢谢,PM_DIALOG.

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

嗨pm_dialog,

我说你所说的。

我#Defined宏并按下调试按钮,然后再次按下相同的按钮。代码再次陷入困境。

问候,

标记

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨马克,

嗨马克,

它被困在哪里?你能分享截图吗?

谢谢,PM_DIALOG.

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

嗨pm_dialog,

我已断开调试器。所以我无法看到它被困的地方。

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

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

我在明天完成项目的截止日期,因为代码在广告间隔之间被卡住,我正在考虑通过将假到ARCH_SET_EXTEDDE_SLEEP(FALSE)将FALST删除广告间隔之间的OTP复制睡眠,并更改静态const sleep_state_t app_default_sleep_mode= ARCH_EXT_SLEEP_ON ...

这将解决我的问题吗?

问候,

标记

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入: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_periph_setup.c中,您正在配置所有GPIO以输入下拉。这不需要,因为默认状态是input_pulldown。您可以轻松阅读GPIO寄存器以澄清它。此外,这种代码的平安重新配置了不推荐的所有GPIO。

另外,在user_sleepmode.c文件中,您使用的是一个从不被保留的GPIO !

请在您在代码中找到的修改附加了一个diff文件。使用该修改,我能够在我们的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.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
既然你正在运行

因为您是在调试模式下运行项目,所以应该定义CFG_DEVELOPMENT_DEBUG。这允许您模拟从OTP到System-RAM的OPT镜像。

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
我建议跑

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

如果是,则使用您的自定义板并将FW下载到系统RAM中。请确保OTP为空。这是100%的工作吗?

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

嗨pm_dialog,

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

问候,

标记

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨,马克,请下载

HI MARK,请先将FW降至RAM - 现在工作吗?

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨,马克,你能不能

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

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

你好,

套件是da14580devkt-p_vc

子板是DA14585。

问候

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨,Mark,是的ble_app

嗨Mark,是的BLE_APP_SLEEPMODE在此板中正确运行。我可以在我身边跑。是否有可能与跳线配置共享一个phote?

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

你好,

照片附加了。

问候,

标记

依恋:
PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨马克,刚测试了ble

嗨Mark,刚刚在我们的DK上测试了BLE_APP_SLEEPMODE示例 - 我正在使用与您和相同的跳线配置相同的DK。你有备用DK吗?我也建议在干净的SDK目录上工作。此外,通过修改我昨天分享了您,我能够在我们的DK中运行您的项目......您是否在为DA14585构建项目?谢谢,PM_DIALOG.

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

嗨pm_dialog,

--->你有备用DK是否测试它?

不,我没有一个。

- >我也建议在干净的SDK目录上工作。

我从6.0.12.1020.2.zip文件中解压了sdk文件夹,打开了ble_app_sleepmode项目并构建了它,并开始了调试会话。我没有修改内部的任何东西。但我也面临着同样的问题。我附上了截图。

问候,

标记

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入:2018-02-08 11:03
嗨,马克,你能跑吗?

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

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

你好,

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

问候,

标记

PM_DIALOG.
离线
最后一次露面:2天17小时前
职员
加入: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驱动器中创建了一个文件夹。我运行了睡眠模式示例,没有修改任何内容。当我开始调试会话时,它在nmi处理程序上卡住了。

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

问候,

标记