ST-Link能檢測到微控制器並且時有時無,無法燒錄程式

William_Zhang_csdn發表於2020-11-09

背景

自己做了一塊板子,是基於STM32L0的,預留了SWD模式的除錯介面。硬體搭好之後,準備燒錄一段測試程式檢查一下硬體,卻始終無法燒錄,彈窗Connot connect device 或者 internal command error,網上查詢資料無果,困擾了好長時間。

ST-Link是正版的,我也是第一次用ST-Link,之前一直用的J-Link。連了4條線VCC、GND、SWDIO、SWCLK。檢查了連線與各項設定之後確認沒有問題,於是改用J-Link燒錄一下試試,發現燒錄成功,這證明板子沒有問題。

上網查資料有的說是BOOT0或BOOT1的問題,有的說是燒錄的時候需要復位再鬆開,也有的說是要降低SWD模式的頻率等等…有些我試過,但不對症。

再次連線ST-Link,回看keil中debug的配置,發現下圖中紅框處的微控制器檢測時有時無,但ST-Link的連線正常。
在這裡插入圖片描述

說明ST-Link的驅動方面沒有問題,初步判斷是ST-Link的使用方法出錯了。

解決方法

檢視了說明ST-Link的引腳定義,如下圖:
在這裡插入圖片描述
其中,需要注意的是TVCC(Target VCC)是電源平衡輸入引腳,檢測電源電壓作用,並不能作為MCU的供電引腳,所以板子的供電電源需要連線VDD3.3V引腳。
但是隻連線VDD3.3V、GND、SWIO、SWCLK,這4條線的話就會出現我這個問題,還需要連線TVCC這個引腳來檢測目標板子的電壓。
於是一共是5條線(VDD3.3V、GND、SWIO、SWCLK、TVCC),但非要四條線的話可以把TVCC和VDD3.3V連線到一起,我就這麼幹的。
在這裡插入圖片描述
看到最後燒錄的進度條,一下就舒服了!

相關文章