嗨,对话框的团队,
这周我尝试烧毁OTP,使用智能片段工具箱v5.0.10.2434和JTAG接口。Smart Snippets工具箱可以“检测”我的芯片,并显示消息“检测设备:DA14585上的JTAG dongle xxxxx”,然后我创建并打开燃烧项目,选择OTP图像文件,按下“连接”按钮,日志上出现如下信息,连接动作终止。
[INFO General @20-01-06 19:36:36]发现SW-DP with ID 0x0BB11477
[INFO General @20-01-06 19:36:36]没有AP预选。假设AP[0]是AHB-AP
[INFO General @20-01-06 19:36:36] AP-IDR: 0x04770021, Type: AHB-AP
[INFO General @20-01-06 19:36:36] AHB-AP ROM: 0xE00FF000(基地地址。第一个ROM表)
[INFO General @20-01-06 19:36:36]找到了Cortex-M0 r0p0, Little endian。
[INFO General @20-01-06 19:36:36] FPUnit: 4 code (BP)插槽和0字面值插槽
[INFO General @20-01-06 19:36:36] CoreSight组件:
[INFO General @20-01-06 19:36:36] ROMTbl[0] @ E00FF000
[信息概述@ 20-01-06 19:36:36] romtbl [0] [0]:e000000,cid:b105e00d,pid:000bb008 scs
[INFO General @20-01-06 19:36:36] ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
[INFO General @20-01-06 19:36:36] ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B fbb
[Info General @ 20-01-06 19:36:36]精选的设备。
[信息OTP图像@ 20-01-06 19:43:29]标题记录已从十六进制文件xxxxxxxxx.hex中删除。
[INFO OTP Image @20-01-06 19:43:29] Read 62204 bytes from xxxxxxxx.hex. [INFO OTP Image @20-01-06 19:43:29]
[ERROR OTP Image @20-01-06 19:43:31]写入地址为50000012的值A6失败。
[ERROR OTP Image @20-01-06 19:43:31]下载固件到单板失败。
我的冲浪板以前运行得很好。我移动了之前的芯片和焊接一个新的,并试图烧OTP。
我尝试了一些新的芯片,但错误信息都一样。不管我怎么努力,我都失败了............
你能告诉我为什么会出现“address 50000012. Failed writing value A6 .”这条信息,我能做什么,非常感谢!
嗨SkyWei5830,
Keep in mind that OTP stands for One Time Programmable, thus 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. If you would like to burn the OTP, 2 areas must be burnt:
OTP图像区域,其中将用户代码放置并在引导时镜像到SYSRAM。
OTP标头区域,其中标记和特定的值,定义了设备的操作放置(关于OTP标头值的更多信息可以在智能片段用户指南中找到)。
你烧了OPT的头部了吗?此外。你使用的是定制板还是我们的dk ?另外,如果您试图通过JTAG连接Flash程序员,您能够连接吗?你能从Keil下载FW吗?
谢谢,PM_DIALOG.
嗨PM_Dialog,
谢谢你的回复,我能理解OTP的意思。也许我没说清楚,我用的是我的黑板,不是你的dk。这个板子已经被我以前的同事烧成OTP了,运行正常。我这周接替了我前同事的工作,我只是想通过烧OTP来验证他给我的十六进制文件是正确的,让板子重新正常工作。
我把原来的DA14585移除了板上,焊接了一个新的DA14585,然后尝试连接JTAG烧OTP。
我应该需要“从文件导入头”之前“连接”而燃烧OTP头?我应该先烧OTP图像还是先烧OTP头部?我已经尝试烧OTA映像首先,并试图烧OTA头首先,但相同的错误消息出现在日志。
我移除了DA14585并焊接一个新的DA14585.......我一次又一次地尝试,但是日志上出现了相同的错误消息。
我的电路板没有外部闪存,所以我无法尝试与闪存程序员连接。我使用源代码项目昨天在Keil的在线调试,电路板可以正常运行。
谢谢,
嗨PM_Dialog,
我改变了电路板的电源,然后刻录了OTP图像。当我单击“CNNect”按钮时,日志上没有错误,但是我点击“刻录”按钮,有一个如下所示,
[INFO OTP Image @20-01-07 11:41:54] ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
[INFO OTP Image @20-01-07 11:41:54] ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
[信息OTP图像@ 20-01-07 11:41:54] romtbl [0] [2]:e0002000,cid:b105e00d,pid:000bb00b fpb
[信息OTP图像@ 20-01-07 11:41:55]固件文件c:\程序文件(x86)\ smartsnippetstoolbox \ smartsnippetstoolbox5.0.10 \ common_resources \ supportpackages \ toolbox_resources / common / jtag_programmer.bin已成为选择下载。
[信息OTP图像@ 20-01-07 11:41:55]成功下载了固件文件到电路板。
[WARNING OTP Image @20-01-07 11:42:03] 4个零字节添加到文件的结尾字对齐数据
[ERROR OTP Image @20-01-07 11:42:03]清除内存地址7FC7C08失败。
[ERROR OTP Image @20-01-07 11:42:03]清除内存地址7FC7C08失败。
[错误OTP图像@ 20-01-07 11:42:03]读取内存失败。
那么当通过JTAG燃烧OTP时是否有很高的功率要求?烫伤时还有什么需要注意的吗?
我觉得我离成功不远了,谢谢。
嗨SkyWei5830,
如果我能正确理解,在你使用的定制板中,OTP是否已经被你的前同事烧毁了?你能在板上试一下,OTP没有烧焦吗?此外,我建议通过SmartSnippets工具箱中的UART而不是JTAG进行连接。你可以通过JTAG直接燃烧你的SystemRAM,只要OTP头字段名为JTAG enable flag保持为Enabled。如果应用程序标志被烧毁,而JTAG启用标志被禁用,那么该设备将无法访问。
谢谢,PM_DIALOG.
谢谢你的回复!
我试图通过UART而不是JTAG连接,在烧毁OTP的过程中,当消息“请按下板上的硬件重置按钮开始下载过程。”出现了,我按下了电路板上的重置按钮,我确认复位引脚已经高,但未触发DA14585复位,错误消息在日志上显示如下,刻录处理中止。
[INFO OTP Image @20-01-08 09:24:49]头记录已从十六进制文件ev_nb_key3_5.hex中删除。
[INFO OTP Image @20-01-08 09:24:49]从文件ev_nb_key3_5.hex中读取62204字节。
[INFO OTP Image @20-01-08 09:24:51]固件文件C:\Program Files (x86)\ SmartSnippetsToolbox\SmartSnippetsToolbox5.0.10\common_resources\SupportPackages\DA14585-586\toolbox_resources/common/flash_program .bin已被选择下载。
[INFO OTP Image @20-01-08 09:24:51] Connection to COM10 port has successfully opened。
[INFO OTP Image @20-01-08 09:24:51] Started download procedure…
[ACTION OTP Image @20-01-08 09:24:52]请按单板上的硬件复位按钮启动下载过程。
[错误OTP图像@ 20-01-08 09:25:07]超时:重置信号未检测到超过16000毫秒。
[信息booter @ 20-01-08 09:25:07]成功断开了COM10端口。
[ERROR OTP Image @20-01-08 09:25:07]下载固件到单板失败。
谢谢。
嗨SkyWei5830,
您能否注明OTP和OTP标题是否已从前同事刻录?您是否尝试过直接通过Keil下载FW?或者你试图烧掉SPI闪光灯吗?如果您与另一个DK一起尝试,您是否能够复制此问题?
谢谢,PM_DIALOG.
嗨PM_Dialog,
是的,OTP和OTP头已经被我的前同事烧掉了,我们的定制板以前工作得很好。我只是把之前在板上的DA14585去掉,然后焊接一个全新的,然后尝试烧OTP。无论我怎么努力,我都失败了。到目前为止,我已经尝试了6个da14585, 3种Jlink工具,但是最后都没有成功.........这是我第一次接触基于DA14585的设计,我的前同事没有给我留下任何焚烧说明,所以我只能通过您的帮助^^^^^^^^来探索
刚才我焊接了一个全新的DA14585,连接了电源和Jlink工具,打开了SmartSnippets工具箱,再次通过JTAG接口开始烧OTP。我点击Conncet,没有错误报告,然后我点击burn,出现如下错误信息,我再次失败.....
[INFO General @20-01-10 17:56:21]发现SW-DP with ID 0x0BB11477
[INFO General @20-01-10 17:56:21]没有AP预选。假设AP[0]是AHB-AP
[信息常规@ 20-01-10 17:56:21] AP-IDR:0x04770021,类型:AHB-AP
[信息概述@ 20-01-10 17:56:21] AHB-AP ROM:0xE00FF000(基础Addr。第一rom表)
[INFO General @20-01-10 17:56:21]找到了Cortex-M0 r0p0, Little endian。
[INFO General @20-01-10 17:56:21] FPUnit: 4 code (BP)插槽和0 literal插槽
[INFO General @20-01-10 17:56:21] CoreSight组件:
[信息概述@ 20-01-10 17:56:21] romtbl [0] @ E00FF000
[INFO General @20-01-10 17:56:21] ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
[INFO General @20-01-10 17:56:21] ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
[信息概述@ 20-01-10 17:56:21] romtbl [0] [2]:e0002000,cid:b105e00d,pid:000bb00b fpb
[信息概述@ 20-01-10 17:56:21]选择了BTLE设备。
[信息OTP图像@ 20-01-10 17:56:34]标题记录已从十六进制文件xxxx.hex中删除。
[INFO OTP Image @20-01-10 17:56:34]从文件ev_nb_key3_5.hex中读取62204字节。
[INFO OTP Image @20-01-10 17:56:38]发现SW-DP with ID 0x0BB11477
[INFO OTP Image @20-01-10 17:56:38]使用预配置的AP[0]作为AHB-AP与core通信
[INFO OTP Image @20-01-10 17:56:38] AP-IDR: 0x04770021, Type: AHB-AP
[信息OTP图像@ 20-01-10 17:56:38] AHB-AP ROM:0xE00FF000(基础ADDR。第一rom表)
[信息OTP图像@ 20-01-10 17:56:38]找到了Cortex-M0 R0P0,Little Endian。
[INFO OTP Image @20-01-10 17:56:38] FPUnit: 4 code (BP)插槽和0 literal插槽
[信息OTP图像@ 20-01-10 17:56:38] Coresight组件:
[信息OTP图像@ 20-01-10 17:56:38] romtbl [0] @ E00FF000
[INFO OTP Image @20-01-10 17:56:38] ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
[INFO OTP Image @20-01-10 17:56:38] ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
[信息OTP图像@ 20-01-10 17:56:38] romtbl [0] [2]:e0002000,cid:b105e00d,pid:000bb00b fpb
[INFO OTP Image @20-01-10 17:56:38]固件文件C:\Program Files (x86)\ SmartSnippetsToolbox\SmartSnippetsToolbox5.0.10\common_resources\SupportPackages\DA14585-586\toolbox_resources/common/jtag_program .bin已被选择下载。
[INFO OTP Image @20-01-10 17:56:39]成功下载固件到单板。
[WARNING OTP Image @20-01-10 17:56:46] 4个零字节添加到文件的结尾字对齐数据
[INFO OTP Image @20-01-10 17:56:46]读取32768字节,偏移量为00
[INFO OTP Image @20-01-10 17:56:46]读取29440字节,偏移量为0
[INFO OTP Image @20-01-10 17:56:46]读取结束。读取62208字节。
[INFO OTP Image @20-01-10 17:56:46]读取内存内容…
[信息OTP图像@ 20-01-10 17:56:49]开始燃烧内存,在地址0x7F80000处以62208个字节的数据。
[信息OTP图像@ 20-01-10 17:56:50]内存刻录成功完成。块1的2
[ERROR OTP Image @20-01-10 17:56:50]地址7FC7C02写入长度失败。
[ERROR OTP Image @20-01-10 17:56:50]内存燃烧失败。
你能告诉我这个警告消息意味着什么吗?这是警告消息导致编程失败吗?
[WARNING OTP Image @20-01-10 17:56:46] 4个零字节添加到文件的结尾字对齐数据
我已经下了购买你的dk的订单,正在去中国的路上,大概需要2周的时间,也许等我收到dk后可以更好的验证。
这几周太累了,我以为燃烧OTP是一件很简单的事情,但事实并非如此。关于DA14585,我在中国的互联网上没有太多的信息,大部分都是关于DA14580,关于如何通过JTAG接口烧OTP的信息几乎没有。
但我也获得了您的新知识,感谢您的帮助和指导。
嗨SkyWei5830,
这意味着您无法刻录OTP。您能否导出OTP标题并与我分享它?您可以导出它认为SmartSnippets Toolbox。请在OTP未刻录的新设备中尝试。你试图下载FW以为Keil吗?
谢谢,PM_DIALOG.
嗨PM_Dialog,
您可以在附件上读取OTP标题。我买的设备已经尝试过。我会买新的,然后再试一次。我没有电路板上没有外部闪光灯,我可以直接下载固件直接想到keil吗?我认为Keil只能用于在线调试,让代码在RAM中运行。我尝试过在线调试,代码正常运行RAM。
代码调试完成后OTP刻录完成,产品设计完成。这项工作通常由较少专业人员完成,所以我想,我可以拥有更简单,更可理解的操作指南吗?
谢谢,SkyWei5830
嗨SkyWei5830,
我建议你在一个不烧毁OTP / OTP头的板中尝试它。一般来说,客户在最终产品中使用OTP,而不是用于调试/教育范围。是的,你可以直接通过Keil下载FW到System-RAM。按两次“启动/停止调试会话”按钮,FW将被下载到System-RAM中。
如果您正在开始一个新的设计,我们强烈建议您转移到DA14531和SDK6.0.12,因为它得到了更大的改进。我们有很多代码示例和改进的文档,也有软件路线图的支持。请签出DA14531支持门户:
//www.wsdof.com/雷电竞官网登录products/connectivity/bluetooth-low-energy/products/da14531
谢谢,PM_DIALOG.
嗨PM_Dialog,
谢谢!谢谢你的建议!
嗨SkyWei5830,
谢谢你接受我的答案。我有任何后续问题,请创建一个新的论坛线程。
谢谢,PM_DIALOG.