總結C51、STM32和S3C2440的時鐘體系和定時器

/*
名稱:總結C51、STM32和S3C2440的時鐘體系和定時器
說明:對於C51單片機來說,其談不上什麼時鐘體系。片上運行的所有東西都靠一個時鐘脈衝提供–外部晶振。
對於STM32來說,其時鐘體系比較複雜。爲了達到降低能耗的目的,再設計STM32時,其廠商特地設計了一個STM32的時鐘樹。就連最簡單的點亮一個LED燈,都必須配置其時鐘樹,再打開對應的時鐘開關。

在這裏簡單介紹一些STM32的時鐘樹的主要部分:
時鐘樹

對於這個複雜的時鐘樹,它的來源可以爲外部高速時鐘、外部低速時鐘、內部低速時鐘、內部高速時鐘(HSE、HSI、LSI、LSE)。當然,具體選擇哪個需要根據需要。在這裏選擇一個主要的來講:就是外部高速時鐘(HSE)。然後,外部高速時鐘經過鎖相環(PLL)之後得到PLLCLK。再然後經過選擇成爲系統時(SYSCLK)系統時鐘最大爲72MHz。系統時鐘一般經過分頻之後,就輸送給各個外設,就是接下來的步驟,即系統時鐘經過AHB預分頻得到APB總線時鐘HCLK。再再然後,HCLK經過APB1分頻得到PCLK1,以後輸送給APB1外設(一些低速外設)。HCLK經過APB2分頻得到PCLK2,以後輸送給APB2外設(一些高速設備)。

基本的流程圖爲:HSE->PLLCLK->SYSCLK->HCLK->PCLK1(或PCLK2)。(結合STM32時鐘樹看更容易理解。)

這麼複雜的時鐘樹,對於一些不用的設備就可以關閉其時鐘,對於一些低速的設備提供低速的時鐘信號,這樣也就達到了節能的目的。也因爲這個,我們在使用某個外設的時候,一般需要對應的打開其外設的時鐘信號(默認是關閉的),哪怕只是點亮一個小小的LED燈。

對於S3C2440來說,它的時鐘體系要比C51要複雜,但對於STM32來說,是簡單不少了。簡單說來,它有3種時鐘:FCLK、HCLK、PCLK。其中FCLK用於CPU內核;HCLK用於AHB總線上的高速設備;PCLK用於APB總線上的低速設備。當系統剛上電時,FCLK等於外部輸入的時鐘(一般比較低)。然後然後可以通過軟件啓動MPLL(鎖相環倍頻)。倍頻之後FCLK就變爲倍頻之後的時鐘信號了。再然後,可以通過CLKDIVN寄存器設置FCLK、HCLK、PCLK的比例。時鐘配置就結束了。是不是相對於STM32的時鐘樹要簡單多了。對於具體的外設來說,也沒有什麼打開時鐘、關閉時鐘之說,因爲據我估計這個時鐘玩意一直是開啓的。

再來總結下這三個芯片的定時器:
三個芯片定時器個性已經在以前的博客中說了。
共性嘛,現在想想,說起來一句話,都是對脈衝的計數。不同的是,高級一點的芯片,在這個計數基礎上加了一些其他的功能(如PWM,輸入捕獲等等)。

*/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章