STM32硬件結(jié)構(gòu)學(xué)習(xí)
stm32硬件學(xué)習(xí)流水帳----電源
分類:
1.工作電源 2.備份域電源 3.adc供電參考電源
工作電源2-3.6v
備份域電源用于RTC時(shí)鐘模塊和備份域寄存器保存
adc供電參考電源:為提高精度ADC具有單獨(dú)的工作電源和參考電源基準(zhǔn)
注意100腳以上的stm32才有ADC參考電源基準(zhǔn),100腳以下ADC參考電源基準(zhǔn)內(nèi)部連接到ADC供電電源上
除此外還有內(nèi)部1.8,由芯片內(nèi)部調(diào)節(jié)器提供.
stm32硬件學(xué)習(xí)流水帳----時(shí)鐘
stm32有多個(gè)時(shí)鐘源:
1.外部高速時(shí)鐘HSE,可由外部輸入時(shí)鐘信號(hào)或者外接晶體構(gòu)成振蕩器構(gòu)成.
2.內(nèi)部高速時(shí)鐘SHI,頻率為8M,精度1%
3.外部低速時(shí)鐘源LSE,接32768Hz晶體,為RTC提供高精度時(shí)鐘
4.內(nèi)部低速時(shí)鐘LSI 32k Hz,為看門狗單元和自動(dòng)喚醒單元提供時(shí)鐘
其中HSE,HSI能直接作為系統(tǒng)時(shí)鐘,或者通過PLL倍頻提供系統(tǒng)工作時(shí)鐘.
注意:
HSI用作PLL輸入,PLL能輸出的最大時(shí)鐘只能為64MHz
stm32硬件學(xué)習(xí)流水帳----系統(tǒng)存儲(chǔ)結(jié)構(gòu)
stm32的程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,寄存器和IO端口被組織到一個(gè)4GB線性空間.
可尋址的存儲(chǔ)空間被分為8個(gè)512M主塊.
stm32存儲(chǔ)編碼格式為小端編碼格式.
嵌入式SRAM可以字,半字,字節(jié)方式訪問,起始地址為0x2000000.
stm32的位段是一種別名機(jī)制,即將用戶數(shù)據(jù)存儲(chǔ)空間的某字節(jié)某位映射到0x22000000開始的別名空間.
例如0x20000030中的第2為映射為:
0x22000000+0x30*32+2 = 0x22000602
對(duì)0x22000602的寫即為對(duì)0x20000030的第位讀修改寫
stm32的flash存儲(chǔ)器物理上分成主塊和信息塊,主塊16K*64bits,每個(gè)主塊分成128個(gè)1KB大小的頁(yè)面.
信息快大小258*64bits,每個(gè)信息塊分成2頁(yè)+16B,每頁(yè)大小2KB
stm32硬件學(xué)習(xí)流水帳----調(diào)試接口
stm32支持jtag接口和swd串行調(diào)試接口兩種調(diào)試口,
其中swd調(diào)試口只占用swdio和swclk兩個(gè)口線,
相比jtag可以有更多的引腳可用,
并且可以使用較小尺寸的調(diào)試插座.
JILINK V7支持SWD接口.
stm32上電默認(rèn)的是jtag接口.
當(dāng)使用swd接口,多余的jtag接口IO端口需要重新映射為通用IO端口
stm32硬件學(xué)習(xí)流水帳----復(fù)位
stm32復(fù)位分為:系統(tǒng)復(fù)位,電源復(fù)位,備份域復(fù)位
系統(tǒng)復(fù)位復(fù)位除了時(shí)鐘控制寄存器的復(fù)位標(biāo)志和備份域寄存器以外的所有寄存器.
系統(tǒng)復(fù)位由NRST引腳低電平,窗口看門狗和獨(dú)立看門狗以及軟件復(fù)位和低功耗管理復(fù)位等原因引起.
電源復(fù)位由上電/掉電復(fù)位(POR和PDR)兩種和待機(jī)模式退出引起
電源復(fù)位將復(fù)位除了備份域寄存器以外的所有寄存器.
備份域復(fù)位由軟件備份域復(fù)位和電源備份域復(fù)位兩種原因引起.
電源備份域復(fù)位是指VDD和Vbat都掉電的時(shí)候,其中一個(gè)突然上電引起的復(fù)位
復(fù)位向量位置為0x00000004
stm32硬件學(xué)習(xí)流水帳----主要電氣特性
stm32供電電壓-0.3---4.0v.
stm32的部分引腳具有5v容忍特性,其電壓輸入范圍為vss-0.3到5.5v
其他引腳的供電電壓范圍是:vss-0.3v到vdd+0.3v
flash等待周期:
0-24MHz 0等待狀態(tài)
24-48MHz 1等待狀態(tài)
48MHz以上 2個(gè)等待狀態(tài)
flash中運(yùn)行代碼,72MHz的時(shí)候所有外設(shè)使能時(shí)候的電流為50.3mA,所有外設(shè)禁止的時(shí)候電流為32.9mA.
VDD腳總電流IVDD最大150mA,
VSS腳總電流IVSS最大150mA,
IO引腳最大電流25mA和-25mA.
flash 擦寫次數(shù)最小 1萬(wàn)次
flash數(shù)據(jù)/指令保存年限最小 20年
弱上拉/弱下拉等效電阻40k歐姆.
GPIOs引腳入出典型電流值為8mA.
stm32硬件學(xué)習(xí)流水帳----GPIO
stm32的GPIO可以由軟件配置成:
輸入浮空,輸入上拉,輸入下拉,
模擬輸入
開漏輸出,推挽輸出,
開漏復(fù)用,推挽復(fù)用.
stm32復(fù)位后,IO端口處于輸入浮空狀態(tài).
JTAG引腳復(fù)位以后,處于上拉或者下拉狀態(tài).
所有IO端口都具有外部中斷能力,端口必須配置成輸入模式,才能使用外部中斷功能.
IO端口復(fù)用功能配置:
對(duì)于復(fù)用功能輸入,端口可以配置成任意輸入模式或者復(fù)用功能輸出模式.
對(duì)于復(fù)用功能輸出,端口必須配置成復(fù)用功能輸出
對(duì)于雙向復(fù)用功能,端口必須配置成復(fù)用功能輸出
stm32的部分IO端口的復(fù)用功能可以重新映射成另外的復(fù)用功能.
stm32具有GPIO鎖定機(jī)制,即鎖定GPIO配置,下次復(fù)位前不能再修改.
當(dāng)LSE振蕩器關(guān)閉時(shí),OSC32_IN和OSC32_OUT可以用作通用IO PC14和PC15.
當(dāng)進(jìn)入待機(jī)模式或者備份域由Vbat供電,PC14,PC15功能丟失,該兩個(gè)IO口線設(shè)置為模擬輸入功能.
OSC_IN和OSC_OUT可以重新映射為GPIO PD0,PD1.
注意PD0,PD1用于輸出地時(shí)候僅能用于50MHz輸出模式.
注意:PC13,PC14,PC15只能用于2MHz的輸出模式,,最多只能帶30pf的負(fù)載,并且同時(shí)只能使用一個(gè)引腳!
擴(kuò)展閱讀:STM32中斷機(jī)制