天天看點

STM32的最小系統

1、供電

2、複位

共分為系統複位、電源複位、備份域複位三種。

一、系統複位

其中除了時鐘控制寄存器 CSR 中的複位标志和備份域中的寄存器外,系統複位會将其它全部寄 存器都複位為複位值。

隻要發生以下事件之一,就會産生系統複位: 

1. NRST 引腳低電平(外部複位)

(STM32F的NRST是異步複位腳。
當NRST輸入低電平的時候,MCU處于複位狀态,重設所有的内部寄存器,及片内幾十KB的SRAM。
當NRST從低電平變高時,PC指針從0位址開始。
但是複位的時候不會将STM32F片内RTC的寄存器以及後備存儲器重置,因為它們是用電池通過專門的VBAT腳供電。
STM32中的NRST有施密特功能。大概在輸入電壓低于1.9V的時候将晶片複位。)      

2. 視窗看門狗計數結束(WWDG 複位)

3. 獨立看門狗計數結束(IWDG 複位) 

4. 軟體複位(SW 複位)

5. 低功耗管理複位

軟體複位 可通過檢視 RCC 時鐘控制和狀态寄存器 (RCC_CSR) 中的複位标志确定。 要對器件進行軟體複位,必須将 Cortex®-M7 應用中斷和複位控制寄存器中的 SYSRESETREQ 位置 1。有關詳細資訊,請參見 Cortex®-M7 技術參考手冊。

低功耗管理複位

引發低功耗管理複位的方式有兩種: 1. 進入待機模式時産生複位: 此複位的使能方式是清零使用者選項位元組中的 nRST_STDBY 位。使能後,隻要成功執行 進入待機模式序列,器件就将複位,而非進入待機模式。 2. 進入停止模式時産生複位: 此複位的使能方式是清零使用者選項位元組中的 nRST_STOP 位。使能後,隻要成功執行進 入停止模式序列,器件就将複位,而非進入停止模式。

二、電源複位 

隻要發生以下事件之一,就會産生電源複位: 1. 上電/掉電複位(POR/PDR 複位)或欠壓 (BOR) 複位。 

2. 在退出待機模式時。 除備份域内的寄存器以外,電源複位會将其它全部寄存器設定為複位值(請參見 圖 11)。 這些源均作用于 NRST 引腳,該引腳在複位過程中始終保持低電平。RESET 複位入口向量 在存儲器映射中固定在位址 0x0000_0004。 晶片内部的複位信号會向 NRST 引腳上輸出一個低電平脈沖。脈沖發生器可確定每個内部複位 源的複位脈沖都至少持續 20 µs。對于外部複位,在 NRST 引腳處于低電平時産生複位脈沖。

複位和時鐘控制 (RCC) RM0385

備份域具有兩個特定的複位,這兩個複位僅作用于備份域本身(請參見 圖 11)。

5.1.3 備份域複位 備份域複位會将所有 RTC 寄存器和 RCC_BDCR 寄存器複位為各自的複位值。BKPSRAM 不受此複位影響。BKPSRAM 的唯一複位方式是通過 Flash 接口将 Flash 保護等級從 1 切換 到 0。 隻要發生以下事件之一,就會産生備份域複位: 1. 軟體複位,通過将 RCC 備份域控制寄存器 (RCC_BDCR) 中的 BDRST 位置 1 觸發。 2. 在電源 VDD 和 VBAT 都已掉電後,其中任何一個又再上電。

3、時鐘:外部晶振(2個)

STM32的最小系統
STM32的最小系統

4、BOOT啟動模式選擇

STM32的最小系統

STM32三種啟動模式

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啟動,這種模式可以用于調試。

5、下載下傳電路(序列槽/JTAG/SWD)

STM32的最小系統

6、後備電池(并不是最小系統必須的)

STM32的最小系統

繼續閱讀