安排:
- 教大家如何刷固件,同时再测试一遍硬件 [已完成]
- 小蓝板硬件上的注意事项(d+上拉、boot、64/128k flash) [已完成]
- 我做这个stlink的完整的过程,包括踩的坑以及都是如何解决的 [已完成]
1 教大家如何刷固件,同时再测试一遍硬件 [已完成]
2 小蓝板硬件上的注意事项(d+上拉、boot、64/128k flash)[已完成]
d+上拉
我的
卖的
boot
打在右边boot都是0
64/128k flash
流程图
3 我做这个stlink的完整的过程,包括踩的坑以及都是如何解决的(本视频)
最开始我手上有原子的pandora板子和nano板(学校的,马上就要还了)
:usb转ttl(ch340),用flymcu下载hex程序,还不能调试(我对这个功能的不满)而且这个flymcu不能直接下载bin文件,只能下hex,但是提取文件只能是bin,不能是hex,所以说flymcu就是个bug循环;(我对这个功能的不满)
:一号板子
:2号
:stlink扩展
:板载stlink,没有下载调试c8t6的触点,不能为板载stlink刷固件(要升级固件之能用带JTAG丝印的microB,配合ST-Link 升级器升级固件,升级固件版本太高超过64k,有可能升级失败,会让stlink变砖),但是它有c8t6下载其他板子的接口,所以能用板载的stlink给其他板子下载或提取程序。
: 板载stlink,与nano板子刚好相反,pandora只有下载调试c8t6的触点(背面),没有c8t6下载其他板子的接口,所以没办法用板载的stlink给其他板子下载程序。
当然在这之前我用nano的板载stlink提取了pandora的stlink固件(V2J24),后面验证了这个固件刷在其他板子上是能识别但是不能用的,也就是说这个固件是绑定了Pandora板载stlink的c8t6的硬件信息的,但是如果借着识别的效果更新一下固件就能用了。
面临新的问题:
市面上的stlink固件都是bin格式的,而且版本很高(基本上V2J28以后的带读保护,之前版本的我不知道),更高版本的占用flash刚好超过了c8t6的64k,C8T6 只有 64KB flash,在早期 ST-Link 固件比较小的时候,64KB 完全是够用的。但随着 ST-Link 的功能升级后,固件大小正好超过了 64KB ,导致了现在提示的升级错误,如下图所示。提示信息为:The up-to-date firmware is too big for this board (4960 bytes in excess). Can't update
。就差这么 4K 多的空间了。
所以只能用cbt6(128k),其实不然。其实c8t6和cbt6是在同一块晶圆上做的,只不过c8t6只测试前64k,而cbt6测试128k。所以有的c8t6其实是128k的,有的是64k的,比如我买的两个c8t6,用stlinkUtility软件读出来一个芯片是64k的(这个我测试了后面64k也是能用的,但是软件就是显示64k),另一个芯片是128k的。
貌似用64k的c8t6做不成stlink了,除非有V2J27或者更早的固件(放心,有),为了让市面上的64k的c8t6小蓝板兼容,特意找了早期的V2J27的stlink升级器,把我的V2J31的stlink降级到V2J27, 同时直接将V2J27的stlink固件提取出来了bin和hex两个文件。只要接上我的扩展板,刷上J27的固件就能直接变功能齐全的stlink。当然这是后话了。
最后是自己的stlink没做成,赔了一个好的板载stlink,而且这个nano板子还得还给老师,良心难安。
这就是折腾的后果,真的是试试就逝世。那天心情真的是太失落了。第二天弄了弄还是老样子。心凉了个透。
最后,nona板子弄好了,这样就能还给老师了。要是最开始第一个板子芯片是128k的就直接成功了,有点难过,不过也因为如此,才搞明白了stlink的坑。
总结:
- stlinkUtility显示64kflash的c8t6,stlink扩展板+小蓝板c8t6+提取的V2J27的固件。
- stlinkUtility显示128kflash的c8t6,stlink扩展板+小蓝板c8t6+V2J27或者其他版本固件都行
- cbt6,stlink扩展板+小蓝板cbt6+V2J27或者其他版本固件都行