DA14585型sleepmode code get stuck after OTP

Learn More常见问题教程

39个职位/0个新职位
最后一篇文章
马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
DA14585型sleepmode code get stuck after OTP

你好,对话小组,

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

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

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

1) 根据user\u periph\u 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_setting更改为#undef CFG_XTAL16M_ADAPTIVE_setting。

4) #undef CFG_CODE_LOCATION_EXT and #define CFG_CODE_LOCATION_OTP in da1458x_config_advanced.h

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

当做,

Mark

Device:
马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
我am attaching the project

我附加的项目文件夹也。

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,库达,

你好,库达,

谢谢你的问题。

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

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

对于自定义板,是否尝试在调试模式下运行应用程序?例如,您是否尝试将固件下载到系统RAM?

谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

Yes. I downloaded the code to sys-RAM and it worked perfectly without any problems.

将代码下载到OTP后,我断开了调试器的连接。我把电池取下来插回去。它跑了几分钟就卡住了。

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,MarkDsylva\u 2277

你好,MarkDsylva\u 2277

Can you please export and share the OTP Header that you are using?

谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

如何导出OTP头?

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,MarkDsylva\u 2277

你好,MarkDsylva\u 2277

From the SmartSnippets Toolbox. You need to connect to the OTP Header and export it to file.

谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

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

我正在附上日志。

当做,

Mark

附件:
马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
嗨,PM\U对话,

嗨,PM\U对话,

我设法拿到了头球。附于此。

当做,

Mark

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

Please update me on the status as I am waiting for your reply for further development in my project.

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,

你好,马克,

Both application flags are set to “Yes” which is correct. What the package are you using? WLCSP34, QFN40 or QFN48 ? I the OTP header you have selected the QFN40. Additionally, the clock source is selected to the external Crystal oscillator, but in your initial post you are using the interval RCX. What changes have you done in the OTP Header? Have you burnt the “Device and Package” and ”Sleep Clock Source” or it is the default configuration?

>>>After I downloaded the code to OTP, I disconnected the debugger. I removed the battery and inserted it back. It runs for a few minutes and then it gets stuck.

因为它运行了几分钟,这意味着设备从OTP正确引导。问题可能与软件有关。设备是否会突然停止?您能将其与对等设备连接吗?

谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

---> What the package are you using? WLCSP34, QFN40 or QFN48 ? I the OTP header you have selected the QFN40.

是的,是QFN40。

----> Additionally, the clock source is selected to the external Crystal oscillator, but in your initial post you are using the interval RCX. What changes have you done in the OTP Header? Have you burnt the “Device and Package” and ”Sleep Clock Source” or it is the default configuration?

我有一个外部水晶连接。但对于低功耗晶体选择我没有一个32Khz的外部晶体连接到我的对话芯片。所以我把它从define CFG LP CLK LP CLK XTAL32改成define CFG LP CLK LP CLK RCX20。我没有改变标题中的任何内容。我只将应用程序标志更改为“是”。

---->因为它运行了几分钟,这意味着设备从OTP正确引导。问题可能与软件有关。设备是否会突然停止?您能将其与对等设备连接吗?

这些设备运行几分钟,当它从睡眠中醒来时就会停止。应用程序的运行时间变化很大。有时2分钟内停止,也可能需要15分钟。因为我的项目只与广告有关,所以我没有将它与对等设备连接。如果问题与软件有关,为什么在调试过程中没有发生?。

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

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

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

->我还从你网站上的在线教程中读到,如果不使用32Khz外部crstal,下面的一行应该从rwip.c.中注释

//DA14585/586不支持Boost mode+RCX
if(GetBits16(ANA\u STATUS\u REG,BOOST\u SELECTED)==1)

ASSERT_WARNING(0);

我没有试着评论这件事,因为我没有太多的筹码,因为我们在锁定由于Covid-19。我的代码在调试中连续运行了一个多星期。在我做了OTP之后,我开始面临问题。这件事非常紧急,请支持我。

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

