错误与OTP编程(使用Dev. Kit)

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
哈桑
离线
最后看到:6个月,1个星期前
加入:2016-05-31 06:53
错误与OTP编程(使用Dev. Kit)

你好,
我正在尝试使用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. kit板上的这个引脚,因为我的Tx线占用了它。还有其他选择吗?

提前感谢你的帮助。

设备:
PM_Dialog
离线
最后看到:1天6小时前
工作人员
加入:2018-02-08 11:03
嗨,哈桑,

嗨,哈桑,

谢谢你在网上提出的问题

你提到“我用Keil测试了固件。ARM CORTEX-M SW被检测到,我可以运行程序,但我无法用手机检测到BLE设备。”

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

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

你应该从SmartSnippets工具箱(推荐最新版本)中选择OTP程序员。

  1. OTP包含3个用户可以燃烧数据的区域:
  2. OTP映像区域,其中放置了用户代码,并在引导时镜像到syram。
  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 Header选项卡。
  6. 将两个应用程序标志都更改为YES(这是为了从OTP启动引导所必需的,当主引导加载程序被禁用时——扫描外设以获得有效的映像,用户只能使用JTAG重新编程他的主板)。
  7. 点击刻录按钮,以将配置刻录到OTP标题。
  8. 上述步骤足以让用户编程OTP
  9. 当OTP被刻录并且OTP头上的应用程序标志也被刻录时,禁用主引导加载程序,以便扫描过程未发生,因此您将无法从SPI或UART或I2C引导。只要称为JTAG Enable标志停留的OTP标题字段,您就可以通过JTAG直接刻录Sysram。

注意:如果应用程序标志被烧毁,而JTAG启用标志被禁用,那么该设备将无法访问。

记住,OTP代表一次性可编程,因此你不能擦除和重写OTP多次,但你只能翻转位仍然设置为0,并把他们变成1。

谢谢,PM_Dialog

哈桑
离线
最后看到:6个月,1个星期前
加入:2016-05-31 06:53
你好管理员,

你好管理员,
感谢您的提示,详细和有助的反馈。这是一个很大的支持,非常感谢。
我只想谈谈你的一些观点:

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

至于你的解决方案的第二部分关于使用SmartSnippets工具箱上载OTP,我通过这些步骤的顺序,但这是导致我收到的错误,我上面提到:
地址0x81FEC(MSB第一)附加错误信息:FF FF FF FE
记忆燃烧失败了。

所以听你的。3、我不能烧毁图像,因为我得到这个错误。
你认为这和通过TP2提供的电压(目前是6.6V)有关吗?如果是这样,这也会导致设备不显示时试图与Keil调试?

在用Keil调试时,我甚至需要将这个电压应用到Vpp吗?或者我只需要这个连接时,实际上传固件到OTP?

谢谢。

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

嗨,哈桑,

我正在调试模式下运行我的代码。我启动一个调试会话,它很好地启动,然后我选择Run,它运行,没有遇到错误并停止,直到我自己停止它。因此,实际的软件运行没有问题,但我就是无法检测它的原因。”

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

关于你的问题如何编程OTP,我会建议你首先确保固件功能齐全,然后程序OTP,你不能擦除和重写OTP多次,但你仍然只能翻转的位设置为0,把它们为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