一圖搞懂單片機(jī)STM32的5個(gè)時(shí)鐘源
歡迎關(guān)注【玩轉(zhuǎn)單片機(jī)與嵌入式】公眾號(hào),回復(fù)關(guān)鍵字獲取更多免費(fèi)資料。
回復(fù)【電容】,獲取關(guān)于電容文章相關(guān)的內(nèi)容;
回復(fù)【阻抗匹配】,獲取電磁兼容性、阻抗匹配相關(guān)的資料回復(fù)【資料】,獲取全部電子設(shè)計(jì)、單片機(jī)開發(fā)相關(guān)的資料回復(fù)【終端電阻】,獲取CAN終端電阻相關(guān)的資料回復(fù)【單片機(jī)】,獲取單片機(jī)全套視頻教程和參考設(shè)計(jì)
回復(fù)【STM32】,獲取STM32相關(guān)設(shè)計(jì)和視頻教程回復(fù)【PCB】,獲取PCB設(shè)計(jì)相關(guān)的資料回復(fù)【硬件知識(shí)】、【硬件設(shè)計(jì)】,獲取硬件開發(fā)工程必備手冊(cè)
回復(fù)【經(jīng)典電路】,獲取5000個(gè)經(jīng)典電路
回復(fù)【論文】,獲取畢業(yè)設(shè)計(jì)、電子競(jìng)賽、學(xué)術(shù)專業(yè)等相關(guān)論文資料…………
歡迎關(guān)注【玩轉(zhuǎn)單片機(jī)與嵌入式】公眾號(hào),本公眾號(hào)會(huì)以連載的形式對(duì)電容進(jìn)行深入講解,歡迎持續(xù)關(guān)注。
STM32芯片按照復(fù)位區(qū)域的范圍分類,大概可以分為系統(tǒng)復(fù)位,電源復(fù)位,備份域復(fù)位,內(nèi)核復(fù)位;
眾所周知STM32有5個(gè)時(shí)鐘源HSI、HSE、LSI、LSE、PLL;其實(shí)他只有四個(gè),因?yàn)閺纳蠄D中可以看到PLL都是由HSI或HSE提供的。
其中,高速時(shí)鐘(HSE和HSI)提供給芯片主體的主時(shí)鐘.低速時(shí)鐘(LSE和LSI)只是提供給芯片中的RTC(實(shí)時(shí)時(shí)鐘)及獨(dú)立看門狗使用,圖中可以看出高速時(shí)鐘也可以提供給RTC。
內(nèi)部時(shí)鐘是在芯片內(nèi)部RC振蕩器產(chǎn)生的,起振較快,所以時(shí)鐘在芯片剛上電的時(shí)候,默認(rèn)使用內(nèi)部高速時(shí)鐘。而外部時(shí)鐘信號(hào)是由外部的晶振輸入的,在精度和穩(wěn)定性上都有很大優(yōu)勢(shì),所以上電之后我們?cè)偻ㄟ^軟件配置,轉(zhuǎn)而采用外部時(shí)鐘信號(hào).
時(shí)鐘源介紹高速外部時(shí)鐘(HSE)以外部晶振作時(shí)鐘源,晶振頻率可取范圍為4~16MHz,我們一般采用8MHz的晶振高速內(nèi)部時(shí)鐘(HSI)由內(nèi)部RC振蕩器產(chǎn)生,頻率為8MHz,但不穩(wěn)定低速外部時(shí)鐘(LSE)以外部晶振作時(shí)鐘源,主要提供給實(shí)時(shí)時(shí)鐘模塊,所以一般采用32.768KHz低速內(nèi)部時(shí)鐘(LSI)由內(nèi)部RC振蕩器產(chǎn)生,也主要提供給實(shí)時(shí)時(shí)鐘模塊,頻率大約為40KHz
OSC_OUT和OSC_IN開始,這兩個(gè)引腳分別接到外部晶振8MHz,第一個(gè)分頻器PLLXTPRE,遇到開關(guān)PLLSRC(PLL entry clock source),我們可以選擇其輸出,輸出為外部高速時(shí)鐘(HSE)或是內(nèi)部高速時(shí)鐘(HSI)。這里選擇輸出為HSE,接著遇到鎖相環(huán)PLL,具有倍頻作用,在這里我們可以輸入倍頻因子PLLMUL,要是想超頻,就得在這個(gè)寄存器上做手腳啦。
經(jīng)過PLL的時(shí)鐘稱為PLLCLK。倍頻因子我們?cè)O(shè)定為9倍頻,也就是說,經(jīng)過PLL之后,我們的時(shí)鐘從原來8MHz的 HSE變?yōu)?2MHz的PLLCLK。緊接著又遇到了一個(gè)開關(guān)SW,經(jīng)過這個(gè)開關(guān)之后就是STM32的系統(tǒng)時(shí)鐘(SYSCLK)了。通過這個(gè)開關(guān),可以切換SYSCLK的時(shí)鐘源,可以選擇為HSI、PLLCLK、HSE。
我們選擇為PLLCLK時(shí)鐘,所以SYSCLK就為72MHz了。PLLCLK在輸入到SW前,還流向了USB預(yù)分頻器,這個(gè)分頻器輸出為USB外設(shè)的時(shí)鐘(USBCLK)?;氐絊YSCLK,SYSCLK經(jīng)過AHB預(yù)分頻器,分頻后再輸入到其它外設(shè)。
如輸出到稱為HCLK、FCLK的時(shí)鐘,還直接輸出到SDIO外設(shè)的SDIOCLK時(shí)鐘、存儲(chǔ)器控制器FSMC的FSMCCLK時(shí)鐘,和作為APB1、APB2的預(yù)分頻器的輸入端。GPIO外設(shè)是掛載在APB2總線上的, APB2的時(shí)鐘是APB2預(yù)分頻器的輸出,而APB2預(yù)分頻器的時(shí)鐘來源是AHB預(yù)分頻器。因此,把APB2預(yù)分頻器設(shè)置為不分頻,那么我們就可以得到GPIO外設(shè)的時(shí)鐘也等于HCLK,為72MHz了。
SYSCLK:系統(tǒng)時(shí)鐘,STM32大部分器件的時(shí)鐘來源。主要由AHB預(yù)分頻器分配到各個(gè)部件。
HCLK:由AHB預(yù)分頻器直接輸出得到,它是高速總線AHB的時(shí)鐘信號(hào),提供給存儲(chǔ)器,DMA及cortex內(nèi)核,是cortex內(nèi)核運(yùn)行的時(shí)鐘,cpu主頻就是這個(gè)信號(hào),它的大小與STM32運(yùn)算速度,數(shù)據(jù)存取速度密切相關(guān)。
FCLK:同樣由AHB預(yù)分頻器輸出得到,是內(nèi)核的“自由運(yùn)行時(shí)鐘”。“自由”表現(xiàn)在它不來自時(shí)鐘 HCLK,因此在HCLK時(shí)鐘停止時(shí) FCLK 也繼續(xù)運(yùn)行。它的存在,可以保證在處理器休眠時(shí),也能夠采樣到中斷和跟蹤休眠事件 ,它與HCLK互相同步。
PCLK1:外設(shè)時(shí)鐘,由APB1預(yù)分頻器輸出得到,最大頻率為36MHz,提供給掛載在APB1總線上的外設(shè),APB1總線上的外設(shè)如下:
PCLK2:外設(shè)時(shí)鐘,由APB2預(yù)分頻器輸出得到,最大頻率可為72MHz,提供給掛載在APB2總線上的外設(shè),APB2總線上的外設(shè)如下:End
限時(shí)免費(fèi)掃碼進(jìn)群,交流更多行業(yè)技術(shù)
歡迎轉(zhuǎn)發(fā)
每篇原創(chuàng)內(nèi)容都是我們用心血換來的知識(shí)精華,如果您覺得本文有價(jià)值,歡迎轉(zhuǎn)載分享;歡迎加入
如果您對(duì)單片機(jī)及嵌入式設(shè)計(jì)感興趣,歡迎加入我們的辯論探討,加我微信【xyzn3333】。
往期推薦【硬件設(shè)計(jì)】元器件選型——除了阻值,電阻的參數(shù)你還知道哪些?【硬件設(shè)計(jì)】——電路中0歐電阻的作用嗎?沒你想的那么簡(jiǎn)單硬件開發(fā)者之路之——電路穩(wěn)定性簡(jiǎn)單解釋硬件開發(fā)者之路之——保護(hù)電路系列之過流過壓過溫保護(hù)硬件設(shè)計(jì)之一——電源設(shè)計(jì)05:過電流能力硬件設(shè)計(jì)之一——電源設(shè)計(jì)04:濾波電路硬件設(shè)計(jì)之一——電源設(shè)計(jì)03:LDO設(shè)計(jì)硬件設(shè)計(jì)之一——電源設(shè)計(jì)02:DCDC設(shè)計(jì)硬件設(shè)計(jì)之一——電源設(shè)計(jì)01:電源防護(hù)
點(diǎn)個(gè)在看你最好看