记得当年第一次入手STM32时,是众筹回来的,带一键下载电路(ISP烧录)的学习板:keil编译后生成HEX文件,然后使用USB数据线,通过另一个软件mcuisp烧录到芯片中。软件中还要设置两个高低电平,当时啥也不会,也没朋友玩这个,只能跟着教程一点点试错一点点摸索。用这种傻乎乎的操作差不多大半年后,无意间在野火的教程上知道了一个事物:下载器!! 在keil里点击就能直接下载,这不神了么?!惊喜得像发现自己有了特异功能!
1:x宝买的第一个下载器
也记不清用过多少个下载器/仿真器了,但很记得买的第一个下载器,因为被折磨了很久,上图:
- 左上角写的是: 驱动,不用另找,在keil/ARM/stlink
- 右边标注的是swd接线的引脚。
当时买回来后,按书上的教程一步步接上线,准备开心地烧录下载了。
谁知道反复捣弄大半天也没成功过,看了N多教程才发现:好像要安装驱动!多菜的当年~~。
网上找了各种驱动,各种没反应。那时,没啥经验,根本分不清问题在哪:驱动?引脚?设备?软件设置?无从下手,不断地上网找同样的案例,枯燥地一个人对着设备一遍又一遍操作碰运气~~
2:做的第一个下载器
2018年,技小新出了个开源的下载器:CMSIS DAP, 根据ARM开源项目做的, 用了一段时间,确实是很方便很稳定。
- 透明的外壳,小巧简单;
- 不用安装驱动,插上就能用;
- SWD方式接口,三线就能下载
- 支持corter-m架构所有芯片,stm32只是其中一小员。
更重要的是,技新网把软件和硬件都开源了,原理图和代码都放到网上供爱好都下载。下载处如下:
用了一年多,就开始心痒痒的,想根据资料打板一个自己的下载器。
工作之余根据技小新的原理图,作了部分修改,开始慢慢地造自己的武器了。
这个是裸板的第一版,5cm*1.9cm, 自己打板做的,好不好看不重要了,用着心里舒服,哈~
期间,打过第二版和第三板,也尝试过使用更高性价比的GD芯片和HK芯片,不过没成功,最后回归stm32f103。
发一下资料,资料中的是精简和完善后的第三版,压缩包里有原理图、PCB生产文件、代码,都是直接可用。
CMSIS DAP 裸版第三版资料下载: 原理图、PCB生产文件、代码
3:下载器进化
当然,想打造自己的专属工具,就不满足止步于此。
硬件调试要往电脑插各种数据线、各种设备,之前因为买的桌面USB集线器用得不顺手,自己做了一个,这次打算把集线器和下载器结合在一起,这样可以把我们的桌面开发环境整理很简洁一些。
软件工程师的桌面可以摆个花盘,但硬件工程师的桌面....其实给我一个独立房间还不是乱哄哄的,我们就不埋怨桌子小了。
- 把CMSIS DAP升级更换成DAPLink了,有了拖拽烧录功能,这功能试用后,感觉然并卵。
- 之前裸板下载器被精简的虚拟串口,这版本回来上阵了,毕竟是比硬件串口更方便的。
- 七口集线器(FE2.1), 其中的1口连接了DAPLink,所以只能引出6个U口,但也足够日常使用了
- 引出两个5V电源输出 接口(红色),两个3.3V电源输出接口(蓝色),方便为开发板供电。
- 有两个usb micro b输入接口,左边的是数据线接口,并能提500ma电流,开发板调试一般足够。
- 另一个micro b接口,可以使用平时的手机充电器插入,这样能提供1A~2A电流,调试10寸显示屏也没压力了。
4:逐步完善
使用了几天,感觉挺实用的,不过使用稍长一点的杜邦线时,下载不太稳定,应该是数据干扰了,然后,又根据使用情况作出更多的调整:
- 不喜欢使用手机充电器供电,希望电源被更自由地控制 ,就增加了5430, 输出常用的5V,3A大电流;
- 移除了3.3V输出, 因为自己的调试中的板子都是5V供电,而且是三个同时调试,全换上了5V,。
- 更换了三个按键的位置(复位、固件升级),和防尘有机板不冲突了,之前没考虑到。
- 软件上和硬件配合,修改了几个地方,使其在三四十厘米长的杜邦线上稳定地实现三线连接,并自动软复位。
上面这个,是第五版了,上午收到电路板后立马焊元件,上电、烧固件,运行妥妥的。哈~~
摆上了自己的私伙工具,桌面更条理了,甜甜的满足感,嘻~~
当然也有代价的:打板第一个下载器,边用边完善,到现在第五版,老实说,烧点银子事小,误了工作进度才事大,自我批评!!