STM32關(guān)于外部時(shí)鐘晶振為什么選用8MHz
芯片的主晶振頻率范圍一般來(lái)說(shuō)在數(shù)據(jù)手冊(cè)(Datasheet)和技術(shù)參考手冊(cè)(Technical Reference Manual)中都有介紹。
你提到的時(shí)鐘先分頻再倍頻,這個(gè)需要深入到STM32的內(nèi)部去一探究竟了,
在其技術(shù)參考手冊(cè)的第7.2節(jié)Clocks的一開(kāi)始有一個(gè)表格,時(shí)鐘樹(shù)(Figure 8. Clock tree),它完全地列出來(lái)STM32這個(gè)芯片內(nèi)部各個(gè)模塊的時(shí)鐘來(lái)源以及相關(guān)的從屬關(guān)系。
在這個(gè)圖的正中央,有一個(gè)核心時(shí)鐘:SYSCLK,它最大頻率是72MHz,它的時(shí)鐘信號(hào)通過(guò)選擇器SW可以由PLLCLK提供(也可由HIS、HSE提供)。
PLL,毫無(wú)疑問(wèn),它是用來(lái)倍頻的,可以*2,*3,*4……*16,它的時(shí)鐘信號(hào)通過(guò)選擇器PLLSRC可以由8MHz的高速內(nèi)部RC振蕩器經(jīng)過(guò)二分頻提供,也可由PLLXTPRE的選擇器輸出提供,
而PLLXTPRE的選擇器就接的是我們的8MHz的高速外部時(shí)鐘(直接接入或二分頻接入)。
總的來(lái)說(shuō),對(duì)于我們這個(gè)板子,若使用高速外部時(shí)鐘給STM32內(nèi)核提供時(shí)鐘源,一般以下兩條路:
① [高速外部時(shí)鐘:8MHz]>>>[不分頻:8MHz]>>>>[PLL倍頻,2到16倍]>>>[SYSCLK,16MHz-128MHz]
②[高速外部時(shí)鐘:8MHz]>>>[二分頻:4MHz]>>>>[PLL倍頻,2到16倍]>>>[SYSCLK,8MHz-64MHz]
我們注意到,在8MHz外部時(shí)鐘給PLL之前若分頻的話,那么最大(×16)才64MHz,因此,我們都會(huì)給PLL以8MHz的時(shí)鐘源讓其倍頻,這樣能使它發(fā)揮到72MHz的高頻率
正因如此,系統(tǒng)時(shí)鐘總是8的倍數(shù)。
我們看這個(gè)芯片的數(shù)據(jù)手冊(cè),立刻就能明白,不是必須得接8MHz的晶振的
①高速外部時(shí)鐘源頻率范圍(P55-P58):1MHz~25MHz(有源);4MHz~16MHz(無(wú)源)
②PLL輸入時(shí)鐘源頻率范圍(P62):1MHz-25MHz
③PLL輸出時(shí)鐘源頻率范圍(P62):16MHz~72MHz
我們自己設(shè)計(jì)板子的時(shí)候只要滿足它的范圍就可以了。
例如:我們可以選擇一個(gè)12MHz的無(wú)源晶體接到STM32芯片上。
在給STM32進(jìn)行時(shí)鐘配置的時(shí)候,
①選擇PLLXTMRE的輸入源為12MHz/2 = 6MHz
②選擇PLLSRC的輸入源為PLLXTMRE的輸出6MHz,
③在PLL內(nèi)進(jìn)行3到12倍的倍頻(最小16MHz,最大72MHz),
最終我們可選擇的頻率就有:18MHz、24MHz、30MHz、36MHz、42MHz、48MHz、54MHz、60MHz、66MHz、72MHz
圖示: