OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 59|回复: 2
打印 上一主题 下一主题

求助,原子dap仿真器下载会断,不能升级

[复制链接]

6

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
353
金钱
353
注册时间
2014-10-26
在线时间
34 小时
跳转到指定楼层
楼主
发表于 昨天 09:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1金钱
找到一个年份不明的正点原子DAP仿真器,keil下载大约半秒就会断线,用openocd提示DEPRECATED! use 'cmsis-dap backend', not 'cmsis_dap_backend',用ATK-DAP V3.0.exe升级无进度,还有救吗?

HID.PNG (23.36 KB, 下载次数: 3)

HID.PNG

升级.PNG (14.23 KB, 下载次数: 0)

升级.PNG

openocd无法识别.PNG (37.65 KB, 下载次数: 0)

openocd无法识别.PNG

1039511083.jpg (866.12 KB, 下载次数: 0)

1039511083.jpg
回复

使用道具 举报

0

主题

151

帖子

0

精华

高级会员

Rank: 4

积分
724
金钱
724
注册时间
2026-1-29
在线时间
55 小时
2#
发表于 昨天 13:23 | 只看该作者
这台正点原子DAP大概率不是坏了,而是一台早期版本或固件停留在旧版的设备。根据你描述的三个症状——Keil秒断、OpenOCD警告后端弃用、官方升级工具无进度——综合来看,设备并没有彻底报废,通过物理强制进入DAP模式 + 更新新版OpenOCD及固件这一套组合操作,救回来的概率很高。

一、先把三个看似不相干的症状串起来看

OpenOCD的警告不是故障,是求生信号

命令行提示DEPRECATED! use 'cmsis-dap backend',说明这台设备在OpenOCD内部仍然被识别为一个标准的CMSIS-DAP仿真器,USB通信是通的。
为什么旧版OpenOCD用cmsis_dap_backend、新版非要改成cmsis-dap?因为在OpenOCD 0.12之后的版本中,官方将ARM冰川(包括DAP)的底层接口和自适应固件逻辑做了拆分,旧适配器的握手协议在新架构下不兼容,所以工具会主动告诉你:别再用老接口,赶紧去刷能适配新接口的固件。
换句话说,主机其实能读到它,只是在提醒你:这东西版本太老了。
ATK-DAP V3.0.exe无进度,问题在模式不对或驱动丢失

官方固件升级工具要往板子上烧录,前提是仿真器必须进入一种可被擦写的特殊模式(类似机的Recovery模式)。
如果设备还停留在正常运行的DAP模式,或者因为之前刷坏导致USB枚举失败,电脑端自然什么也收不到,软件卡在0%不动就很好理解了。
另外还要警惕一点:如果电脑连USB设备都识别不到,或者识别成一个未知的LibUSB设备,说明驱动被破坏或被系统拦截,这同样会导致升级工具找不到目标。
Keil下载半秒断线,根子在旧固件握手超时

这完全符合旧版CMSIS-DAP在新版Keil(Keil MDK 5.38之后内置的DAP驱动已经做过时序优化)下的典型症状。新版Keil和OpenOCD对DAP协议的握手超时要求更严,旧固件里那些不够规范的协议实现,会在连接几十毫秒后因为ACK没返回或者时序错位,被主机主动切断。
所以不要盯着“接触不良”去排查,那大概率不是你的问题,而是固件版本在拖后腿。
二、先做最基础的物理和环境排查,别急着拆机

搭建最小化测试系统

从目标板子上把仿真器彻底拆下来,只保留:仿真器本体、一根USB线、以及一个最小系统板(比如一颗STM32F103C8T6核心板,不接任何外设)。
目的是排除目标板供电不足或者SWD接口被外部电路拉死导致的连接重置。在复杂电路上,DAP仿真器会因为目标板电压塌陷而触发过流保护,表现出来也是秒断。
有示波器的话,可以测一下目标板Vref引脚在连接瞬间的电压,如果有明显下跌,那就是供电问题。
在主机端强制把设备拉进DAP模式

