STM32的基本系統主要涉及下面幾個部分:
1、電源
1)、不管是否使用模擬部分和AD部分,MCU外圍出去VCC和GND,VDDA、VSSA、Vref(若是封裝有該引腳)都必須要鏈接,不可懸空;
2)、對於每組對應的VDD和GND都應至少放置一個104的陶瓷電容用於濾波,並接該電容應放置儘可能靠近MCU; 3)、用萬用表測試供電電壓是否正確。調試時最好用數字電源供電,以便過壓或過流燒壞板子。電壓最好一步一步從進線端測試到芯片供電端。
2、復位、啓動選擇
1)、Boot引腳與JTAG無關。其僅是用於MCU啓動後,判斷執行代碼的起始地址;
2)、在電路設計上可能Boot引腳不會使用,但要求必定要外部鏈接電阻到地或電源,切不可懸空; STM32三種啓動模式對應的存儲介質均是芯片內置的,它們是:
1)用戶閃存 = 芯片內置的Flash。
2)SRAM = 芯片內置的RAM區,就是內存啦。
3)系統存儲器 = 芯片內部一塊特定的區域,芯片出廠時在這個區域預置了一段Bootloader,就是一般說的ISP程序。這個區域的內容在芯片出廠後沒有人可以修改或擦除,即它是一個ROM區。
在每一個STM32的芯片上都有兩個管腳BOOT0和BOOT1,這兩個管腳在芯片復位時的電平狀態決定了芯片復位後從哪一個區域開始執行程序,見下表:
BOOT1=x BOOT0=0 從用戶閃存啓動,這是正常的工做模式。
BOOT1=0 BOOT0=1 從系統存儲器啓動,這種模式啓動的程序功能由廠家設置。
BOOT1=1 BOOT0=1 從內置SRAM啓動,這種模式能夠用於調試。
用JTAG口或SWD模式燒寫 選擇從用戶閃存啓動。
用串口ISP模式燒寫程序時時選擇從系統存儲啓動ide
3、燒寫接口
若是要減少插座的數量,就用SWD模式的仿真,在這個模式下,若是用JLINK只要四根線就能夠了,這四根線分別是:3.3V、GND、SWDIO、SWCLK
其中
STM32的JTMS/SWDIO接JTAG口的TMS;
STM32的JTCK/SWCLK接JTAG口的TCK。
若是要用ULINK2,則再加多一條「NRST」,即5條。
這個接口你可自行定義,在使用時用杜邦線跳接或作塊轉換接口板聯接仿真器與目標板便可。工具
下面是在MDK裏設置的圖片:
在燒寫時出現了IDCODE如圖有序列號,證實燒寫接口是好的!也就是硬件調試通了。如沒有也許焊接不過關,重新加固焊接芯片。
4、調試燒錄失敗的常見緣由
一、目標芯片沒有正確鏈接,不能正常工做:
解決方法:確保目標板的最小系統正確鏈接,芯片能正常工做:VDD、VDDA及VSS 、VDDS已所有正確鏈接,復位電路可以可靠復位,各復位源不互相影響。
二、芯片內原先燒錄的代碼影響了新的調試操做:
芯片內原先燒錄的代碼出錯,芯片上電運行,進入未定義狀態,不能進入調試模式。芯片內原先燒錄的代碼啓動了某些外設,或者將SWJ引腳配置爲普通I/O口。
解決方法:選擇芯片的BOOT0/BOOT1引腳從RAM啓動,或先擦除芯片內代碼。
三、芯片已被讀/寫保護:
調試工具不能讀寫芯片內置的Flash。 解決方法:先使用調試工具解除芯片的讀/寫保護。
燒寫軟件報錯問題總結,後續有待完善!若有錯誤敬請指點會及時更正。測試
(轉)spa