嗨,对话框的团队,
这周我尝试烧毁OTP,使用智能片段工具箱v5.0.10.2434和JTAG接口。Smart Snippets工具箱可以“检测”我的芯片,并显示消息“检测设备:DA14585上的JTAG dongle xxxxx”,然后我创建并打开燃烧项目,选择OTP图像文件,按下“连接”按钮,日志上出现如下信息,连接动作终止。
[Info General @ 20-01-06 19:36:36]找到了带ID 0x0BB11477的SW-DP
[信息概述@ 20-01-06 19:36:36]没有预选的ap。假设AP [0]是AHB-AP
[信息通用@ 20-01-06 19:36:36] AP-IDR:0x04770021,类型: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。
[信息概述@ 20-01-06 19:36:36] FpUnit:4代码(BP)插槽和0个文字插槽
[INFO General @20-01-06 19:36:36] CoreSight组件:
[INFO General @20-01-06 19:36:36] ROMTbl[0] @ E00FF000
[INFO General @20-01-06 19:36:36] ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB008 SCS
[信息通用@ 20-01-06 19:36:36] romtbl [0] [1]:e0001000,cid:b105e00d,pid:000bb00a dwt
[信息概述@ 20-01-06 19:36:36] romtbl [0] [2]:e0002000,cid:b105e00d,pid:000bb00b fpb
[INFO General @20-01-06 19:36:36] BTLE device selected。
[INFO OTP Image @20-01-06 19:43:29]头记录已从hex文件xxxxxxxx.hex中移除。
[信息OTP图像@ 20-01-06 19:43:29]从xxxxxxxxxx.hex读取62204字节。
[ERROR OTP Image @20-01-06 19:43:31]写入地址为50000012的值A6失败。
[错误OTP图像@ 20-01-06 19:43:31]将固件文件下载到电路板上。
我的董事会以前跑得很好。我将芯片搬到了以前和焊接一个新的芯片,并试图烧毁OTP。
我尝试了一些新的芯片,但错误信息都一样。不管我怎么努力,我都失败了............
你能告诉我为什么这条消息“在地址50000012上写入值A6失败。”看起来,我能做什么,非常感谢!
嗨SkyWei5830,
记住,OTP代表一次性可编程,因此你不能擦除和重写OTP多次,但你只能翻转位仍然设置为0,并把他们变成1。如果你想烧OTP,必须烧2个区域:
OTP映像区域,其中放置了用户代码,并在引导时镜像到syram。
OTP标题区域,其中放置了定义设备操作的标志和特定值(关于OTP报头的值的更多信息,可以在智能代码片段用户指南中找到)。
你燃烧了opt header吗?此外。您使用的是定制董事会或我们的任何DKS吗?另外,如果您尝试通过JTAG与Flash程序员连接,您是否能够连接?你能从Keil下载FW吗?
谢谢,PM_Dialog
嗨pm_dialog,
谢谢你的回复,我能理解OTP的意思。也许我没说清楚,我用的是我的黑板,不是你的dk。这个板子已经被我以前的同事烧成OTP了,运行正常。我这周接替了我前同事的工作,我只是想通过烧OTP来验证他给我的十六进制文件是正确的,让板子重新正常工作。
我把原来的DA14585移除了板上,焊接了一个新的DA14585,然后尝试连接JTAG烧OTP。
在Burning OTP标题时,我应该在“Connect”之前“从文件导入标题”?我应该先刻录OTP图像还是首先刻录OTP图像?我尝试首先燃烧OTA图像并首先尝试刻录OTA标题,但在日志上显示相同的错误消息。
我删除了DA14585和焊接一个新的DA14585 .......我一次又一次尝试,但是在日志上出现相同的错误消息。
我的板没有外部闪存,所以我不能尝试连接到flash程序员。我昨天在keil用源代码项目在线调试,板子可以正常运行。
谢谢,
嗨pm_dialog,
我改变了我的板子的电源,然后烧录了OTP图像。当我点击“连接”按钮时,日志上没有错误,但是当我点击“刻录”按钮时,出现如下错误,
[信息OTP图像@ 20-01-07 11:41:54] romtbl [0] [0]:e000u000,cid:b105e00d,pid:000bb008 scs
[INFO OTP Image @20-01-07 11:41:54] ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
[INFO OTP Image @20-01-07 11:41:54] ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B fbb
[INFO OTP Image @20-01-07 11:41:55]固件文件C:\Program Files (x86)\ SmartSnippetsToolbox\SmartSnippetsToolbox5.0.10\common_resources\SupportPackages\DA14585-586\toolbox_resources/common/jtag_program .bin已被选择下载。
[INFO OTP Image @20-01-07 11:41:55]成功下载固件到单板。
[WARNING OTP Image @20-01-07 11:42:03] 4个零字节添加到文件的结尾字对齐数据
[错误OTP图像@ 20-01-07 11:42:03]清除内存地址7FC7C08失败。
[错误OTP图像@ 20-01-07 11:42:03]清除内存地址7FC7C08失败。
[ERROR OTP Image @20-01-07 11:42:03]读取内存失败。
所以通过JTAG燃烧OTP时有高功率要求吗?烧伤时是否有其他人注意?
我觉得我离成功不远了,谢谢。
嗨SkyWei5830,
如果我能够正确理解,在您使用的定制板中,OTP已经被您的前同事烧毁了吗?你能在董事会中试试,OTP没有烧焦吗?此外,我建议在SmartSnippets Toolbox中连接UART而不是JTAG。只要启用名为JTAG Enable标志的OTP标题字段,就可以直接刻录SystemRam。如果刻录应用程序标志并且禁用JTAG启用标志,则设备将无法访问。
谢谢,PM_Dialog
谢谢你的回复!
我试图连接UART JTAG,而是在燃烧的过程中OTP,当消息”请按板上的硬件复位按钮开始下载过程。”出现时,我按下复位按钮,和我确认复位销已经很高,但DA14585重置不触发,错误消息显示在日志上如下所示,燃烧处理中止。
[信息OTP图像@ 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字节。
[信息OTP图像@ 20-01-08 09:24:51]固件文件c:\ program files(x86)\ smartsnippetstoolbox \ smartsnippetstoolbox5.0.10 \ common_resources \ supportpackages \ toolbox_resources / common / flash_programmer.bin已成为选择下载。
[信息OTP图像@ 20-01-08 09:24:51]与COM10端口的连接已成功打开。
[信息OTP图像@ 20-01-08 09:24:51]开始下载程序...
[动作OTP图像@ 20-01-08 09:24:52]请按电路板上的硬件重置按钮启动下载过程。
[ERROR OTP Image @20-01-08 09:25:07]超时:重置信号未检测到超过16000毫秒。
[INFO Booter @20-01-08 09:25:07] Successfully disconnected from port COM10。
[错误OTP图像@ 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,出现如下错误信息,我再次失败.....
[信息概述@ 20-01-10 17:56:21]找到了带ID 0x0BB11477的SW-DP
[信息常规@ 20-01-10 17:56:21]没有预选的ap。假设AP [0]是AHB-AP
[INFO General @20-01-10 17:56:21] AP-IDR: 0x04770021, Type: AHB-AP
[INFO General @20-01-10 17:56:21] AHB-AP ROM: 0xE00FF000(基地地址。第一个ROM表)
[INFO General @20-01-10 17:56:21]找到了Cortex-M0 r0p0, Little endian。
[信息概述@ 20-01-10 17:56:21] FpUnit:4代码(BP)插槽和0个字幕插槽
[INFO General @20-01-10 17:56:21] CoreSight组件:
[INFO General @20-01-10 17:56:21] ROMTbl[0] @ E00FF000
[信息概述@ 20-01-10 17:56:21] romtbl [0] [0]:e000u000,cid:b105e00d,pid:000bb008 scs
[INFO General @20-01-10 17:56:21] ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
[INFO General @20-01-10 17:56:21] ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B fbb
[INFO General @20-01-10 17:56:21] BTLE设备已选择。
[INFO OTP Image @20-01-10 17:56:34]头记录已从hex文件xxxx.hex. format中删除。
[信息OTP图像@ 20-01-10 17:56:34]从文件ev_nb_key3_5.hex读取62204字节。
[信息OTP图像@ 20-01-10 17:56:38]找到带ID 0x0BB11477的SW-DP
[INFO OTP Image @20-01-10 17:56:38]使用预配置的AP[0]作为AHB-AP与core通信
[信息OTP图像@ 20-01-10 17:56:38] AP-IDR:0x04770021,类型:AHB-AP
[INFO OTP Image @20-01-10 17:56:38] AHB-AP ROM: 0xE00FF000 (Base addr. io)第一个ROM表)
[INFO OTP Image @20-01-10 17:56:38]发现Cortex-M0 r0p0, Little endian。
[信息OTP图像@ 20-01-10 17:56:38] FpUnit:4代码(BP)插槽和0个字幕插槽
[INFO OTP Image @20-01-10 17:56:38] CoreSight组件:
[INFO OTP Image @20-01-10 17:56:38] ROMTbl[0] @ E00FF000
[信息OTP图像@ 20-01-10 17:56:38] romtbl [0] [0]:e000000,cid:b105e00d,pid:000bb008 scs
[INFO OTP Image @20-01-10 17:56:38] ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 000BB00A DWT
[INFO OTP Image @20-01-10 17:56:38] ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B fbb
[信息OTP图像@ 20-01-10 17:56:38]固件文件c:\ program files(x86)\ smartsnippetstoolbox \ smartsnippetstoolbox5.0.10 \ common_resources \ supportpackages \ toolbox_resources / common / jtag_programmer.bin已成为选择下载。
[INFO OTP Image @20-01-10 17:56:39]成功下载固件到单板。
[WARNING OTP Image @20-01-10 17:56:46] 4个零字节添加到文件的结尾字对齐数据
[信息OTP图像@ 20-01-10 17:56:46]读取32768个字节与偏移00
[信息OTP图像@ 20-01-10 17:56:46]读取29440字节与偏移0
[信息OTP图像@ 20-01-10 17:56:46]阅读已完成。读62208字节。
[信息OTP图像@ 20-01-10 17:56:46]阅读内存内容......
[INFO OTP Image @20-01-10 17:56:49]开始在地址0x7F80000处使用62208字节的数据烧录内存。
[INFO OTP Image @20-01-10 17:56:50] Memory burning completed successfully. [INFO OTP Image @20-01-10 17:56:50]内存燃烧完成成功。第二部分
[错误OTP图像@ 20-01-10 17:56:50]地址7FC7C02的写入长度失败。
[错误OTP图像@ 20-01-10 17:56:50]内存刻录失败。
你能告诉我这个警告是什么意思吗?此警告消息是否导致编程失败?
[WARNING OTP Image @20-01-10 17:56:46] 4个零字节添加到文件的结尾字对齐数据
我已经下令购买你的DKS,它正在前往中国,大约需要2周,也许我可以在收到DKS后更好地验证。
这几周太累了,我以为燃烧OTP是一件很简单的事情,但事实并非如此。关于DA14585,我在中国的互联网上没有太多的信息,大部分都是关于DA14580,关于如何通过JTAG接口烧OTP的信息几乎没有。
但我也从你那里获得了新的知识,谢谢你的帮助和指导。
嗨SkyWei5830,
这意味着您不能烧毁OTP。你能导出OTP头文件和我分享吗?您可以通过SmartSnippets工具箱导出它。请在一个新的设备中尝试它的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支持门户:
https://www.dialog-seminile.com/produ雷电竞官网登录cts/connectivity/bluetooth-low-energy/products/da14531
谢谢,PM_Dialog
嗨pm_dialog,
谢谢你!谢谢你的建议!
嗨SkyWei5830,
谢谢你接受我的回答。如果您有任何后续问题,请创建一个新的论坛帖子。
谢谢,PM_Dialog