CubeIDE使用国产版ST-Link/V2升级固件失败(已解决)

        文末有总结。

        网上买了一个新的ST-Link,想用来下载/调试程序,但是CubeIDE说我的ST-Link的固件版本太老,要强制升级,不升级不让用。但是呢,每次升级固件都失败。出现了以下的情况,让我很恼火。

        在CubeIDE里点击Help -> ST-Link Upgrade,出现下面的画面。正常来说按照顺序依次点击下面的标号就可以更新了。

        注意看,我现在的版本时V2J37S7,需要更新到的版本是V2J42S7。

        但是出现了状况

        它的提示是这样的:先说更新失败,请再次尝试。然后说更新成功。

        版本那里,也变成了V2J42S7。

        但是这时去启动下载/调试,还是说ST-Link的固件版本太低。

        回来一看,版本仍然是V2J32S7。

        就是说,虽然它最后提示更新成功了,但是实际上是更新失败的。

        重复多次,结果都是一样。

       

        我向其他人借了一个ST-Link,使用同样的方法来进行操作,发现可以更新。基本上可以确定,问题出在ST-Link上面。

        所以我将两个ST-Link都拆开了。(两个ST-Link都是盗版的)

        把后面的标签撕掉,把两颗螺丝拆掉,就可以顺利拆开了。

        最后发现,不能更新固件的ST-Link的芯片是CKSF103C8T6,

        可以更新固件的ST-Link的芯片是STM32F103C8T6

        猜测是前两年ST的芯片价格大涨,所以那时候生产的国产ST-Link就使用了价格较为便宜的国产芯片替代,在刚刚推出的时候是可以使用的(否则也不会上市),但是随着ST-Link的固件升级,国产芯片的ST-Link就更新不了固件了。

        查了一些资料,CKSF103C8T6是【无锡中科芯】的产品。正常来说CKSF103C8T6是可以兼容STM32F103C8T6的。但是现在确实是出现了问题。

        两款产品的Flash容量都是64KB,有可能是ST-Link最新的固件包大小在64KB附近,而CKSF103C8T6的实际有效Flash容量小于64KB,导致无法升级固件。

        另外说一句,使用CKSF103C8T6芯片的ST-Link可以给板子供电。而使用STM32F103C8T6芯片的ST-Link不可以给板子供电。

        而正版的ST-Link,是不能给板子供电的。

        刚好手上也有一个JLINK V9,干脆一起拆了,看一下里面的芯片是什么。

        图片上看不清(吐槽一下苹果手机,拍照的对焦能力是真的弱,相册系统是真的难用)。

芯片是STM32F205RCT6。性能是高于STM32F103C8T6的。




        总结:不能升级固件的ST-Link的芯片是CKSF103C8T6,而芯片是STM32F103C8T6的ST-Link可以正常升级固件。

        换一个芯片是STM32F103C8T6的ST-Link即可。

        或者将原来的ST-Link的芯片升级一下。

猜你喜欢

转载自blog.csdn.net/weixin_63096487/article/details/133269332
今日推荐