S3C2440時鐘體系筆記

2022-07-25 19:48:17 字數 2538 閱讀 7537

s3c2440的主時鐘源可以是外部諧振器(xtipll),或者外部輸入時鐘(extclk),經過鎖相環mpll、upll產生高頻時鐘訊號,並經由分配傳輸給ahb匯流排,apb匯流排,usb裝置,以及核心使用。其中upll是usb專用的pll。以下是時鐘體系的總體框架:

時鐘控制邏輯的主要內容為時鐘的開啟、配置過程。首先是時鐘的上電開啟時序:

上圖來自於晶元手冊,是時鐘的上電開啟過程,經上電與復位,諧振器開始輸入訊號,此時pll根據預設配置啟動,進入locktime,由於上電後pll工作不穩定,其輸出訊號並不會接入fclk等,而是接入諧振器輸入頻率訊號,只有在軟體配置pll後才會接入到fclk等,即使想要使用pll預設配置,也要用軟體重新配置一下。配置pll即配置pll control register,配置完成後,pll會自動進入鎖定狀態,此時fclk等保持一段低電平,之後接入修改後的時鐘訊號。

圍繞著時鐘裝置,s3c2440的工作模式分為normal mode、slow mode、idle mode、sleep mode,屬於power management block。

normal mode:該模式下,允許核心和所有外設使用對應的時鐘。

slow mode:non-pll模式,鎖相環關閉,晶元工作在外部時鐘下,頻率取決於外部時鐘。

idle mode:僅斷開核心的工作時鐘,外設可正常工作,中斷可喚醒。

sleep mode:休眠狀態,核心和外設均斷開時鐘,時鐘僅連線喚醒邏輯,使用該模式需要兩個獨立的時鐘源,其中乙個要保持喚醒程式始終活躍,以便喚醒cpu。

下圖為power management block在時鐘體系中的定位,可以看到,最終的fclk等輸出時鐘訊號需要power management的配合。

模式切換:以下是晶元手冊中對於模式切換的**:

其中sleep mode以及idle mode需要通過中斷來返回normal mode,著重記錄normal與slow模式間的切換問題:normal==>slow:slowmode有專門的暫存器(clock slow  control (clkslow) register)用於開啟、配置和關閉,從normal模式轉換到slow模式時,需要首先配置slow_bit再配置mpll_off關閉mpll,這時轉換為slow模式,可以通過配置該暫存器的slow_val來控制分頻,如下圖:

其他模式可以參考晶元手冊,當然我也是搬運工。

1、在normal模式下,修改pms更改pll配置,當然這會使pll重新進入loadtime,在此期間fclk等持續低電平。

2、在normal模式下,臨時開啟slow模式,並在slow期間關閉pll,這期間fclk等以slow模式下的頻率輸出,可以更改pll配置而不至於使核心和外設停止工作。

pll的locktime由該暫存器設定。

2、pll control register (mpllcon & upllcon)

對應上文pms,可以參照一些經典值來設定pll輸出的頻率。

3、clock control register (clkcon)

對應外設、核心的時鐘使能等。

4、clock slow control (clkslow) register

slowmode的控制暫存器,可以配置slow_val,可以使能slowbit位,以及開關pll。

5、clock divider control (clkdivn) register

配置分頻因子。

6、camera clock divider (camdivn) register

本文基本搬運自s3c2440auser's manualrevision 1.3  by samsung !

ARM裸機學習一 S3C2440的時鐘體系

s3c2440的系統時鐘圖如下 s3c2440a的主時鐘源由外部時鐘 extclk 或者外部晶振 xtipll 提供,輸入時鐘源由模式控制引腳om3和om2控制選擇,在復位訊號的上公升沿參考om3和om2的引腳將om 3 2 的狀態在內部鎖定 大致過程是 經過om3和om2引腳選擇的外部時鐘進入mp...

S3C2440時鐘描述

1 上電幾毫秒後,晶振輸出穩定,fclk 晶振頻率,nreset訊號恢復高電平後,cpu開始執行指令。2 我們可以在程式開頭啟動mpll,在設定mpll的幾個暫存器後,需要等待一段時間 lock time mpll的輸出才穩定。在這段時間 lock time 內,fclk停振,cpu停止工作。loc...

S3C2440 時鐘計算

s3c2440有兩個pll phase locked loop 乙個是mpll,乙個是upll。mpll用於cpu及其他外圍器件,upll用於usb。s3c2440a 中的時鐘控制邏輯可以產生必須的時鐘訊號,包括cpu 的fclk,ahb 匯流排外設的hclk 以及 apb 匯流排外設的pclk。s...