之前写过一篇文章讲了怎么用常见的STM32F103C8T6核心板去做一个ST-Link,类似的方法也可以用于制作Jlink-ob之类的下载器/调试器/仿真器。但是,这些工具都有个问题——不开源,严格来说除购买正版以外的获取途径都是不正规的。这次为科协设计开发板配套的调试器,肯定不能用这些东西,所以我的选择是——开源的CMSIS-DAP。
CMSIS-DAP是Arm官方推出的一款完全开放固件源码和相关硬件设计资料的调试/仿真/下载器,不过官方版本采用的芯片是lpc系列的,现在所使用的基于stm32的实现,基本都是基于国外一个叫做X893的大神移植到F103C8T6的版本,当然,DAP仿真器在国内已经有很多人做过而且开源了,所以我们直接模仿就可以。
这次的受害者是立创,原工程在这里
立创的这个实现,大致看了一下,改几处就好,一是接口当然要选择跟上时代的typeC;二是晶振太大了应该换成5032或者3225这样的小封装;另外其他阻容元件的封装和阻值略作调整。
首先,来画个板子
然后,KiCAD绘制的原理图如下:
KiCAD绘制的PCB如下:
3D预览效果
外框是用SW画好以后导出dxf格式的图纸然后导入到KiCAD中的。
到手的PCB如下:(没有加科协Logo的初版)
焊接和烧录
板子拿到手,焊好(弯排针没有了,用直的代替),准备烧录固件。
这里使用的工具是FlyMCU、ch340模块,材料为固件一份、杜邦线若干、typeC数据线一条。
首先把板子上开关调整为下图状态(靠右),使BOOT0为高电平。然后,交叉连接CH340模块和调试器的TX、RX,上电,FlyMCU下载固件。
完成下载后,开关调整回来,重新上电,驱动会自动安装,板子上的D2将会规律地闪烁,设备管理器中可以看到COM口上有一个设备,同时,串口助手中看到对应COM口的设备名称为“CMSIS-DAP_JX”。
测试
我们做的这个版本具有SWD下载接口和UART接口,可以用于下载和串口调试。
- 先来测试一下串口
用杜邦线把TX、RX连接起来,然后选择对应COM,打开串口,发送数据测试一下
唔,貌似没问题。
- 然后来测试一下SWD下载
找个能用的工程打开(这里用Keil做例子),如图选择。
然后,默认是需要硬件复位的,如果不方便连RST线,在“setting”里面把复位类型如下图设置。
顺带,Port注意下是否为SW,同时,如果正确连接的话,SW Device下应有类似图示的信息。
设置完毕后点OK,然后测试一下下载。
完美!(大概6KB+的速度,下载时D2长亮)
好了,任务完成,获得工具×1。
继续探索电子世界的旅行吧!
(PS. 所有资源可在这里下载 )
仍然存在的一些问题
板子的固件使用了立创提供的,没有自己移植,然后,目前发现有点小问题——板子上的D1似乎一直处于不亮的状态,有时间需要检查一下代码,修改一下重新编译一份固件。
问题已修复——2020.5.27
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。