拔掉USB,找到仿真器板上标注的ERASE和SWDIO两个测试点,用镊子或细导线短接。
保持短接状态插入USB。此时板载指示灯通常会红绿交替闪烁,或者常亮红灯,这是进入DAP模式的标准表现。
在Windows设备管理器里,应该能看到一个名为DAP或带有“Atmel/Standard Microcontroller”的USB设备,而不是LibUSB设备。如果看到的是未知设备或LibUSB,就需要手动处理驱动。
这一步成功后再运行ATK-DAP V3.0升级工具,看看进度条是否开始走动。短接时务必在断电情况下操作,带电热插拔可能造成内部M0内核锁死。
三、软件驱动和固件强制刷写的具体路径

干掉签名干扰,让电脑认识这个DAP

Windows下打开设备管理器,找到带黄色感叹号的未知设备,右键更新驱动,路径指向本地的LibUSB驱动文件(需自行准备驱动包)。
如果系统拦截驱动安装,需要在Windows“高级启动”里进入禁用驱动程序强制签名的模式。对于早期样机,这是常见门槛。
如果是Linux环境,确认已将用户加入plugdev组,并且OpenOCD能访问USB设备权限(通常需要合适的udev规则)。
进入系统后立刻抛弃旧升级工具

ATK-DAP V3.0.exe太老了,不再适合修复现在这个状态的设备。
去GitHub下载OpenOCD源码或者直接用最新版的OpenOCD安装包,里面已经内置了cmsis-dap.dap这类固件烧录脚本和编译好的可执行文件。
用新版OpenOCD的openocd -f cmsis-dap.dap这样的配置文件来重新初始化设备。如果能够成功识别并出现握手成功的日志,说明底层已经通了。
万一设备彻底失联,只能物理刷写

需要拆开外壳,找到内部那颗用来跑DAP协议的Cortex-M0(一般是NXP LPC或国产的类似芯片),直接用另一套SWD硬件(比如ST-Link V2或者另一块已经修好的DAP)连它的SWDIO和SWCLK。
短接M0的BOOT0引脚到VDD让它上电进入引导模式,然后用OpenOCD或者ST-Link Utility擦除整块Flash,重新烧录从正点原子GitHub开源仓库下载的固件hex文件。
这条路是最后的手段,操作不当会因为电压不匹配或时序问题把芯片锁死,非必要不走到这一步。
四、如果时间紧迫,可以先找一个便宜好用的替代品

正点原子这款早期的DAP固件确实不太稳定,如果上面的操作都走不通,或者你在项目上赶进度,直接换一个J-Link OB(盗版大概20多块)或ST-Link V2,十几二十块钱,SWD接口协议是通的,绝大多数ARM Cortex-M芯片都能用。
在Keil里把Debug设置中的接口从DAP切换成J-LINK/ST-LINK,然后点一下“Detect”看能否识别到目标芯片,通常比纠结老固件要省太多时间。
另外,如果是STM32芯片,用ST-Link连接后可以通过ST-Link Utility读取芯片ID和基本信息,也能顺便判断是目标板的问题还是仿真器的问题。
这台仿真器不是没有救,只是它卡在了固件和主机工具都迭代了好几个大版本之后的夹缝里。先强制进DAP模式把固件拉回来,大概率能恢复如初。
回复

使用道具 举报

6

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
353
金钱
353
注册时间
2014-10-26
在线时间
34 小时
3#
 楼主| 发表于 昨天 15:57 | 只看该作者
664929323 发表于 2026-9-24 13:23
这台正点原子DAP大概率不是坏了,而是一台早期版本或固件停留在旧版的设备。根据你描述的三个症状——Keil ...

感觉答复,正点原子GitHub开源仓库是不是https://github.com/alientek-openedv,用
dap关键字搜索,每找到固件hex文件。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-9-25 03:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表