keil版本为:V5.25.30.0
下载器为ST-LINK
1.如下图,keil提示Error: Flash Download failed - Target DLL has been cancelled
2.原因是如下图中的ST-LINK的TVCC没有接到电路板的3.3V
如下图,当黄色线接上就可以正常下载,如果黄色线不接到STLINK,就会出现Target DLL has been cancelled的错误。
3.再探讨下STLINK的VDD和TVCC的区别。
如下图TVCC是1.2脚,当STLINK插上USB时,TVCC没有3.3V输出
VDD是19脚,当STLINK插上USB时,VDD有3.3V输出
当采用SW模式下载程序的时候:
TVCC必须要接到3.3V才能下载成功,否则就会报错Error: Flash Download failed - Target DLL has been cancelled
VDD不用接
那么能不能将VDD接到TVCC,从而给单片机上电呢,我试了下,理论上是可行的,但一般不这么做,因为这个3.3V驱动能力不强。
我用正点原子战舰的板子测试,当VDD接到TVCC,那么VDD和TVCC都会被拉到2V左右,keil也可以成功下载代码,如下图,VDD通过白线给单片机3.3V的电压,然后通过黄线给到TVCC。但是LED并不会被点亮,个人觉得是电压太低。
翻看STM32的手册可以看到STM32的工作电压是2V-3.6V,所以VDD和TVCC都是两点几V也是可以让STM32程序下载成功的。
综上所述:
1.TVCC本身是没有电压的,下载程序的时候需要连接到电路板的3.3V。
2.VDD可以给单片机供电,从而下载程序。同时如果电路板上以及单独供电了,VDD就不要连接到开发板上了,避免两个3.3V产生冲突。所以用一个词来形容,可以用但没必要。VDD这个脚就当它不存在就行了,不要去使用。
PS:附上标准的JTAG接口,可以看到19脚是不接的,至于为什么STLINK要将19脚作为VDD给3.3V输出,我没太理解。
版权声明:本文为CSDN博主「隔壁家的王小琪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wsq_666/article/details/121199647
暂无评论