上一章我們已經將STM32的開發環境搭建成功了,那么接下來我們就可以開始進行實際操作了。在進行實際操作之前我們需要提前准備好一些資料文檔,這些資料文檔大家可以在我的百度網盤 https://pan.baidu.com/s/1BejuAkvtU5KKlJEo3HAXMA 提取碼:dfs6 中進行下載。
很多同學在學習單片機的時候都有遇到過一個東西,那就是晶振。其實這個所謂的晶振全名叫做晶體振盪器,其作用是用於產生原始的時鍾頻率,晶振產生的頻率經過頻率發生器的放大或縮小后就成了計算機中各種不同的總線頻率 ,用於計算機中各個不同的外設工作,常用晶振的模樣如下圖所示:
一、什么是時鍾頻率
計算機是一個由各種集成電路和電子器件組成,每一塊集成電路中都集成了數以萬計的晶體管和其他電子元件。這樣一個十分龐大的系統,要使它能夠正常地工作,就必須有一個指揮者,對各部分的工作進行協調。各個元件的動作就是在這個指揮下按不同的先后順序完成自己的操作的,這個先后順序我們稱為時序。時序是計算機中一個非常重要的概念,如果時序出現錯誤,就會使系統發生故障,甚至造成死機。那么是誰來產生和控制這個操作時序呢?這就是“時鍾”。“時鍾”可以認為是計算機的“心臟”,如同人一樣,只有心臟在跳動,生命才能夠繼續。不要把計算機的“時鍾”等同於普通的時鍾,它實際上是由晶體振盪器產生的連續脈沖波,這些脈沖波的幅度和頻率是不變的,這種時鍾信號我們稱為外部時鍾。它們被送入 CPU 中,再形成 CPU 時鍾。其實總的來說晶振的作用就是給計算機提供一個時鍾信號(一個非常穩定的頻率信號),使單片機各內部組件同步工作,並且在和外部設備通信時是也能達到同步。就好像我們做廣播體操的時候 廣播上喊的節拍1234 2234 3234。。。。然后我們全部的同學就按照這個節奏進行一個個動作。節拍越快我們動作越快。節拍越慢我們動作的越慢。
二、STM32F407時鍾樹
系統時鍾的選擇是在啟動時進行,復位時內部 16MHZ 的 RC 振盪器被選為默認的 CPU時鍾,隨后可以選擇外部的、具失效監控的 4-26MHZ 時鍾;當檢測到外部時鍾失效時,它將被隔離,系統將自動地切換到內部的 RC 振盪器。在 STM32 中,有五個時鍾源,為 HSI、 HSE、 LSI、 LSE、 PLL,它們都是時鍾所提供的來源,具體如下圖所示:
2.1、HSI 是高速內部時鍾, RC 振盪器,頻率默認為 16MHz,可以從 STM32 時鍾樹中看到如下所示
2.2、HSE 是高速外部時鍾,可接石英/陶瓷諧振器,或者接外部時鍾源,頻率范圍為3MHz~25MHz,時鍾樹的截圖如下
2.3、LSI 是低速內部時鍾, RC 振盪器,頻率為 32kHz,可以用於驅動獨立看門狗和通過程序選擇驅動 RTC(RTC 用於從停機/待機模式下自動喚醒系統),時鍾樹的截圖如下
2.4、LSE 是低速外部時鍾,接頻率為 32.768kHz 的石英晶體,也可以被用來驅動 RTC,時鍾樹的截圖如下
2.5、PLL 為鎖相環輸出,其時鍾輸入源可選擇為 HSI 或者 HSE/等。但是其輸出頻率最大不得超過 120MHz,時鍾樹的截圖如下
三、STM32F407的時鍾樹深入分析
眾所周知,微控制器(處理器)在運行時必須要依賴周期性的時鍾脈沖來驅動,而我們的微控制器往往由一個外部晶體振盪器提供時鍾作為時鍾輸入源,之后經過一些分頻器或者倍頻器轉換為多個外部設備的運行時鍾,這種時鍾“能量”擴散流動的路徑就像是大樹的養分通過主干流向各個分支,因此常稱之為“時鍾樹”。
上述是STM32F407的外部時鍾怎樣由8M轉變為168M的系統時鍾以及各個外設頻率分析,以下開始介紹固件庫工程中對相應分頻器以及倍頻器的設置
四、溫馨小提示
1、STM32外設時鍾在復位之后全部處於關閉狀態,這么做的目的是為了降低功耗,當我們使用相關外設時務必先打開相應外設的時鍾 !!!
2、硬件設計時外部晶振應該盡量靠近芯片。
3、硬件連接外部晶振時一般需要外接兩個瓷片電容,這兩個瓷片電容的范圍一般在10~50pF之間,這兩個瓷片電容的作用是在晶體振盪器產生振盪時進行削減諧振保證頻率的穩定。
4、鎖相環(PLL)中的壓控振盪器(VCO)的作用保證鎖相環電路Q值穩定,而VCO的輸入頻率必須在1~2M之間,所以我們設置 M 值為8,由此得到PLL輸入時鍾頻率為1M。VCO的輸出時鍾頻率必須在192~432M之間,所以我們設置 N 值為336,由此得到PLL輸出時鍾為336M。
————————————————
版權聲明:本文為CSDN博主「孤鴻獨影」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_32588939/article/details/84192578