一文讀懂STM32的基本系統
STM32的基本系統主要涉及下面幾個(gè)部分:
本文引用地址:http://dyxdggzs.com/article/201808/390930.htm一、電源
1)、無(wú)論是否使用模擬部分和AD部分,MCU外圍出去VCC和GND,VDDA、VSSA、Vref(如果封裝有該引腳)都必需要連接,不可懸空;
2)、對于每組對應的VDD和GND都應至少放置一個(gè)104的陶瓷電容用于濾波,并接該電容應放置盡量靠近MCU; 3)、用萬(wàn)用表測試供電電壓是否正確。調試時(shí)最好用數字電源供電,以便過(guò)壓或過(guò)流燒壞板子。電壓最好一步一步從進(jìn)線(xiàn)端測試到芯片供電端。
二、復位、啟動(dòng)選擇
1)、Boot引腳與JTAG無(wú)關(guān)。其僅是用于MCU啟動(dòng)后,判斷執行代碼的起始地址;
2)、在電路設計上可能Boot引腳不會(huì )使用,但要求一定要外部連接電阻到地或電源,切不可懸空; STM32三種啟動(dòng)模式對應的存儲介質(zhì)均是芯片內置的,它們是:
1)用戶(hù)閃存 = 芯片內置的Flash。
2)SRAM = 芯片內置的RAM區,就是內存啦。
3)系統存儲器 = 芯片內部一塊特定的區域,芯片出廠(chǎng)時(shí)在這個(gè)區域預置了一段Bootloader,就是通常說(shuō)的ISP程序。這個(gè)區域的內容在芯片出廠(chǎng)后沒(méi)有人能夠修改或擦除,即它是一個(gè)ROM區。
在每個(gè)STM32的芯片上都有兩個(gè)管腳BOOT0和BOOT1,這兩個(gè)管腳在芯片復位時(shí)的電平狀態(tài)決定了芯片復位后從哪個(gè)區域開(kāi)始執行程序,見(jiàn)下表:
BOOT1=x BOOT0=0 從用戶(hù)閃存啟動(dòng),這是正常的工作模式。
BOOT1=0 BOOT0=1 從系統存儲器啟動(dòng),這種模式啟動(dòng)的程序功能由廠(chǎng)家設置。
BOOT1=1 BOOT0=1 從內置SRAM啟動(dòng),這種模式可以用于調試。
用JTAG口或SWD模式燒寫(xiě) 選擇從用戶(hù)閃存啟動(dòng)。
用串口ISP模式燒寫(xiě)程序時(shí)時(shí)選擇從系統存儲啟動(dòng)

三、燒寫(xiě)接口
如果要減小插座的數量,就用SWD模式的仿真,在這個(gè)模式下,如果用JLINK只要四根線(xiàn)就可以了,這四根線(xiàn)分別是:3.3V、GND、SWDIO、SWCLK
其中
STM32的JTMS/SWDIO接JTAG口的TMS;
STM32的JTCK/SWCLK接JTAG口的TCK。
如果要用ULINK2,則再加多一條“NRST”,即5條。
這個(gè)接口你可自行定義,在使用時(shí)用杜邦線(xiàn)跳接或做塊轉換接口板聯(lián)接仿真器與目標板即可。
下面是在MDK里設置的圖片:
在燒寫(xiě)時(shí)出現了IDCODE如圖有序列號,證明燒寫(xiě)接口是好的!也就是硬件調試通了。如沒(méi)有也許焊接不過(guò)關(guān),從新加固焊接芯片。
四、調試燒錄失敗的常見(jiàn)原因
1、目標芯片沒(méi)有正確連接,不能正常工作:
解決方法:確保目標板的最小系統正確連接,芯片能正常工作:VDD、VDDA及VSS 、VDDS已全部正確連接,復位電路能夠可靠復位,各復位源不互相影響。
2、芯片內原先燒錄的代碼影響了新的調試操作:
芯片內原先燒錄的代碼出錯,芯片上電運行,進(jìn)入未定義狀態(tài),不能進(jìn)入調試模式。芯片內原先燒錄的代碼啟動(dòng)了某些外設,或者將SWJ引腳配置為普通I/O口。
解決方法:選擇芯片的BOOT0/BOOT1引腳從RAM啟動(dòng),或先擦除芯片內代碼。
3、芯片已被讀/寫(xiě)保護:
調試工具不能讀寫(xiě)芯片內置的Flash。 解決方法:先使用調試工具解除芯片的讀/寫(xiě)保護。
評論