查看: 736|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
沙发
发表于 2015-9-18 10:54:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本贴参考了网友XiaomaGee的帖子,原帖地址:http://www.ourdev.cn/bbs/bbs_con ... o=1&bbs_id=3020
并再次感谢XiaomaGee在制作过程中给予我的指导与帮助

由于本人能力有限,从原理图到最后的调试,多多少少都会有不足之处,望各位高手能够体谅并指正~
如果整篇文章能够带给你哪怕一点点的帮助,你高兴,我更高兴……

进入正题
传统20脚JTAG底座个头大,占用PCB面积多,连接线复杂。基于STM32F103C8T的SW模式Jlink,只需要三根线即可与目标板实现通讯,可实现程序下载,单步调试等同能,除了不能检测目标板电压、不能给目标板供电、速度有所降低之外,与完整版JLink的功能是一样的。当然,成本也可以降低很多~(使用邮购部的国产镀金USB插头,TW进口晶振,阿莫打样,整个成本也就20元左右)
首先从PCB开始,该方案的最初设计是借鉴了IAR公司的开发板原理图,后又经网友XiaomaGee优化后,得到了目前的版本,如下图所示

(原文件名:jlink_sch.jpg)

原理图是用OrCad Capture CIS画的,感觉用起来比AD要舒服一些,外表没有AD花哨,但是用户体验做得很好。
电源部分用的是RT9193,线性稳压,价格便宜,体积小,最大输出电流300mA,对于下载器来说已经足够了。左侧中间的接线端子用于给STM32烧写固件,其他部分没什么难度,照着画就行。

(原文件名:jlink_pcb.jpg)

接下来就是最让我纠结的布线,由于板子并不复杂,于是选择了AD进行布线,封装用的是AD自带或者LP Wizard生成的。经过几天以来反复的调整,总算是出来一个初级版本了。接着出GerBer,发到阿莫这边制作,等待……
PCB拿到手之后,第一感觉还是很不错的,唯一的缺憾就是USB那边多出来了零点几个毫米(设计缺陷),会影响USB插头的安装,砂纸简单处理之,搞定。

(原文件名:xlink.jpg)

接下来,到了展现本人焊工的时候了,经过反复折腾,看上去还是挺不错的,电容电阻全部选用0603封装,焊起来比较考验功夫,不过有松香就另当别论了。

(原文件名:JLinkpcb1.jpg)


(原文件名:Jlinkpcb3.jpg)


(原文件名:Jlinkpcb04.jpg)

最后晒一下工作台的照片。

(原文件名:Jlink_work.jpg)

硬件搞定后就是固件烧写了,烧写工作需要一个通用版的JLink,之后就可以鸡生蛋蛋生鸡了,为了节省板子空间,固件烧写接口仍采用SW模式,20针JTAG工作在SW模式下的引脚定义如下:

(原文件名:jlink00.jpg)

只需要SWD、SWC、GND三根线,即7号、9号及GND中的任意一根针,由于固件烧写一次后就不再使用(掉固件的可能性非常低),因此不需要再焊排针上去了,把杜邦排针插上去,斜方向给点力就能良好接触,如下图

(原文件名:jlink01.jpg)

连接顺序:插针,原始JLink上电,烧写器上电(USB)。断开时步骤相反,切不可颠倒!尤其不能在上电时断开上图中的连接,否则会烧坏器件!
打开J-Flash ARM

(原文件名:JLink02.jpg)

选择File-OpenProject,由于默认工程中没有C8T的选项,所以选择相近的STM32F103RB.jflash 并在Options-ProjectSettings里面,将目标元件改为C8T

(原文件名:Jlink.jpg)

选择File-OpenDataFile选择烧写器的固件(网络获取)
点击Target-Connect,会出现以下信息

(原文件名:jlink1.jpg)

表示检测并连接到目标芯片,但由于电压过低,断开连接。
对于全功能JLink,1号针的功能有两个:检测目标板电压;为内部的电平转换芯片提供输出端参考电压。也就是说,如果目标板电压为3.3V,那么这里也必须给1号针提供3.3V电压,才能保证正常输出。由上图可知,20针JTAG的2号针可以提供VCC供电,而当我打开J-Link Commander输入power on时,却发现2号针输出的是5V电压,如法通过直接短路1、2号针来解决问题。正当我手足无措的时候,发现JLink的主芯片烧写接口上,有一根线的宽度很可疑

(原文件名:JLink031.jpg)

左起第一根线的宽度,用作信号线的可能性很小,极有可能是起到供电的作用,于是拿起万用表,果然!

(原文件名:JLink23.jpg)

于是牺牲掉一根杜邦线,问题解决

(原文件名:JLink21.jpg)

最终接口连线如图

(原文件名:JLink24.jpg)

整体效果

(原文件名:JLink25.jpg)

再次Connect,错误消失

(原文件名:jlink2.jpg)

点击Target-Auto 自动下载固件,下载成功后出现如下提示

(原文件名:jlink3.jpg)

断开连接,重新插上烧写器,电脑提示找到JLink,至此,制作成功~

进入MDK的JLink设置页,第一次进入会提示固件升级

(原文件名:jlink4.jpg)

之后选择SW模式

(原文件名:jlink32.jpg)

完成后就可以正常使用了,单步调试什么的都可以完美支持,不过速度会稍微慢一点(2M),毕竟只有3跟线

(原文件名:Jlink_fin.jpg)

体积测试:
与优盘共存,空间会有点吃紧,不过与USB延长线共存还是很轻松滴

(原文件名:Jlink_test1.jpg)


(原文件名:Jlink_test02.jpg)

以下是制作所需资料:
1、原理图(pdf及OrCAD版本)
点击此处下载 ourdev_713735AQW1O5.rar(文件大小:29K) (原文件名:jlink_sch.rar)

2、PCB(pdf格式,边框已修正)
点击此处下载 ourdev_713746Q6KS3O.pdf(文件大小:19K) (原文件名:JLink_pcb.pdf)

3、HEX固件
点击此处下载 ourdev_713743PK2H7A.rar(文件大小:27K) (原文件名:jlink_hex.rar)

4、XiaomaGee的原版pdf资料(转自原帖),里面有MDK及IAR中的设置方法
点击此处下载 ourdev_713739J78TOT.pdf(文件大小:9.28M) (原文件名:使用Jlink_arm-ob_stm32简化Cortex处理器的开发.pdf)

5、IAR原版原理图
点击此处下载 ourdev_713747GLWL08.pdf(文件大小:1.07M) (原文件名:IAR_STM32F103ZE_SK.pdf)

6、元件清单
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





PS:该下载器所用到的所有器件均可以在邮购部采购到,质量信得过。从做好到现在用了很多次,性能挺稳定的

原本想直接把GerBer发上来,不过考虑到可能会有人拿去创造利润,还是不上传论坛了

需要PCB的网友可以把你的信息用邮件发给我,我把GerBer发给小张后注明是给你的板子即可转载

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

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