1. 程式人生 > >STM32的SWD燒錄模式No Target Connected 錯誤的一種情況

STM32的SWD燒錄模式No Target Connected 錯誤的一種情況

一、問題

最近做專案第一次用到STM32F405RGT6這款微控制器,之前用的是STM32F407;SMT貼片焊接,拿到板子準備燒錄程式進行測試,使用的是STlink的SWD燒錄模式,但是MDK彈出“No target connected”,也就是說檢測不到微控制器!

二、問題分析和嘗試

查看了魔法棒的Debug選項中stlink的“setting”,結果如圖1所示。

圖1.錯誤狀態下的SWD裝置檢測狀態

既然顯示檢測不到微控制器,那麼首先考慮是否電路板的電源供給狀態會否有錯?接地是否可靠?測試結果顯示正常;既然供電正常,那麼是否是接線錯誤?檢查結果顯示正常;那麼微控制器的BOOT引腳配置呢?資料顯示BOOT引腳的配置和復位後程序的執行有關如圖2。網上查找了解到如果把PA13、PA14引腳配置為輸出模式了,那麼這兩個引腳就不能再作為SWD的訊號線進行程式的下載除錯了(我的晶片都是新的,照理講這兩個引腳不會被配置,但是賣家發二手貨也是可能的),STlink也就檢測不到微控制器,但是引腳配置是在運行了相關的程式後配置的,那麼如果讓微控制器復位後不執行引腳配置程式PA13、PA14引腳就仍然可以作為SWD引腳使用,方法是將BOOT0拉高(參照https://blog.csdn.net/YPJ0123/article/details/79774178);也有網友提出利用復位的方式解決這個問題,(參照http://www.stmcu.org.cn/module/forum/thread-600568-1-1.html,個人在後續的除錯中用到過這種方式實測有效,但這種方法並不適用於博主遇到的主要問題)。嘗試了這兩種方法後仍然沒有解決問題~~頭大!之後又檢查了晶振系統(儘管STM32有內部晶振,這時候真的需要認真檢查所有的可能,也是無奈~~)結果顯示沒有問題。

圖2.BOOT引腳配置的相關解釋

綜上描述,確保了電源系統正常、SWD接線正常、BOOT配置正常甚至是晶振系統正常,但是問題仍然沒有解決。於是乎就開始懷疑是否買到了假的晶片?於是著手買晶片換一下試試,但是一個晶片和一個核心板模組的價格也差不多不如直接買來核心板,這樣也可以在硬體上有個參考。

拿到板子接好SWD接線,發現仍然檢測不到晶片,後來嘗試了前面提到的復位的方式讓STlink檢測到了核心板自帶的微控制器。核心板遇到這樣的問題應該是賣家在核心板裡燒錄了程式並且配置了PAA13、PA14引腳。核心板除錯通過,再回頭檢視自己的板子的問題,經過一通除錯後仍然沒有解決,決定換晶片!將核心板上的晶片換到自己的電路板上,結果仍然檢測不但晶片!!!!這下堅定了信念,一定是自己的電路板哪裡出了問題。

三、問題查詢和解決

         經過前面的一通調整,可以肯定的是1.供電系統沒有問題;2.SWD接線沒有問題;3.BOOT配置沒有問題;4.軟體沒有問題。5.問題出在硬體上。既然問題在硬體設計上,那麼硬體上有哪些結構回和SWD連線相關呢?我的硬體原理圖如圖3所示。

圖3.STM32F405系統的部分電路原理圖

         圖3.所示的是電路中和微控制器的工作條件有關的部分,其他的都是IO口可以不看。圖中可以看出晶振部分的問題已經排除,VCAP電路結構是參考手冊可找的,VDD和VSS是微控制器的數字地沒有問題,那麼就是VDDA、VSSA和VBAT了,VBAT引腳這樣供電已經無數次了肯定ok。那麼VDDA呢?問題就出在這!我的VDDA來自於一個單獨的LDO,這個模擬電源還用做精密的儀表放大器已經光電檢測電路的電壓軌道用,而考慮到功耗問題,我設定的是此電源可以由微控制器使能,也就是說微控制器工作之前模擬電源的使能引腳是失能狀態,即3.3VA是不工作的。按照字面意思理那麼VDDA是微控制器的模擬地不應該會對系統的程式燒錄這樣的數字動作有什麼影響,為了讓判斷更有根據查找了資料手冊如圖4.和圖5.所示。

圖4.stm32F4微控制器資料手冊關於電源部分解釋

圖5.STM32F4的模擬電源供電系統

紅色圈圈是關於模擬電源的描述,藍色圈圈是導致博主遇到的問題的真正元凶!復位模組RC振盪器、PLL的供電全部來自於VDDA,也就是說微控制器的時鐘系統的供電來自於VDDA,它沒有正常供電當然是差找不到微控制器!找到了問題的關鍵趕緊嘗試一下,終於檢測到了晶片(手動淚流滿面~~~)見圖6。這是在我的國慶節的最後一個晚上解決的啊!這麼一個粗心和經驗不足的代價是貢獻了整個國慶節(儘管更多的時間在搞其他的,但是這個問題幽靈一樣揮之不去)!好心酸…

         心酸的留給自己經驗留給網友,希望能幫助到正在被這種“小毛病”困擾的你。

圖6.檢測正常後的SWD晶片檢測結果

相關推薦

STM32的SWD模式No Target Connected 錯誤情況

一、問題 最近做專案第一次用到STM32F405RGT6這款微控制器,之前用的是STM32F407;SMT貼片焊接,拿到板子準備燒錄程式進行測試,使用的是STlink的SWD燒錄模式,但是MDK彈出“No target connected”,也就是說檢測不到微控制器! 二

KEIL提示“No target connected”的解決方法

我用萬用表測量目標板上的STM32F051R8T6的復位腳,在點選模擬時,有瞬間的電平變化,我分析應該是對目標板有復位的動作,但為什麼GPIOA的配置狀態沒有復位呢?有一點沒有搞懂。手冊寫有GPIOA_MODER復位後的值為:0x2800 0000,即將GPIO13\14配置為複用模式,但為什麼在程式配置了G

STM32 STLink No target connected解決辦法

寫在前面:最近一塊STM32F103C8T6開發板怎麼都下載不進去程式,驅動和Keil的配置都是正確的,只是Keil上一直顯示如下的No target connected,如下圖: 原因:開發板BOOT0和BOOT1預設都接地,即從使用者Flash啟動,如果此時我們將S

stm32f4-discovery st-link no target connected問題

最近在使用stm32f4-discovery 板子時,偶然間遇到st-link no target connected的問題,本來一直都很正常,突然就冒出這個問題,我一開始以為是板子出毛病了。後來上網查閱了資料後才發現不是板子的問題。解決辦法如下:(開發環境是 MDK 4.

Windows 系統光碟教程-光碟怎樣資料光碟用"軌道次寫入"還是"光碟次寫入"?

 燒錄光碟需要 DVD-RW 的光碟機,並且光碟需要 DVD-R 的光碟用於燒錄。燒錄工具可以使用 https://cn.ultraiso.net/ 來進行燒錄。選擇軟體目錄 中 工具 ,選擇 燒錄光碟映像 即可進行配置: 此時涉及到了光碟寫入的方式的選擇問題,在網上簡單查

Android.mk報No rule to make target問題的解決方法

在編寫Androi Native makefile Android.mk的時候經常遇到以下問題 make: *** No rule to make target `***.c', needed by

undefined symbol: _Py_ZeroStruct錯誤可能的原因

Traceback (most recent call last):   File "train_net.py", line 28, in <module>     from roi_data_layer.roidb import combined_roidb

CCS5.5 中報錯 Does not match the target type,not loaded 的情況

出現現象:在使用CCS5.5除錯TMS320DM642時,程式碼沒有任何報錯,卻出現不能匯入出數情況,報錯資訊是Does not match the target type,not loaded。用的是TI公司官方下載的c64plus-imglib_2.02版本。 解決辦法:查閱了相關資料

Keras 出現Matrix size-incompatible: In[0]:錯誤情況

如果訓練的時候用的是tf+kreas的話,需要把weight儲存成h5檔案就可以了,具體為什麼不太清楚,網上有說使用兩種模式訓練出來的權重不太相容,之後嘗試了其他解決方法並沒有解決,這個親測有用。

簡單工廠模式,工廠模式中最簡單的

場景:要實現不同型別的彈窗,警示框、提示框、確認框。這些彈框存在一些相似的地方,也存在一些不同的地方。可以將不同的屬性作為引數傳遞進來。 function creatPop(type,text){ // 建立一個物件,並對物件拓展屬性和方法 var o = new Object();

VC++編譯程式碼出現LNK2005錯誤情況的解決

在一個VC控制檯應用程式中,加入對ADO的引用,編譯後,出現如下錯誤提示, 1>MSVCRTD.lib(MSVCR120D.dll) : error LNK2005: __beginthreadex 已經在 libcmtd.lib(threadex.obj) 中定義

解決將Excel表匯入到SQL Server資料庫時出現Text was truncated or one or more characters had no match in the target code錯誤

編寫python爬蟲程式可以在電商、旅遊等網站上爬取相關評論資料,這些資料可以用於詞雲製作、感情詞分析、提取關鍵詞等,也可以將爬取下來的資料以自己的方式進行展示。評論資料爬取下來後,就要考慮怎樣入庫,可以在爬蟲程式中編寫程式碼直接入庫,也可以將爬取到的資料存到Excel表格中,再將Excel表格匯入到資料庫中

uboot的模式下操作spi flash映象到flash分割槽

1、燒錄方式      1.1 將程式碼燒錄到一個儲存裝置有兩種方式:            (1)用外部燒錄器來燒錄(比如一些Jink,內建了spi介面,本身可以讀寫spi,再配合配套的上位機軟體將映象或hex檔案燒錄到flash,和MCU沒有關係)        

svn錯誤:Two top-level reports with no target

原文地址:http://easwy.com/blog/archives/subversion-two-top-level-error/ svn: Two top-level reports with no target 在網上搜索了一下,似乎出現這個錯誤是由於本地

[原創]Nexus5 源碼下載、編譯、真機過程記錄

慢慢 prop sha shell 腳本 .cn 等待 strong download dos asop使用清華鏡像源https://mirror.tuna.tsinghua.edu.cn/help/AOSP/ 一開始使用每月初始化包的方式因為無法搞定版本的問題,沒能通過編

[原創]Nexus5 內核編譯過程記錄

ron ubuntu16 gin ready 內核 fastboot dtb 尋找 ucc 參考Android系統源代碼情況分析第二章進行實踐,為了提高效率,也為了增加實踐機會,使用Nexus5進行內核編譯。需要說明的是,Android源代碼工程默認是不包含

Nexus5 內核編譯過程記錄

記錄1、下載nexus5 對應的內核源碼 Android系統使用的是Linux內核,但與主線分枝的Linux內核又有一些差異,各個不同的廠商又有自己的修改。內核源碼位於谷歌境外服務器,不FQ無法訪問,這給同步源碼造成很大的不便。幸好清華大學的開源服務器上也同步了AOSP內核的源碼,使得我們無須FQ就可

stm32最小系統板的簡單說明

設備管理 開始 設備管理器 set 串口 需要 ima reset 顯示 首先,最小系統板燒錄往往需要usb轉串口模塊,可以自行購買,一般買了會附送資料,上面都會有相應的驅動 根據以往的經驗來看,這個模塊的驅動經常出問題(比如一直顯示占用),裝了之後需要手動切換。。。 具體

A query was run and no Result Maps were found for...原來是mapper.xml文件出了問題,是使用MyBatis最常見的錯誤

tor like .cn -1 es2017 batis pre XML apach 今天遇到一個問題,原來是mapper.xml文件出了問題,是使用MyBatis最常見的一種錯誤 報錯的結果是這樣的: A query was run and no Result Ma

AVR開發 Arduino方法(附二) 故障排除:引導程序

開發 沒有響應 image left 響應 asp 故障 引導 排除   在“內存子系統”一章中我們曾提到,Arduino UNO R3開發板上的ATMega328P有0.5KB的Flash空間用於引導程序;因為有引導程序的支持,Arduino可以使用串口上傳程序而無需編程