<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > S5PV210(TQ210)學習筆記——系統(tǒng)時鐘和串口

          S5PV210(TQ210)學習筆記——系統(tǒng)時鐘和串口

          作者: 時間:2016-11-28 來源:網(wǎng)絡(luò) 收藏
          TQ210的系統(tǒng)時鐘配置和串口配置非常簡單,本文從TQ210的系統(tǒng)時鐘配置開始討論。

          TQ210的時鐘配置跟2440/6410的時鐘配置差不多,只是鎖相環(huán)的個數(shù)略有不同,配置步驟是一樣的。配置系統(tǒng)時鐘,無非要經(jīng)過以下幾個步驟:

          本文引用地址:http://www.ex-cimer.com/article/201611/322803.htm

          (1)設(shè)置系統(tǒng)PLL鎖定時間

          (2)配置PLL

          (3)配置各模塊分頻系數(shù)

          (4)切換到PLL時鐘

          簡單的看著四步似乎沒有頭緒,但是看到手冊中的“S5PV210時鐘生成線路圖”就可以理解了,現(xiàn)在截圖如下:

          上圖中無非就三種模塊,PLL、MUX和DIV,MUX控制時鐘源選擇,PLL負責生成PLL時鐘,DIV負責分頻。

          為了系統(tǒng)穩(wěn)定,在設(shè)計電路時我們一般不會使用太高頻率的晶振(避免高頻線間/層間干擾),但是,S5PV210的內(nèi)核需要的工作頻率很高(最高可以達到1G),這中情況下,我們通常是通過鎖相環(huán)(英文簡稱PLL)來對外部時鐘源進行倍頻,然后供內(nèi)核使用(在TQ210開發(fā)板上采用的是12M晶振),因此,S5PV210提供了4個PLL(具體四個PLL的用途可以自己閱讀手冊),分別是APLL、MPLL、EPLL和VPLL,通過配置S5PV210提供的鎖相環(huán)控制寄存可以設(shè)置鎖相環(huán)的倍頻系數(shù),使內(nèi)核工作頻率達到800M或者1G。需要注意的是PLL設(shè)置完成之后并不能立刻穩(wěn)定的工作,需要一個起振過程,在這段時間內(nèi)PLL的輸出頻率很不穩(wěn)定,因此,內(nèi)核的工作也是很不穩(wěn)定的,為了解決這個問題,S5PV210提供LOCK_TIME(鎖定時間)模塊(通過設(shè)置相應(yīng)的LOCK_TIME寄存器可以設(shè)定鎖定的時間長度),當鎖相環(huán)控制寄存器的值發(fā)生改變時,系統(tǒng)會鎖定內(nèi)核,鎖定內(nèi)核時CPU不工作,此時鎖定模塊會根據(jù)LOCK_TIME設(shè)定的值進行計時,計時完成后CPU才會使用PLL提供的時鐘信號工作。

          默認狀態(tài)下內(nèi)核使用外部時鐘源提供的時鐘,配置好PLL后需要設(shè)置相應(yīng)的MUX,使內(nèi)核在PLL提供的時鐘信號下工作。從上面的時鐘生成線路圖中還可以看到很多MUX,我們可以根據(jù)實際要求進行配置。注意,選通PLL的MUX應(yīng)該在設(shè)置完分頻之后配置。

          內(nèi)核可以工作在1G的時鐘信號下,而其他設(shè)備工作頻率較低,因此,需要根據(jù)實際要求進行分頻,分頻的值并不是隨意的,應(yīng)該根據(jù)手冊上提供的參考值進行配置,以下是各模塊的最高工作頻率:

          這樣,配置完P(guān)LL和分頻之后選通PLL,使CPU在高頻模式下工作。

          以上S5PV210的系統(tǒng)時鐘配置邏輯,可能說了這么多您也很難理解,這時,您應(yīng)該參考代碼、手冊和本文進行理解。S5PV210系統(tǒng)時鐘配置的代碼很多,這里我就不貼出來了,下面,我們討論一下S5PV210的串口部分。

          S5PV210的串口配置比起系統(tǒng)時鐘來講更為簡單。學習串口應(yīng)該先了解下串口的工作原理,認識一下串口,具體的工作原理可以閱讀手冊的串口部分,需要知道串口的相關(guān)配置參數(shù),如波特率、數(shù)據(jù)位、停止位、校驗位等,流控制相關(guān)的也可以看看,理解后自行配置一下,我們這里只討論下串口的配置,為了簡單起見,我們以非FIFO模式為例進行討論。

          直接閱讀手冊的寄存器控制部分,第一個寄存器便是ULCON。ULCON可以配置數(shù)據(jù)位長度、停止位長度、教研模式和紅外模式,如果需要設(shè)置為8N1,非紅外模式則可以將ULCON配置為0x3。

          第二個寄存器是UCON,我們只配置一下傳輸/接收模式和時鐘源即可,其他的采用默認方式,為了簡單,我們選擇“中斷或查詢模式”,以PCLK為時鐘源,因此,可以配置UCON為0x5|(1<<10)。

          我們使用非FIFO模式,可以不設(shè)置UFCON寄存器。

          UMCON是流控制相關(guān)的,我們也不作配置。

          接下來的四個STAT寄存器是表征串口工作狀態(tài)的,無需配置。

          接下來的UTXH是發(fā)送緩沖區(qū)寄存器和URXH是接收緩沖區(qū)寄存器。

          UBRDIV和UDIVSLOT是配置串口波特率的,算法也比較簡單,手冊上提供了三個約束公式:

          DIV_VAL = UBRDIVn + (num of 1s UDIVSLOTn)/16

          DIV_VAL = (PCLK/(bps X 16))-1

          或者

          DIV_VAL = (SCLK_UART / (bps X 16)) - 1

          我們選擇PCLK作為串口工作時鐘源,PCLK的頻率為66.5M,如果我們要設(shè)置串口波特率為115200則可以如下計算:

          DIV_VAL = (66.5 X 10^6 / (115200 X 16)) - 1 = 35.07,故UBRDIV應(yīng)該設(shè)置為35,

          另外,0.07*16 + 1 = 2,所以UDIVSLOT中應(yīng)該有兩個1,故可以設(shè)置為0x3,當然也可以是0x88等,只要有兩個1位就可以。

          到這里,串口就配置好了,還是比較簡單的,您配置完后還可以自己配置下FIFO和流控制,學完中斷和DMA之后還可以配置為中斷或者DMA模式,這里就不多說了。代碼比較簡單,網(wǎng)上的例子也比較多,我就不上傳了。



          關(guān)鍵詞: S5PV210系統(tǒng)時鐘串

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();