
高速无线DAP调试器Lite
简介
基于ESP32-S3的高性能、低成本无线DAP调试器,BOM成本仅30元,无线速度接近STLink V2
简介:基于ESP32-S3的高性能、低成本无线DAP调试器,BOM成本仅30元,无线速度接近STLink V2开源协议
:GPL 3.0
描述
此项目未经授权禁止商用
已授权销售:淘宝-ABrobot智能,淘宝-塔克创新
已开源两款无线调试器,可以根据成本和使用环境自行选择:
CH32版本:成本约100元,测试条件下,98KB/s有线下载,48KB/s无线下载,抗WiFi干扰能力强,低版本keil可用
https://oshwhub.com/ylj2000/dap_hs_wl_v0-4
ESP32版本:成本约30-40元,测试条件下,94KB/s有线下载,43KB/s无线下载,抗WiFi干扰能力一般,WiFi环境恶劣会导致下载速度降低甚至下载失败,但正常自用不太有影响,只是在如比赛场馆等的环境下,影响较大,keil版本需要高于5.29。
https://oshwhub.com/ylj2000/dap_hs_esp_open
更新日志
#2023.09.13
更新模块版本和对应外壳
#2023.09.01
初次发布
一、简介
使用环境:MDK>=5.29,IAR>=8.32。
主芯片仅需两片ESP32-S3FN8或ESP32-S3FH4R2,BOM成本30元左右,也可以使用成品模块。无线性能大约是常见的有线FS+HID的DAP的两倍,甚至接近有线STLink V2。距离可以达到30m以上(更远没有测试,但还没有明显速度衰减)。
一套无线调试器分为发送端(Host)和接收端(Slave),两端软硬件完全一致,可以通过按键进行配对、模式切换、调节无线信道等操作。与常规DAP一样,支持对ARM单片机(如STM32,GD32等)进行调试,支持SWD和JTAG,支持硬件复位和软件复位,支持虚拟串口。配对之后可以即插即用,无需安装驱动(WIN10及以上);并非使用WiFi协议,而是类似2.4G的无线,所以无需等待无线连接。除了无线模式外,也可以调到有线模式(USB),以方便在无线环境复杂的地方使用,性能会比无线模式强。不同指示灯的颜色代表不同的模式,红色代表有线模式(USB),蓝色代表无线发送端(Host),绿色代表无线接收端(Slave)。
二、开发背景
目前调试ARM单片机较为常用的调试器包括ST-link、J-Link、DAPLink等,虽然功能和速度各有差异,但几乎都是只能连接USB线使用,这在很多有一定危险性的调试工作中,如机器人、电源等,容易损坏电脑甚至伤及自身。无线调试器能够很好的避免这些情况发生,并且能够极大程度上,优化调试体验,不用再端着电脑、拖着USB线,跟着目标到处走。
目前市面上的无线调试器大多和DAPLink一样,基于CMSIS-DAP协议。但性能和价格相差巨大,很多以低廉的成本、极差的性能,卖着极高的价格,实际非常难以使用,让很多开发者踩坑,包括本人。本人尝试过很多无线调试器,唯一较为好用的,就是正点原子的那一款,但价格实在昂贵(300+),难以承受,所以起了自己DIY一款好用廉价的无线调试器。在之前的开源中,已经基于CH32V307+SX1281开发了一款,成本百元不到,但性能媲美正点原子。但成本仍然较高,因此打算开发一款更为廉价,但性能仍然能够满足一般使用的无线调试器。
之前版本的性能大致是:MDK+STM32F4,Program速度有线98KB/s,无线48KB/s。这个版本最初的目标速度是:有线接近之前版本,无线30KB/s左右。想要达成这个目标,HID模式的DAP是不可能的,因此必须使用基于WinUSB的Bulk模式。出于廉价考虑,选择一款自带USB和无线的单片机是必然的。一开始考虑范围包括ESP32-S2和ESP32-S3,但在后续的测试中,ESP32-S2由于TinyUSB占用了过多的CPU资源,导致有线速度也仅能跑到40+KB/s;而ESP32-S3因为是双核设计,在分配任务到两个核心后,有线速度能跑到90KB/s以上。因此虽然S3的价格较高一点,但仍然选择ESP32-S3。
经过硬件设计、软件调试优化,最终达到的效果甚至超出最初的设计目标,达到了非常接近上一版本百元配置的速度,而这一版本的成本大约只有30元。Program速度,有线95KB/s,无线最高45KB/s左右。当然,由于ESP使用的是WiFi信道,实际取决于无线环境可能有所下降,但一般情况下也在40KB/s左右。这个性能也非常接近正点原子无线调试器的性能。十分之一的价格,要啥自行车。
三、成品展示
三、制作过程
1、PCB制作:按照开源文件制作PCB,选择1.0板厚。
2、PCB焊接:使用到的器件立创基本都可以买到,也可以去某宝找更便宜的。附件BOM包含参考购买链接,建议自行根据情况选择。
3、固件下载:确认PCBA制作无误后,下载调试器固件。按住按键A,同时将调试器用USB线连接电脑。打开附件中的flash_download_tool,选择如下配置。进入界面后,选择固件,设置起始地址为0,选择对应的串口。建议先点ERASE擦除Flash,然后点START进行烧录。烧录完成后重新上电,默认为USB模式(指示灯红色)。
4、配对:第一个模块按住按键B上电,直到指示灯变为紫色再松手。第二个模块按住B上电,它会在指示灯变紫后,瞬间两个模块分别变为主机(蓝色)和从机(绿色)。这时,两端已经自动设置好通信的参数和模式,如果需要可以通过按键进行更改。完成后主机和从机需要重新上电。
5、按键功能
设置模式:长按按键A,直到指示灯变为黄色。短按按键B,根据指示灯颜色调节为需要的模式。如果需要将配置保存到Flash中,即下次上电保持当前配置,则长按按键A,直到指示灯变为黄色闪烁,再短按按键A退出;如果只是临时使用,不保存配置到Flash,则直接短按按键A退出。
设置无线信道:长按按键B,直到指示灯变为闪烁状态。此时闪烁颜色和次数,表示当前所属WiFi信道,绿色表示1-5,红色表示6-10,蓝色表示11-13信道。短按按键B,选择目标信道后,长按按键A,直到指示灯变为黄色闪烁,再短按按键A退出。主机和从机需要分别设置成一样的信道才可以通信,完成后主机和从机需要重新上电。
6、测试:测试下载、虚拟串口等功能是否正常。
四、日常使用
1、Keil设置
如果遇到无法连接或连接不稳定,可以尝试降低时钟频率,以及更换连接的杜邦线等。另外有一些型号的芯片可能本身在高时钟频率下就无法正常调试(我用过的HK32F030MF4P6就是)。
2、干扰
如果遇到当前无线信道的信号干扰严重,可以尝试更换一个通信信道。太强的干扰会导致速度降低、下载不稳定等。
五、性能测试
环境:Keil MDK 5.34
目标芯片:STM32F407VGT6
固件大小:约1024K
测试方法:手机秒表计时,三次取平均值
由于下载过程中Erase和Verify各下载器耗时差不多,所以计算能体现下载器下载速度的Program时长与速度。
表中CH32V307为上一版本,ESP32-S3为这一版本。可以看到,这版的调试器,性能很接近上一版本,有线模式速度略微超过Jlink V9,无线模式速度比STLink V2略低。某宝有些无线调试器我也测试过,很多都是十几KB/s的速度,不过倒也正常,因为普通版本的有线DAP,速度也不过20+KB/s。
感兴趣想了解更多可以加QQ群:770979540,交流讨论
设计图

BOM


评论