自制 J-Link OB 调试器
本文介绍了 DIY 的 J-Link OB 调试器,包括原理图、PCB设计、固件烧录、功能测试等流程。
硬件设计
主控为 STM32F072CBT6 芯片,外围器件少,贴片器件为 0805 和 0603 封装,手动焊接友好。
PCB
原理图
详见:J-Link OB 改进版(含外壳) - 立创开源硬件平台 .
固件编辑
使用 WinHEX 软件定位固件时间,编辑和修改时间至当前日期。
或使用下面 Python 脚本实现,新建fix_date.py文件,添加如下代码
importsys SRC="J-Link OB-STM32F072-128KB-CortexM 20231030.bin"# 原始 bin 文件DST="J-Link_OB-128KB_20991030.bin"# 输出 bin 文件OLD=b"Oct 30 2023 12:11:14"NEW=b"Oct 30 2099 12:11:14"assertlen(OLD)==len(NEW),"新旧字符串长度一致"withopen(SRC,"rb")asf:data=bytearray(f.read())pos=data.find(OLD)ifpos==-1:print("未找到目标日期字符串,请检查固件版本/偏移。")sys.exit(1)print(f"找到日期字符串,偏移 = 0x{pos:X}")data[pos:pos+len(OLD)]=NEWwithopen(DST,"wb")asf:f.write(data)print(f"已写入{DST},日期为 2099")保存代码。
固件生成
终端执行指令python fix_date.py,生成新日期版本的固件;
固件上传
打开 STM32CubeProgrammer 软件,Boot0 (触点 TP1) 接 3.3V 拉高,同时连接主机 USB,此时设备管理器识别为 STM32 ;
右上角选择连接模式为 USB ,刷新列表并识别到设备,点击左下角的橡皮擦按钮清除设备 Flash 数据;
加载固件,点击下载按钮,待烧录完成,重新拔插 J-Link OB;
校验码
- 打开
jlink.exe并执行exec setsn=76xxxxxxx指令以写入 SN 码;
固件验证
- 打开
J-Link Configurator软件,拔插设备,识别到固件日期;
- 打开设备管理器,识别到 J-Link driver 和 JLink CDC ;
功能测试
使用杜邦线连接 J-Link OB 和开发板的 SWD 接口;
这里使用 RA4M2 开发板和 e2 studio 软件测试 J-Link OB 工具。
调试界面如下
总结
本文介绍了 DIY 的 J-Link OB 调试器,包括原理图、PCB设计、固件烧录、功能测试等流程,为相关产品的快速开发和应用设计提供了参考。