1

  之前写过一篇文章讲了怎么用常见的STM32F103C8T6核心板去做一个ST-Link,类似的方法也可以用于制作Jlink-ob之类的下载器/调试器/仿真器。但是,这些工具都有个问题——不开源,严格来说除购买正版以外的获取途径都是不正规的。这次为科协设计开发板配套的调试器,肯定不能用这些东西,所以我的选择是——开源的CMSIS-DAP。

  CMSIS-DAP是Arm官方推出的一款完全开放固件源码和相关硬件设计资料的调试/仿真/下载器,不过官方版本采用的芯片是lpc系列的,现在所使用的基于stm32的实现,基本都是基于国外一个叫做X893的大神移植到F103C8T6的版本,当然,DAP仿真器在国内已经有很多人做过而且开源了,所以我们直接模仿就可以。

  这次的受害者是立创,原工程在这里

  立创的这个实现,大致看了一下,改几处就好,一是接口当然要选择跟上时代的typeC;二是晶振太大了应该换成5032或者3225这样的小封装;另外其他阻容元件的封装和阻值略作调整。

首先,来画个板子

  然后,KiCAD绘制的原理图如下:

P1.jpg

  KiCAD绘制的PCB如下:

P2.jpg

  3D预览效果

P3.jpg

  外框是用SW画好以后导出dxf格式的图纸然后导入到KiCAD中的。

  到手的PCB如下:(没有加科协Logo的初版)

P4.jpg

焊接和烧录

  板子拿到手,焊好(弯排针没有了,用直的代替),准备烧录固件。

  这里使用的工具是FlyMCU、ch340模块,材料为固件一份、杜邦线若干、typeC数据线一条。

  首先把板子上开关调整为下图状态(靠右),使BOOT0为高电平。然后,交叉连接CH340模块和调试器的TX、RX,上电,FlyMCU下载固件。

P5.jpg

  完成下载后,开关调整回来,重新上电,驱动会自动安装,板子上的D2将会规律地闪烁,设备管理器中可以看到COM口上有一个设备,同时,串口助手中看到对应COM口的设备名称为“CMSIS-DAP_JX”。

P6.jpg

测试

  我们做的这个版本具有SWD下载接口和UART接口,可以用于下载和串口调试。

  • 先来测试一下串口

    用杜邦线把TX、RX连接起来,然后选择对应COM,打开串口,发送数据测试一下

P7.jpg

唔,貌似没问题。

  • 然后来测试一下SWD下载

    找个能用的工程打开(这里用Keil做例子),如图选择。

P8.jpg

然后,默认是需要硬件复位的,如果不方便连RST线,在“setting”里面把复位类型如下图设置。

P9.jpg

顺带,Port注意下是否为SW,同时,如果正确连接的话,SW Device下应有类似图示的信息。

设置完毕后点OK,然后测试一下下载。

P10.jpg

完美!(大概6KB+的速度,下载时D2长亮)

  好了,任务完成,获得工具×1。

  继续探索电子世界的旅行吧!

(PS. 所有资源可在这里下载 )

仍然存在的一些问题

  板子的固件使用了立创提供的,没有自己移植,然后,目前发现有点小问题——板子上的D1似乎一直处于不亮的状态,有时间需要检查一下代码,修改一下重新编译一份固件。
  问题已修复——2020.5.27


ngHackerX86
22 声望24 粉丝

000000