OTP编程错误(使用开发工具包)

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
4个职位/0个新职位
最后一篇文章
哈桑
离线
最后一次见到:4个月3周前
已加入:2016-05-31 06:53
OTP编程错误(使用开发工具包)

你好,
I am trying to program (upload firmware onto) my DA14580 chip using OTP via SmartSnippets, and I am getting this error:

Additional error info at address 0x81FEC (MSB first): FF FF FF FE
内存刻录失败。

I have read in the other forums the same issue, but I have addressed the possible solutions provided and I'm still getting the error (and I have the latest version of SmartSnippets).
一些可能有助于排除故障的更多信息:我正在使用基本开发工具包JTAG connection。我试过用Keil测试固件。检测到ARM CORTEX-M软件,我可以运行该程序,但我无法用手机检测到BLE设备。我知道代码工作,我的连接是正确的,因为我尝试过这个前几个月,它工作,但它只是不会再检测。

I have checked the voltage at TP2, where I have soldered a wire to interface with a connector, and it measures 6.6V (not 6.8V). Could this be the issue? Should it be 6.8V exactly? If not, any ideas what it could be?
另外,是否有一个头引脚连接,使我可以校准晶体?我已将它连接到我的MCU中的P0.5,但我无法将它连接到dev.kit板上的这个引脚,因为它被我的Tx线占用。有别的选择吗?

事先谢谢你的帮助。

Device:
PM\U对话框
离线
最后一次见到:16 hours 25 min ago
工作人员
已加入:2018-02-08 11:03
嗨,哈桑,

嗨,哈桑,

谢谢你的在线提问

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

Can you please run your code in debug mode? It’s little bit weird that you are not able to detect your device. I would advise you to ensure that the code is running correctly, and the chips is advertising. Regarding the advertising, you could use the Power profiler of SmartSnippets toolbox.

In general, you should follow the procedure below in order to burn the OPT.

您应该从SmartSnippets工具箱(建议使用最新版本)中选择OTP程序员。

  1. OTP有3个用户可以刻录数据的区域:
  2. OTP映像区,在这里放置用户代码并在引导时镜像到sysram。
  3. OTP-NVDS区域,其中NVDS结构在引导时由OTP填充。

The OTP Header area, where flags and specific values that define the operation of the device are placed (more information regarding the values of the OTP Header can be found in the Smart Snippets User guide).

When the user tries to burn the OTP he have to make sure that the programming voltage is clean and must not exceed 6.8V. Also the 6.8V can only be applied to VPP after the VBAT3V is supplied and must be removed from VPP before the VBAT3V is removed, otherwise the chip could be damaged.

In order to burn the OTP with the most common configuration please follow the below instructions:

  1. 通过JTAG或UART打开智能代码段并点击Open。
  2. From the tool bar button choose the OTP programmer in order to open 3 different tabs, one for each OTP area.
  3. 选择左边的OTP图像标签和标签的眉毛e to the .hex file you would like to burn and hit Burn.
  4. 一旦最后一步完成,你将烧毁你的客户的董事会OTP。为了让您的设备从中引导,需要一些额外的配置。
  5. 转到OTP标题选项卡。
  6. 将两个应用程序标志都更改为YES(这是从OTP启动引导所必需的,当其中一个设置为禁用主引导加载程序时-扫描外围设备以获取有效图像,用户只能使用JTAG对其板重新编程)。
  7. Hit the burn Button in order to burn the configuration to the OTP Header.
  8. The above steps are enough in order for the user to program the OTP
  9. When the OTP is burned and the application flags on the OTP header are also burned, the primary bootloader is disabled so the scanning procedure doesn't take place, thus you will not be able to boot from the SPI or UART or I2C. You will be able to directly burn your sysram though via JTAG as long as the OTP header field called JTAG enable flag stays Enabled.

注意:如果应用程序标志被烧录并且JTAG enable标志被禁用,那么设备将变得不可访问。

请记住,OTP代表一次性可编程,因此不能多次擦除和重新写入OTP,但只能翻转仍设置为0的位并将其转换为1。

谢谢,下午好

哈桑
离线
最后一次见到:4个月3周前
已加入:2016-05-31 06:53
嗨,管理员,

嗨,管理员,
Thanks for your prompt, detailed, and instructive feedback. It's great support and much appreciated.
我想谈谈你的观点:

I am running my code in debug mode. I start a debug session, it starts fine, then I select Run and it runs, without encountering an error and stopping, until I stop it myself. So the actual software runs without issues, but I just can't detect it for some reason.

至于解决方案中关于使用SmartSnippets工具箱上载OTP的第二部分,我按顺序完成了以下步骤,但这就是我收到的上面提到的错误的原因:
Additional error info at address 0x81FEC (MSB first): FF FF FF FE
内存刻录失败。

所以在你的脚下。3,我不能烧录图像,因为我得到这个错误。
您认为这与TP2提供的电压(目前为6.6伏)有关吗?如果是这样,这是否也会导致设备在尝试使用Keil进行调试时不显示?

当我用Keil调试的时候,我需要给Vpp加上这个电压吗?或者我只需要在实际上传固件到OTP时才需要这个连接?

Thanks.

PM\U对话框
离线
最后一次见到:16 hours 25 min ago
工作人员
已加入:2018-02-08 11:03
嗨,哈桑,

嗨,哈桑,

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

Can you please use the Power Profiler of SmartSnippets toolbox in order to ensure that the device start advertising correctly? Are you trying to run any of the SDK example, or you have developed a custom application? Then, I would suggest you to run the ble_app_barebone example of the SDK (as it is provided, without any modifications). Is the DA14580 advertising correctly? Are you able to detect it in the NLE mobile application?

关于如何编程OTP的问题,我建议您首先确保固件功能齐全,然后再编程OTP,您不能多次擦除和重新写入OTP,但只能翻转仍设置为0的位并将其转换为1。

正如我之前的回答中提到的,您应该确保编程电压是干净的,并且不得超过6.8V。此外,6.8V只能在提供VBAT3V之后应用于VPP,并且必须在卸下VBAT3V之前从VPP中卸下,否则可能会损坏芯片。根据数据表,对于OTP编程,VPP=6.7 V± 应使用0.1 V。

当我用Keil调试的时候,我需要给Vpp加上这个电压吗?
When downloading the firmware through Keil, the System-RAM is burnt and the device boots from there.To do so, there is no need for supplying Vpp.

我只需要在实际上传固件到OTP时才需要这个连接吗?

当固件完全正常工作时,您需要此设置,并且您希望烧录OTP。

谢谢,下午好