嗨,对话框的团队,
本周我尝试用Smart Snippets工具箱v5.0.10.2434和JTAG接口刻录OTP。智能Snippets工具箱可以“检测”我的芯片,并显示消息“检测到的设备:DA14585在JTAG狗狗xxxxx”,然后我创建并打开燃烧项目,选择OTP图像文件,按“连接”按钮,消息出现在日志如下,连接动作中止。
[INFO General @20-01-06 19:36:36]找到ID为0x0BB11477的SW-DP
[INFO General @20-01-06 19:36:36]未预选AP。假设AP[0]为AHB-AP
[INFO General @20-01-06 19:36:36] AP-IDR: 0x04770021,类型:AHB-AP
[INFO General @20-01-06 19:36:36] AHB-AP ROM: 0xE00FF000 (Base addr.)第一个ROM表)
[INFO General @20-01-06 19:36:36] Found Cortex-M0 r0p0, Little end。
[INFO General @20-01-06 19:36:36] FPUnit: 4个代码(BP)槽和0个文字槽
[INFO General @20-01-06 19:36:36]
[INFO General @20-01-06 19:36:36] ROMTbl[0] @ 00ff000
[INFO General @20-01-06 19:36:36] ROMTbl[0][0]: E000E000, 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 FPB
[INFO General @20-01-06 19:36:36] BTLE设备已选中。
[INFO OTP Image @20-01-06 19:43:29]标题记录已经从十六进制文件xxxxxxxx.hex中删除。
[INFO OTP Image @20-01-06 19:43:29]从xxxxxxxx.hex读取62204字节。
[ERROR OTP Image @20-01-06 19:43:31]写入地址50000012的值A6失败。
[ERROR OTP Image @20-01-06 19:43:31]下载固件文件到单板失败。
我的冲浪板以前运行得很好。我移动了之前的芯片和焊接一个新的,并试图烧毁OTP。
我尝试了一些新的芯片,但仍然有错误信息。无论我怎么努力,我都失败了............
你能告诉我为什么会出现“Failed writing value A6 at address 50000012.”,我该怎么办,非常感谢!
嗨SkyWei5830,
记住,OTP代表One Time Programmable,因此你不能擦除和重写OTP多次,但你只能翻转仍然设置为0的位并将它们变成1。如果你想燃烧OTP,必须燃烧2个区域:
OTP映像区域,在这里放置用户代码并在引导时镜像到系统ram。
OTP Header区域,在这里放置了定义设备操作的标志和特定值(关于OTP Header值的更多信息可以在Smart Snippets用户指南中找到)。
你烧了OPT头了吗?此外。您是否使用定制板或任何我们的dk ?另外,如果你尝试通过JTAG连接Flash程序员,你能连接吗?你能从Keil下载FW吗?
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢回复,我能理解OTP的意思。也许我没说清楚,我用的是我的板子,不是你的dk。这个板已经被我的前同事烧了,运行正常。我这周接替了前同事的工作,我只是想确认一下他给我的hex文件是否正确,通过烧制OTP使board重新正常运行。
我把原来的DA14585移到板上,焊接一个新的DA14585,然后尝试连接JTAG烧OTP。
烧OTP头时,我是否需要在“连接”之前“从文件中导入头”?我应该先烧OTP图像还是先烧OTP头部?我尝试了先烧OTA图像和先烧OTA头,但日志上出现了相同的错误消息。
我移除了DA14585和焊接一个新的DA14585.......我试了一次又一次,但是相同的错误信息出现在日志上。
我的主板没有外部闪光灯,所以我无法尝试连接到flash程序员。昨天我在keil用源代码项目在线调试,板子可以正常运行。
谢谢,
嗨PM_Dialog,
我改变了我的板的电源,然后燃烧的OTP图像。当我点击“Cnnect”按钮时,日志上没有错误,但是当我点击“burn”按钮时,出现如下错误,
[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
[INFO OTP Image @20-01-07 11:41:54] ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B FPB
[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_programman .bin已选择下载。
[INFO OTP Image @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失败。
[ERROR OTP Image @20-01-07 11:42:03]读取内存失败。
那么,通过JTAG燃烧OTP是否有很高的功率要求?烧糊的时候还有什么需要注意的吗?
我觉得我离成功不远了,谢谢大家。
嗨SkyWei5830,
如果我理解正确的话,在你使用的定制板中,OTP是不是已经被你的前同事烧掉了?你能不能在车上试一下,确保OTP没有烧坏?此外,我建议在SmartSnippets工具箱中通过UART连接,而不是JTAG。只要名为JTAG enable的OTP报头字段保持为Enabled,您就可以通过JTAG直接刻蚀SystemRAM。如果应用程序标志被烧毁,并且JTAG启用标志被禁用,那么设备将变得不可访问。
谢谢,PM_Dialog
谢谢您的回复!
我试图连接UART JTAG,而是在燃烧的过程中OTP,当消息”请按板上的硬件复位按钮开始下载过程。”出现时,我按下复位按钮,和我确认复位销已经很高,但DA14585重置不触发,日志上显示如下错误信息,燃烧处理中止。
hex文件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_programm .bin已被选择下载。
[INFO OTP Image @20-01-08 09:24:51]连接COM10端口成功。
[INFO OTP Image @20-01-08 09:24:51]开始下载程序…
请按下主板上的硬件复位按钮,开始下载过程。
[错误OTP图像@20-01-08 09:25:07]超时:复位信号未检测超过16000毫秒。
[INFO Booter @20-01-08 09:25:07]成功断开COM10端口连接。
[ERROR OTP Image @20-01-08 09:25:07]下载固件文件到单板失败。
谢谢。
嗨SkyWei5830,
请问OTP和OTP Header是否已经从你的前同事那里烧掉了?你试过直接通过Keil下载FW吗?或者你试过烧SPI闪光灯吗?如果你尝试用另一个DK,你能复制这个问题吗?
谢谢,PM_Dialog
嗨PM_Dialog,
是的,OTP和OTP头已经被我的前同事烧了,我们的定制板以前工作得很好。我只是把之前的DA14585移到板上,焊接一个全新的,然后尝试烧OTP。无论我怎么努力,我都失败了。到目前为止我已经尝试了6个da14585, 3种Jlink工具,但是在最后的.........我都没有成功这是我第一次接触基于DA14585的设计,我的前同事没有给我留下任何灼烧说明,所以我只能通过您的帮助来探索^^^^^^^^
我刚刚焊接了一个全新的DA14585,连接了电源和Jlink工具,打开了SmartSnippets Toolbox,通过JTAG接口重新开始烧制OTP。我点击Conncet,没有报错,然后点击burn,出现如下错误信息,我又失败了.....
[INFO General @20-01-10 17:56:21]找到ID为0x0BB11477的SW-DP
[INFO General @20-01-10 17:56:21]未预选AP。假设AP[0]为AHB-AP
[INFO General @20-01-10 17:56:21] AP-IDR: 0x04770021,类型:AHB-AP
[INFO General @20-01-10 17:56:21] AHB-AP ROM: 0xE00FF000 (Base addr.)第一个ROM表)
[INFO General @20-01-10 17:56:21] Found Cortex-M0 r0p0, Little endian. [INFO General @20-01-10 17:56:21]
[INFO General @20-01-10 17:56:21] FPUnit: 4个代码(BP)槽,0个文字槽
[INFO General @20-01-10 17:56:21]
[INFO General @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
[INFO General @20-01-10 17:56:21] ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 000BB00B FPB
[INFO General @20-01-10 17:56:21] BTLE设备已选中。
[INFO OTP Image @20-01-10 17:56:34]头记录已经从hex文件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]找到ID 0x0BB11477的SW-DP
[INFO OTP Image @20-01-10 17:56:38]使用预配置的AP[0]作为AHB-AP与核心通信
[INFO OTP Image @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.)第一个ROM表)
[INFO OTP Image @20-01-10 17:56:38] Found Cortex-M0 r0p0, Little endian. [INFO OTP Image @20-01-10 17:56:38]
[INFO OTP Image @20-01-10 17:56:38] FPUnit: 4个代码(BP)槽和0个文字槽
[INFO OTP Image @20-01-10 17:56:38]
[INFO OTP Image @20-01-10 17:56:38
[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
[INFO OTP Image @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_programman .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
阅读完毕。读取62208字节。
[INFO OTP Image @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]内存燃烧成功。2中的第1块
地址7FC7C02写入长度失败。
[ERROR OTP Image @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 thought Keil?
谢谢,PM_Dialog
嗨PM_Dialog,
您可以阅读附件中的OTP头。我买的设备已经试用过了。我会买新的,再试一次。我的板上没有外接闪光灯,我可以直接下载固件吗?我认为keil只能用于在线调试,让代码在ram中运行。我尝试了在线调试,代码在ram中正常运行。
代码调试完成,产品设计完成后,进行OTP烧录。这个工作通常都是由不太专业的人来做,所以我想,能不能有一个更简单易懂的操作指南?
谢谢,SkyWei5830
嗨SkyWei5830,
我建议你在OTP / OTP头没有烧毁的板上尝试一下。一般来说,客户在最终产品中使用OTP,而不是用于调试/教学范围。是的,你可以通过Keil直接下载FW到System-RAM。按两次“启动/停止调试会话”按钮,FW将被下载到System-RAM中。
如果您正在开始一个新的设计,我们强烈建议您转向DA14531和SDK6.0.12,因为它们得到了更多的改进。我们有很多代码示例和改进的文档,也有软件路线图支持。请检查DA14531支持门户:
//www.xmece.com/亚博电竞菠菜products/connectivity/bluetooth-low-energy/products/da14531
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你!谢谢你的建议!
嗨SkyWei5830,
谢谢你接受我的回答。如果您有任何后续问题,请创建一个新的论坛帖子。
谢谢,PM_Dialog