OTP编程错误(使用DEV。套件)

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
4个帖子/ 0新
最后一篇
哈桑
离线
最后一次露面:4个月2天前
加入:2016-05-31 06:53
OTP编程错误(使用DEV。套件)

你好,
我正在尝试使用OTP通过SmartSnippets编程(上传固件上)我的DA14580芯片,我收到此错误:

地址0x81FEC(MSB第一)附加错误信息:FF FF FF FE
记忆刻录失败。

我在另一个论坛中阅读了同样的问题,但我已经解决了所提供的解决方案,我仍然收到错误(我拥有最新版本的SmartSnippets)。
有些信息可能有助于故障排除:我正在使用基本的开发套件JTAG连接。我尝试使用Keil测试固件。检测到ARM Cortex-M SW,我可以运行该程序,但是我无法使用手机检测BLE设备。我知道代码有效,我的连接是正确的,因为我在几个月前尝试了这个,它的工作了,但它只是不会再检测。

我已经检查了TP2的电压,在那里我已经用连接器焊接电线以接口,测量6.6V(不是6.8V)。这可能是这个问题吗?它应该是6.8V吗?如果没有,任何想法可能是什么?
另外,是否有一个标题销来连接,允许我校准晶体?我在MCU中连接到P0.5,但我无法将其连接到DEV上的此引脚。套件板,因为这是由我的TX线占据。有替代方案吗?

在此先感谢您的帮助。

设备:
PM_DIALOG.
离线
最后一次露面:2小时56分钟前
职员
加入:2018-02-08 11:03
嗨哈桑,

嗨哈桑,

谢谢你在线问题

您提到“我尝试使用Keil测试固件。检测到ARM Cortex-M SW,我可以运行程序,然后我无法用手机检测BLE设备。“

请在调试模式下运行代码吗?你不能检测到你的设备有点奇怪。我建议您确保代码正常运行,芯片是广告的。关于广告,您可以使用SmartSnippets Toolbox的Power Profiler。

通常,您应该按照以下步骤才能燃烧选择。

您是否应该从SmartSnippets Toolbox(推荐最新版本)中的OTP程序员。

  1. OTP有3个区域,用户可以刻录数据:
  2. OTP图像区域,其中将用户代码放置并在引导时镜像到SYSRAM。
  3. OTP NVDS区域,其中NVDS结构在启动时填充了OTP。

OTP标题区域,其中放置了定义设备操作的标志和特定值(关于OTP报头的值的更多信息,可以在智能代码片段用户指南中找到)。

当用户试图刻录OTP时,他必须确保编程电压干净,不得超过6.8V。此外,6.8V只能应用于VBAT3V后的VPP,并且必须在vbat3v移除之前从VPP移除,否则芯片可能会损坏。

要使用最常用的配置刻录OTP,请按照以下说明操作:

  1. 通过JTAG或UART打开智能片段,然后打开。
  2. 从工具栏按钮选择OTP程序员,以便为每个OTP区域打开3个不同的选项卡。
  3. 选择OTP图像选项卡,然后在左侧选项卡浏览到您想要刻录并击中刻录的.hex文件。
  4. 一旦最后一步完成,您将烧掉您的海关OTP。需要一些其他配置,以便您的设备从中启动它。
  5. 转到OTP标题选项卡。
  6. 将两个应用程序标志更改为“是”(这是必需的,以便从OTP开始启动,当一个主引导加载程序被禁用时 - 扫描有效图像的外围设备,用户只能使用JTAG重新编程他的电路板)。
  7. 点击刻录按钮,以将配置刻录到OTP标题。
  8. 上述步骤足以让用户编程OTP
  9. 当OTP被刻录并且OTP头上的应用程序标志也被刻录时,禁用主引导加载程序,以便扫描过程未发生,因此您将无法从SPI或UART或I2C引导。只要称为JTAG Enable标志停留的OTP标题字段,您就可以通过JTAG直接刻录Sysram。

注意:如果刻录应用程序标志并且禁用JTAG启用标志,则设备无法访问。

请记住,OTP持续一次可编程,因此您无法多次擦除并重新编写OTP,但您只能将仍设置为0的位,然后将其转换为1。

谢谢,PM_DIALOG.

哈桑
离线
最后一次露面:4个月2天前
加入:2016-05-31 06:53
嗨admin,

嗨admin,
感谢您的提示,详细和有助的反馈。这是一个很大的支持,非常感谢。
只是为了解决你的一些积分:

我正在调试模式下运行我的代码。我开始一个调试会话,它开始正常,然后我选择运行并且它运行,而不遇到错误和停止,直到我自己停止它。因此,实际软件在没有问题的情况下运行,但我只是因为某种原因无法检测到它。

至于解决方案的第二部分关于使用SmartSnippet Toolbox上传OTP,我按顺序浏览这些步骤,但这是导致我收到的错误我提到的错误:
地址0x81FEC(MSB第一)附加错误信息:FF FF FF FE
记忆刻录失败。

所以在你的一步。3,我无法刻录图像,因为我收到此错误。
您认为它是否与通过TP2提供的电压(目前为6.6V)有关?如果是这样,这也会导致设备在尝试用keil调试时不显示?

使用Keil调试时,我是否需要将此电压应用于VPP?或者在实际上将固件上传到OTP时,我只需要此连接吗?

谢谢。

PM_DIALOG.
离线
最后一次露面:2小时56分钟前
职员
加入:2018-02-08 11:03
嗨哈桑,

嗨哈桑,

“我正在调试模式下运行我的代码。我开始一个调试会话,它开始正常,然后我选择运行并且它运行,而不遇到错误和停止,直到我自己停止它。因此,实际软件在没有问题的情况下运行,但我只是因为某种原因无法检测到它。“

您能否请使用SmartSnippets Toolbox的电源分布器,以确保设备正确启动广告?您是否尝试运行任何SDK示例,或者您已开发自定义应用程序?然后,我建议您运行SDK的BLE_APP_BAREBONE示例(因为它提供,没有任何修改)。DA14580正确的广告吗?您是否能够在NLE移动应用程序中检测到它?

Regarding your question about how to programming the OTP, I would advice you first to make sure that the firmware is fully functional, and then program the OTP, you can’t erase and re-write the OTP multiple times, but you can only flip the bits that are still set to 0 and turn them to 1.

如我以前的答案中所述,您应该确保编程电压干净,不得超过6.8V。此外,6.8V只能应用于VBAT3V后的VPP,并且必须在vbat3v移除之前从VPP移除,否则芯片可能会损坏。根据数据表,对于OTP编程,应使用VPP = 6.7 V±0.1 V.

使用Keil调试时,我是否需要将此电压应用于VPP?
在通过Keil下载固件时,系统RAM是刻录的,并且从那里烧毁设备靴子。这样做,无需提供VPP。

当实际上将固件上传到OTP时,我是否只需要此连接?

固件功能完全正常时,您需要此设置,并且您想要刻录OTP。

谢谢,PM_DIALOG.