新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一文讀懂STM32的基本系統(tǒng)

一文讀懂STM32的基本系統(tǒng)

作者: 時(shí)間:2018-08-22 來(lái)源:網(wǎng)絡(luò) 收藏

  的基本系統(tǒng)主要涉及下面幾個(gè)部分:

本文引用地址:http://2s4d.com/article/201808/390930.htm

  一、電源

  1)、無(wú)論是否使用模擬部分和AD部分,MCU外圍出去VCC和GND,VDDA、VSSA、Vref(如果封裝有該引腳)都必需要連接,不可懸空;

  2)、對(duì)于每組對(duì)應(yīng)的VDD和GND都應(yīng)至少放置一個(gè)104的陶瓷電容用于濾波,并接該電容應(yīng)放置盡量靠近MCU; 3)、用萬(wàn)用表測(cè)試供電電壓是否正確。調(diào)試時(shí)最好用數(shù)字電源供電,以便過(guò)壓或過(guò)流燒壞板子。電壓最好一步一步從進(jìn)線端測(cè)試到芯片供電端。

  二、復(fù)位、啟動(dòng)選擇

  1)、Boot引腳與無(wú)關(guān)。其僅是用于MCU啟動(dòng)后,判斷執(zhí)行代碼的起始地址;

  2)、在電路設(shè)計(jì)上可能Boot引腳不會(huì)使用,但要求一定要外部連接電阻到地或電源,切不可懸空; 三種啟動(dòng)模式對(duì)應(yīng)的存儲(chǔ)介質(zhì)均是芯片內(nèi)置的,它們是:

  1)用戶閃存 = 芯片內(nèi)置的Flash。

  2)SRAM = 芯片內(nèi)置的RAM區(qū),就是內(nèi)存啦。

  3)系統(tǒng)存儲(chǔ)器 = 芯片內(nèi)部一塊特定的區(qū)域,芯片出廠時(shí)在這個(gè)區(qū)域預(yù)置了一段Bootloader,就是通常說(shuō)的ISP程序。這個(gè)區(qū)域的內(nèi)容在芯片出廠后沒(méi)有人能夠修改或擦除,即它是一個(gè)ROM區(qū)。

  在每個(gè)的芯片上都有兩個(gè)管腳BOOT0和BOOT1,這兩個(gè)管腳在芯片復(fù)位時(shí)的電平狀態(tài)決定了芯片復(fù)位后從哪個(gè)區(qū)域開(kāi)始執(zhí)行程序,見(jiàn)下表:

  BOOT1=x BOOT0=0 從用戶閃存啟動(dòng),這是正常的工作模式。

  BOOT1=0 BOOT0=1 從系統(tǒng)存儲(chǔ)器啟動(dòng),這種模式啟動(dòng)的程序功能由廠家設(shè)置。

  BOOT1=1 BOOT0=1 從內(nèi)置SRAM啟動(dòng),這種模式可以用于調(diào)試。

  用口或SWD模式燒寫(xiě) 選擇從用戶閃存啟動(dòng)。

  用串口ISP模式燒寫(xiě)程序時(shí)時(shí)選擇從系統(tǒng)存儲(chǔ)啟動(dòng)



 三、燒寫(xiě)接口

  如果要減小插座的數(shù)量,就用SWD模式的仿真,在這個(gè)模式下,如果用JLINK只要四根線就可以了,這四根線分別是:3.3V、GND、SWDIO、SWCLK

  其中

  STM32的JTMS/SWDIO接口的TMS;

  STM32的JTCK/SWCLK接JTAG口的TCK。

  如果要用ULINK2,則再加多一條“NRST”,即5條。

  這個(gè)接口你可自行定義,在使用時(shí)用杜邦線跳接或做塊轉(zhuǎn)換接口板聯(lián)接仿真器與目標(biāo)板即可。

  下面是在MDK里設(shè)置的圖片:

  在燒寫(xiě)時(shí)出現(xiàn)了IDCODE如圖有序列號(hào),證明燒寫(xiě)接口是好的!也就是硬件調(diào)試通了。如沒(méi)有也許焊接不過(guò)關(guān),從新加固焊接芯片。

  四、調(diào)試燒錄失敗的常見(jiàn)原因

  1、目標(biāo)芯片沒(méi)有正確連接,不能正常工作:

  解決方法:確保目標(biāo)板的最小系統(tǒng)正確連接,芯片能正常工作:VDD、VDDA及VSS 、VDDS已全部正確連接,復(fù)位電路能夠可靠復(fù)位,各復(fù)位源不互相影響。

  2、芯片內(nèi)原先燒錄的代碼影響了新的調(diào)試操作:

  芯片內(nèi)原先燒錄的代碼出錯(cuò),芯片上電運(yùn)行,進(jìn)入未定義狀態(tài),不能進(jìn)入調(diào)試模式。芯片內(nèi)原先燒錄的代碼啟動(dòng)了某些外設(shè),或者將SWJ引腳配置為普通I/O口。

  解決方法:選擇芯片的BOOT0/BOOT1引腳從RAM啟動(dòng),或先擦除芯片內(nèi)代碼。

  3、芯片已被讀/寫(xiě)保護(hù):

  調(diào)試工具不能讀寫(xiě)芯片內(nèi)置的Flash。 解決方法:先使用調(diào)試工具解除芯片的讀/寫(xiě)保護(hù)。



關(guān)鍵詞: STM32 JTAG

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