主要功能-時鐘 複位 電源
上個章節我們介紹了STM32F103微控制器的内核和存儲器功能,這兩部分屬于單片機的核心功能,接下來我們接着介紹核心功能中的時鐘、複位和電源管理。
STM32單片機是2.0~3.6伏供電,一般認為是3.3伏。與51單片機不同,51單片機是5伏電源。對于STM32來說,如果供電電壓高于這個範圍,則單片機不工作或者工作不穩定。同時I/O接口也是同樣的電壓範圍。這裡需要說明一點,芯片上的部分I/O引腳是可以兼容5伏電壓的,但不是全部引腳都兼容,大家在使用時,需要注意。
再來看一下單片機的複位。單片機第一次上電或斷電再次上電時,都會執行複位操作,另外可以設定電壓值,如果低于這個電壓值會引發複位操作,保證系統工作的穩定。再來看一下時鐘,學過51單片機,大家應該知道單片機的時鐘和我們時分秒的時鐘是不同的。單片機裡的時鐘是給單片機提供基準時鐘脈沖信号的,産生方波信号。單片機裡表示時分秒的時鐘叫做RPC實時時鐘,稍後我們再做詳細介紹。
我們這個圖裡列出了4個時鐘信号,兩個外接晶體振蕩器,晶體振蕩器就是石英晶振,體積大,不能集成在單片機裡面,但是它的溫漂比較小,就是随溫度變化,振動的頻率誤差比較小,因此,它比較準确。HSE(High Speed External)是外部高速晶體振蕩器,叫做外部高速時鐘。LSE(Low Speed External)是外部低速時鐘。為什麼說一個是高速時鐘,一個是低速時鐘呢,HES這裡外接的晶振是4~16MHz,M表示兆也就是10的6次方。LSE外接的是32kHz的晶振,K是千,也就是10的3次方。它們的數量級不同,所以HSE的頻率要比LSE的頻率高很多,頻率越高,速度就越快。所以稱HSE是高速時鐘,LSE是低速時鐘。高速時鐘用于給單片機ARM内核提供系統時鐘,低速時鐘是為了給單片機内部的RTC實時時鐘提供工作頻率。RTC就是我們剛才說的給單片機内部表示時分秒的時鐘,HSE、LSE這兩個都是單片機外接晶體震蕩器所提供的時鐘,它們非常精确,但需要焊接晶振,而針對一些對時鐘要求不敏感的應用,為了降低成本,可以不外接晶振,因此,單片機内部還提供了兩個内部時鐘,使用起來非常方便,但是不太準确。一個是内部高速時鐘HSI(High Speed Internal),另一個是内部低速時鐘LSI(Low Speed Internal)。
RC振蕩器是由單片機内部的電阻R和電容C組成的振蕩電路,以提供不同頻率的時鐘信号,RC振蕩器的溫漂比較大,因此時鐘不是很準确,根據我們剛才所講内容,外部高速時鐘是給系統時鐘用的,外部低速時鐘是給RTC實時時鐘使用的,因此大家可以想到RC振蕩器産生的内部8MHz高速時鐘是給系統用的,内部RC振蕩器産生的40kHz的低速時鐘是給RTC實時時鐘使用的。
大家可以看到單片機包括兩個外部時鐘,兩個内部時鐘。外部時鐘是由外接的晶體振蕩器産生連續方波,比較準确。内部的時鐘是由RC振蕩器産生連續方波,計時不太準确。兩個高速時鐘為系統所用,兩個低速時鐘,一個為32kHz,一個為40kHz,頻率很接近,是給RTC實時時鐘提供時鐘信号的。
這張是數據手冊中的圖表-時鐘樹。它完全地列出來STM32這個芯片内部各個模塊的時鐘來源以及相關的從屬關系。OSC_OUT、OSC_IN、OSC32_IN、OSC32_OUT是芯片的引腳,用于外接石英晶振的。OSC适用于外接4~16MHz的晶體振蕩器,它屬于外部高速時鐘。OSC32适用于32.768kHz的晶體振蕩器,它是外部低速時鐘。這兩個都是由外部晶體振蕩器産生的時鐘。[8MHz HIS RC]是内部高速時鐘,沒有引腳,由RC振蕩電路産生時鐘信号。【LSE RC 40KHz】是内部低速時鐘。
在這個圖的正中央有一個系統時鐘(SYSCLK),它的最大頻率是72MHz,它的時鐘信号通過選擇器(SW)可以由PLLCLK提供,也可以HSI、HSE提供。
HIS的信号還可以先經過一個二分頻連接到選擇器(PLLSRC)上,然後經過PLL倍頻器進行倍頻,為系統提供時鐘。PLL是鎖相環電路,可以實現對頻率進行倍頻,8MHz的頻率經過2分頻變成4MHz,如果倍頻倍數選擇為四倍,那麼倍頻後就是16MHz,這是内部高速時鐘。
再來看一下外部高速時鐘,可以直接被選擇,或者經過2分頻後再被選擇,然後連接到選擇器(PLLSRC)經過倍頻後,為系統提供時鐘信号。如果外接的是8MHz的晶體振蕩器,倍頻系數選擇9的話,系統時鐘就是72MHz。HSE還可以直接連接到SW選擇器,為系統提供時鐘。這裡注意,系統時鐘可以由内部或者是外部的高速時鐘來進行提供,具體如何選擇,在編程時需要用戶進行設置。這裡還需注意系統的最大頻率是72MHz,不能超過這個頻率。
接下來看一下低速時鐘,LSE外部低速時鐘,外接的是32.768kHz的晶體振蕩器,可以經過選擇器直接成為RTC實時時鐘。LSI是内部低速時鐘,其中頻率是40kHz,可以直接被選擇為RTC實時時鐘。或者給獨立的看門狗提供時鐘。另外,外部高速時鐘還可以經過128分頻之後,提供RTC實時時鐘。下面的MCO是時鐘輸出引腳,箭頭朝向芯片外部的方向表示輸出,而上面的箭頭都是輸入。倍頻後的時鐘(PLLCLK)、内部高速時鐘(HSI)、外部高速時鐘(HSE)、系統時鐘(SYSCLK)都可以選擇輸出。
再來看一下系統時鐘的右邊,AHB高性能系統總線,APB外圍總線,各個模塊的工作時鐘不同,系統時鐘還需要再進行分檢,為各個模塊提供不同的時鐘。這一章和上一章所講的核心功能是單片機最小系統的組成部分。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!