手把手教你打造3线制Jlink ARM-OB STM32

由于本人能力有限,从原理图到最后的调试,多多少少都会有不足之处,望各位高手能够体谅并指正。如果整篇文章能够带给你哪怕一点点的帮助,那就不枉费我花了那么多时间来弄这个。首先我们先对jlink arm-ob stm32 进行一些了解:
jlink arm-ob stm32 是 segger 公司为开发板定制的板载jlink调试方案。除了不能测试目标板电压外,此jlink 与正式版功能几乎一致(速度限制到 2mhz)。
受一篇文章启发,参考资料,笔者制作了此文所提的 jlink 简化版,经过将近半年的测试,其不但工作稳定,而且携带方便,故此与大家分享。
其特点为:
? + 支持iar ewarm 和 keil mdk;
? + 仅支持 sw 两线调试;
? + 工作稳定,无丢失固件现象;
? + 仅u盘大小,携带方便;
? + 直接与电脑usb 接口连接,无需usb 线缆;
? + 接口简化,仅用三根线,完成高速调试、下载;
? + 仅需要三脚 xh2.54 连接器,大大节约pcb面积;
? + 与jtag 相比,仅需两根线(tms / tck),可节约若干条 io 口。
其中用到的材料有:
ic:
stm32f103c8t * 1
rt9193 * 1
电阻(0603封装):
100r * 5
10k * 1
1k * 1
1k5 * 1
22r * 2
电容(0805封装):
105(1uf) * 2
104(0.1uf) * 6
22pf * 4
接插件:
杜邦排针(烧写用) * 3
3线xh2.54 * 1
usb_a插头 * 1
led(0805 0603均可) * 1
8mhz晶振(贴片) * 1
成品图如下图所示:
下面是详细制作过程,首先就是pcb,该方案的最初设计是借鉴了iar公司的开发板原理图,后又经优化后,得到了目前的版本,如下图所示
原理图是用orcad capture cis画的,感觉用起来比ad要舒服一些,外表没有ad花哨,但是用户体验做得很好。
电源部分用的是rt9193,线性稳压,价格便宜,体积小,最大输出电流300ma,对于下载器来说已经足够了。左侧中间的接线端子用于给stm32烧写固件,其他部分没什么难度,照着画就行。
接下来就是最让我纠结的布线,由于板子并不复杂,于是选择了ad进行布线,封装用的是ad自带或者lp wizard生成的。经过几天以来反复的调整,总算是出来一个初级版本了。接着出gerber,制作,等待……
pcb拿到手之后,第一感觉还是很不错的,唯一的缺憾就是usb那边多出来了零点几个毫米(设计缺陷),会影响usb插头的安装,砂纸简单处理之,搞定。
接下来,到了展现本人焊工的时候了,经过反复折腾,看上去还是挺不错的,电容电阻全部选用0603封装,焊起来比较考验功夫,不过有松香就另当别论了。
最后晒一下工作台的照片。
硬件搞定后就是固件烧写了,烧写工作需要一个通用版的jlink,之后就可以鸡生蛋蛋生鸡了,为了节省板子空间,固件烧写接口仍采用sw模式,20针jtag工作在sw模式下的引脚定义如下:
只需要swd、swc、gnd三根线,即7号、9号及gnd中的任意一根针,由于固件烧写一次后就不再使用(掉固件的可能性非常低),因此不需要再焊排针上去了,把杜邦排针插上去,斜方向给点力就能良好接触,如下图
连接顺序:插针,原始jlink上电,烧写器上电(usb)。断开时步骤相反,切不可颠倒!尤其不能在上电时断开上图中的连接,否则会烧坏器件!
打开j-flash arm
选择file-openproject,由于默认工程中没有c8t的选项,所以选择相近的stm32f103rb.jflash 并在options-projectsettings里面,将目标元件改为c8t
选择file-opendatafile选择烧写器的固件(网络获取)
点击target-connect,会出现以下信息
表示检测并连接到目标芯片,但由于电压过低,断开连接。
对于全功能jlink,1号针的功能有两个:检测目标板电压;为内部的电平转换芯片提供输出端参考电压。也就是说,如果目标板电压为3.3v,那么这里也必须给1号针提供3.3v电压,才能保证正常输出。由上图可知,20针jtag的2号针可以提供vcc供电,而当我打开j-link commander输入power on时,却发现2号针输出的是5v电压,如法通过直接短路1、2号针来解决问题。正当我手足无措的时候,发现jlink的主芯片烧写接口上,有一根线的宽度很可疑
左起第一根线的宽度,用作信号线的可能性很小,极有可能是起到供电的作用,于是拿起万用表,果然!
于是牺牲掉一根杜邦线,问题解决
最终接口连线如图
 整体效果
再次connect,错误消失
点击target-auto 自动下载固件,下载成功后出现如下提示
断开连接,重新插上烧写器,电脑提示找到jlink,至此,制作成功~
进入mdk的jlink设置页,第一次进入会提示固件升级
之后选择sw模式
完成后就可以正常使用了,单步调试什么的都可以完美支持,不过速度会稍微慢一点(2m),毕竟只有3跟线
体积测试:
与优盘共存,空间会有点吃紧,不过与usb延长线共存还是很轻松滴

TP4056引脚定义和功能介绍
OPPOR9s和vivoX9双雄战华为,小米无人问津
影响马达性能的线圈 (下)
显示驱动芯片商视芯科技创业板IPO获受理!销量突破6亿颗,募资近8亿自建IC测试中心等
盒子支付:移动支付的黑马,红海之外的远航
手把手教你打造3线制Jlink ARM-OB STM32
补充: FPGA产生基于LFSR的伪随机数
米家可量耳定制众筹HelloEar Arc耳机发布:299元
EDA365电子论坛指出未来AI芯片发展趋势
从生产层面强调了深度学习项目开发中需要更加重视数据集的构建
单线总线为水位传感器供电系统检测水位
浅谈汽车连接器端子夹紧力控制的优缺点
ARM44B0x实现信号发射机控制器
可连接智能手机和电脑设备的智能口罩
RISC-V彰显巨大潜能 百度战略投资赛昉科技
5mm发光二极管(LED)灯珠的工作电压多少
特斯拉已与存储器大厂旺宏联系洽谈收购1座6寸晶圆厂
2018年AI Now报告发布 以下是关键要点
哪款电动牙刷好?国内电动牙刷品牌排行
台达人机界面与SC500PLC在工业控制中的应用