stlink制作安排

安排

  1. 教大家如何刷固件,同时再测试一遍硬件 [已完成]
  2. 小蓝板硬件上的注意事项(d+上拉、boot、64/128k flash) [已完成]
  3. 我做这个stlink的完整的过程,包括踩的坑以及都是如何解决的 [已完成]

1 教大家如何刷固件,同时再测试一遍硬件 [已完成]

视频在我的B站
工程主页在开源硬件平台

2 小蓝板硬件上的注意事项(d+上拉、boot、64/128k flash)[已完成]

d+上拉

我的
在这里插入图片描述
在这里插入图片描述

卖的

boot
在这里插入图片描述
在这里插入图片描述
打在右边boot都是0

64/128k flash

流程图

Created with Raphaël 2.3.0 开始 买的小蓝板 主控c8t6? c8t6 flash是64k? 64k flash 刷v2j27 打我的扩展板 结束框 128k flash 刷v2j27或者更高版本 cbt6 打我的小蓝板 yes no yes no yes no

3 我做这个stlink的完整的过程,包括踩的坑以及都是如何解决的(本视频)

最开始我手上有原子的pandora板子和nano板(学校的,马上就要还了)

1:usb转ttl(ch340),用flymcu下载hex程序,还不能调试(我对这个功能的不满)而且这个flymcu不能直接下载bin文件,只能下hex,但是提取文件只能是bin,不能是hex,所以说flymcu就是个bug循环;(我对这个功能的不满)

1 :一号板子

2 :2号

k :stlink扩展

n :板载stlink,没有下载调试c8t6的触点,不能为板载stlink刷固件(要升级固件之能用带JTAG丝印的microB,配合ST-Link 升级器升级固件,升级固件版本太高超过64k,有可能升级失败,会让stlink变砖),但是它有c8t6下载其他板子的接口,所以能用板载的stlink给其他板子下载或提取程序。

p: 板载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 多的空间了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zqyAFIuZ-1665135175282)(1.png "图1")]

图1

所以只能用cbt6(128k),其实不然。其实c8t6和cbt6是在同一块晶圆上做的,只不过c8t6只测试前64k,而cbt6测试128k。所以有的c8t6其实是128k的,有的是64k的,比如我买的两个c8t6,用stlinkUtility软件读出来一个芯片是64k的(这个我测试了后面64k也是能用的,但是软件就是显示64k),另一个芯片是128k的。

图2 图3

貌似用64k的c8t6做不成stlink了,除非有V2J27或者更早的固件(放心,有),为了让市面上的64k的c8t6小蓝板兼容,特意找了早期的V2J27的stlink升级器,把我的V2J31的stlink降级到V2J27, 同时直接将V2J27的stlink固件提取出来了bin和hex两个文件。只要接上我的扩展板,刷上J27的固件就能直接变功能齐全的stlink。当然这是后话了。

1 k n p

板子1 扩展版 nano pandora 提取V2J24 显示板子1有64k(测试有128k)(Utility) 刷了V2J28的固件(Utility) 刷了V2J28的固件(Utility) 准备读Pandora板子的固件 准备读Pandora板子的固件 Utility能检测 到stlink是V2J28, 但是一读pandora程序就断连 还得重新拔插USB才是再次识别, 但是一读程序就断连, 而且Utility自带的stlink升级器 无法升级,出现图1 排除原理图问题之后, 才意识到是64kflash的问题 刷了V2J24的固件(Utility) 刷了V2J24的固件(Utility) 问题还是和上面一样 这个固件 是绑定了Pandora板载 stlink的c8t6的 硬件信息的 刷回了V2J28的固件(Utility) 刷回了V2J28的固件(Utility) 与此同时,发现自己做 的stlink插到电脑上, 没有windows弹窗, 但是打开CubeProgrammer软件就有弹窗, 只不过问题还是和上面一样 (怀疑Utility有问题) 打算刷V2J28的固件(CubeProgrammer) 打算刷V2J28的固件(CubeProgrammer) nano板载的stlink固件版本低,出 现下图4所示,然后手残点了升级, 把nano板载的stlink固件升级了。 结果nano板载的stlink不能 被keil检测到了,也不能给RBT6下 载程序了,但是打开 CubeProg软件,弹出windows弹窗, keil就又能识别了,不过还是 不能下载程序,这现象和我自己做 的stlink一样呀。这个nano板 载的stlink被我升级成了砖 板子1 扩展版 nano pandora 不回头的坎坷路

最后是自己的stlink没做成,赔了一个好的板载stlink,而且这个nano板子还得还给老师,良心难安。

这就是折腾的后果,真的是试试就逝世。那天心情真的是太失落了。第二天弄了弄还是老样子。心凉了个透。

图4

1 1 k 2 n
ch340 板子1 stlink扩展板 板子2 nano 做好了 RBT6不执行程序 之前一直插拔接口, 不会芯片被烧坏了吧, 既然板载stlink不能下程序 给RBT6下程序(flymcu),结果显示图5 不能写入应该是flash被 保护锁住了 果断插上nano板子, 打开CubeProg软件, 弹出弹窗,用Utility, 点击Target -->> Connect(图6) 还好这样能连接上, 然后点击Target-->>Option Bytes -->>Unselect all-->>apply(图7) 给RBT6下程序(flymcu),成功 打开CubeProg,弹出弹窗。 keil和Utility还是不能下载 显示图8 目前nano板载stlink还是 个砖,不能使用 还好找到了旧版本的STLink升级器。 打开CubeProg弹出弹窗。打开 ST-LinkUpgrade_V2.J27.M15.exe, 升级即可。这个时候 发现keil和Utility都能下程序了, 而且不用打开CubeProg, 插上nano板就有弹窗,一切都恢复了。 插上我的板子1 (里面有固件) 打开CubeProg弹出弹窗, 用旧版本的STLink升 级器刷回V2J27 下载调试板子2 下载调试板子2 下载调试成功 提取固件(bin和hex)成功 板子2是128k的,刷上V2J28固件 板子2是128k的,刷上V2J28固件 下载调试板子1 下载调试板子1 下载调试成功 ch340 板子1 stlink扩展板 板子2 nano 柳暗花明又一村

在这里插入图片描述

在这里插入图片描述

图8

最后,nona板子弄好了,这样就能还给老师了。要是最开始第一个板子芯片是128k的就直接成功了,有点难过,不过也因为如此,才搞明白了stlink的坑。

总结:

  • stlinkUtility显示64kflash的c8t6,stlink扩展板+小蓝板c8t6+提取的V2J27的固件。
  • stlinkUtility显示128kflash的c8t6,stlink扩展板+小蓝板c8t6+V2J27或者其他版本固件都行
  • cbt6,stlink扩展板+小蓝板cbt6+V2J27或者其他版本固件都行
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值