我t would be better if you can guide me on certain aspects because I am using a custom board and I simply cant waste chips after finding out bugs after doing the OTP. I will be asked question from my mangement on how many chips will u waste for this?.

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,

你好,马克,

You mentioned that you tested your project in development mode. Please keep in mind that when the debugger is attached, this prevents the system to go into sleep mode. Have you ever tested without the debugger attached?

Portably your issue is related with the waking up from sleep mode.

For example, if you download the same FW into the Sys-Ram (without the debugger attached) or into SPI Flash, is that running correctly?

关于OTP标题似乎是正确的。如果OTP头和OTP映像未正确烧录,设备将无法启动!在您的情况下,DA14585正确引导并开始发布广告。

谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

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

我tried to start the debug session from keil and stopped the debug session by pressing the same debug button. The code didnt run.

正如我在上面的帖子中所说的,我认为代码挂在广告过程的某个地方(即在广告间隔期间醒来和睡觉)。我的代码在user\u sleepmode.c文件中,在这里我处理外部中断和数据解码。收到数据后,我启动广告并设置一个app\u easy\u计时器5秒……然后我停止广告。中间我什么都没有。我要怎么检查代码挂在哪里?。有什么想法吗?

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,

你好,马克,

So the problem is related to the SW. Let’s try to investigate what might be the root cause. If you run the application code in your custom board with the debugger attached, does it stop anywhere? If yes, can you please share a screenshot where it gets stuck? Is the watchdog enabled ore disabled?

谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

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

-->我把看门狗弄坏了。

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,

你好,马克,

你能在启用WDOG的情况下运行它吗?现在,如果在调试模式下运行它,代码是否会卡在任何地方?请定义CFG\u WDOG宏并再次运行。

谢谢,下午好

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,

你好,马克,

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

谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

我使用的SDK是6.0.12

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,

你好,马克,

我的建议是启用WDOG并以调试模式运行代码。另外,请启用CFG\u DEVELOPMENT\u DEBUG标志。这允许您热连接调试器,并在发生硬故障或NMI时获取调试信息。那么,启用这两个宏后,在调试模式下破坏它时,它是否会卡在任何地方?另外,没有必要为了调试而bunt OTP,只需通过keilide将固件下载到系统RAM中即可。

我n the meanwhile, I will try to run the attached project in our development boards.

谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

我照你说的做了。

我#defined both the macros and uploaded the code by pressing the debug button and then pressed the same button again. The code got stuck again.

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,

你好,马克,

哪里卡住了?你能分享一个截图吗?

谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

我已断开调试器的连接。所以我不知道它卡在哪里了。

但是,当我在附加了调试器的情况下运行时,代码运行正常。

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

我有一个截止日期,以完成该项目的明天,因为代码是陷入广告之间的间隔,我正在考虑消除otp复制睡眠之间的广告间隔通过传递假到拱\设置\扩展\睡眠(假)和改变静态常量睡眠\状态\应用程序\默认\睡眠\模式=拱\扩展\睡眠\开。。。

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

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,

你好,马克,

我已经用定义的CFG\u WDOG和CFG\u DEVELOPMENT\u DEBUG宏运行了您所附的项目。我在QFN40子板和我们的新的亲DK主板工作。为了使用板上按钮唤醒设备,我使用P1ï1作为LED。

在调试模式下运行代码时,它会卡在下一行GPIO.c文件中的GPIO\u SetPinFunction()中。

__asm(“BKPT#0\n”);//此pin以前未被保留!

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

另外,在user\u sleepmode.c文件中,您使用的是从未保留的GPIO!

请找到附加的差异文件与修改我在您的代码。有了这些修改,我可以在我们的DKs运行您的项目。

The OTP stand for One Time Programmable, so you should make sure that your project is totally running before burning it!

我n development stage, it is recommended to have the WDOG and the development debug enabled, Otherwise, if the code gets stuck somewhere you will be never notified for this! In conclusion, burning the OTP image and OTP header requires that the application code is running 100%. Otherwise, the chip will never boot form OTP!

您使用的DA14585软件包是什么?

谢谢,下午好

附件:
马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

好 啊。我会照你说的做。

我使用的是QFN40软件包。

GPIO保留问题是否会导致代码在执行OTP后挂起?。

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
既然你在管理

因为您是在调试模式下运行项目,所以应该定义CFG\u DEVELOPMENT\u debug。这允许您模拟从OTP到系统RAM的OPT镜像。

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
我建议运行

我建议运行project in out DK. Is it running correctly?

如果是的话,那么使用你的定制板并将固件下载到系统RAM中。请确保OTP为空。100%有效吗?

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

我took a fresh copy of sleepmode example from your skd and tried to download it to the ram in the 585 daughter board. I didnt modify anything in any of the code. When I pressed the debug button and started the code it immediately got stopped at the nmi_handler. Will your example code work as such without modification in the 585 daughter board?.

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,please downoload the

嗨,马克,请先把fw放到RAM里-现在可以了吗?

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,can you please

你好,马克,can you please indicate which DK are you using? Which daughter board and which mother board? yes, the example is working correctly..

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
你好,

你好,

套件为DA14580DevKT-P\U VC

子板为DA14585。

Regards

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
嗨,马克,是的,ble\u应用程序

你好,马克,是的,ble\u app\u睡眠模式在这个板上运行正常。我可以在我身边跑。是否可以与跳线配置共享一个phote?

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
你好,

你好,

附照片。

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
嗨,马克,刚刚测试了ble

你好,马克,刚刚在我们的DK上测试了bleèappèsleepmode示例-我和你使用的是同一个DK和同一个跳线配置。你有备用的DK测试吗?我建议也在一个干净的SDK目录上工作。此外,与修改我昨天分享你,我可以运行在我们的DK你的项目。。。你在为DA14585做项目吗?谢谢,下午好

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20
Hi PM_Dialog,

Hi PM_Dialog,

--->你有备用的DK测试吗?

No. I dont have one.

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

我从6.0.12.1020.2.zip文件中提取了sdk文件夹,打开ble\u app\u sleepmode项目并构建它并启动调试会话。我没有修改里面的任何东西。但我也面临同样的问题。我附上了截图。

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
嗨,马克,你能跑吗

嗨,马克,你能跑吗any of the other SDK project? For example, the ble_app_barebone. All the SDK examples are running in our DKs out-of-the-box and as provided by the SDK. In this specific device, have you burnt the OTP?

马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20

你好,

我不能举出任何不可靠的例子。我试过布林奇的计划。效果不错。

当做,

Mark

PM\U对话框
离线
最后一次见到:2天21小时前
工作人员
已加入:2018-02-08 11:03
你好,马克,

你好,马克,

请找到我的跳线配置附件。所有BLE示例都按预期运行。在ble\u app\u睡眠模式的情况下,我可以使用附加的配置运行它。所以,请尝试将SDK解压到一个新文件夹中,然后再试一次。我建议使用一个短的SDK路径——可能在C:\下解压。如果它没有再次运行,可能是电路板损坏了。你在那台设备上写过OTP吗?

谢谢,下午好

附件:
马尔基尔瓦2277
离线
最后一次见到:4 days 4 hours ago
已加入:2019-06-19 04:20

Hi PM_Dialog,

我tried as you said.

1) 我拿出一个新的SDK副本,在D驱动器中创建了一个文件夹。我运行了睡眠模式的例子,没有修改任何东西。我一开始调试会话,它就卡在了nmi处理程序上。

2) I connected the smart snippets tool and checked reading the OTP memory. It read only zeros.

当做,

Mark