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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于S3C2440時鐘設置的理解

          關于S3C2440時鐘設置的理解

          作者: 時間:2016-11-11 來源:網絡 收藏
          關于S3C2440時鐘設置的理解

          1)FLCK、HCLK和PCLK的關系

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

          S3C2440有三個時鐘FLCK、HCLK和PCLK

          手冊上說P7-8寫到:

          FCLK is used by ARM920T,內核時鐘,主頻。

          HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD controller, the DMA and USB host block.也就是總線時鐘,包括USB時鐘。

          PCLK is used for APB bus, which is used by the peripherals such as WDT, IIS, I2C, PWM timer, MMC interface,ADC, UART, GPIO, RTC and SPI.即IO接口時鐘,例如串口的時鐘設置就是從PCLK來的;

          那么這三個時鐘是什么關系呢?

          這三個時鐘通常設置為1:4:8,1:3:6的分頻關系,也就說如果主頻FLCK是400MHz,按照1:4:8的設置,那么HLCK是100MHz,PLCK是50MHz

          寄存器CLKDIVN表明并設置了這三個時鐘的關系

          如果CLKDIVN設置為0x5,那么比例即為1:4:8,前提是CAMDIVN[9]為0.

          2)輸入時鐘FIN與主頻FCLK的關系

          現代的CPU基本上都使用了比主頻低的多的時鐘輸入,在CPU內部使用鎖相環(huán)進行倍頻。對于S3C2440,常用的輸入時鐘FIN有兩種:12MHz和16.9344MHz,那么CPU是如何將FIN倍頻為FCLK的呢?

          S3C2440使用了三個倍頻因子MDIV、PDIV和SDIV來設置將FIN倍頻為MPLL,也就是FCLK

          MPLL=(2*m*FIN)/(p*2^s) where m=(MDIV+8), p=(PDIV+2), s=SDIV

          寄存器MPLLCON就是用來設置倍頻因子的

          相應的對MPLLCON和UPLLCON的操作,C語言程序如下:

          void ChangeMPllValue(int mdiv,int pdiv,int sdiv)
          {
          rMPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;
          }

          void ChangeUPllValue(int mdiv,int pdiv,int sdiv)
          {
          rUPLLCON = (mdiv<<12) | (pdiv<<4) | sdiv;
          }

          對于MPLL和UPLL,賦值方式是相同的,不同的是預計算,如下:

          MPLL Control Register
          Mpll = (2 * m * Fin) / (p * 2s
          )
          m = (MDIV + 8), p = (PDIV + 2), s = SDIV
          UPLL Control Register
          Upll = (m * Fin) / (p * 2s
          )
          m = (MDIV + 8), p = (PDIV + 2), s = SDIV

          理論上,你可以通過設置該寄存器來實現不同的頻率,然而,由于實際存在的各種約束關系,設置一個適當的頻率并不容易,手冊上列出了一些常用頻率的表格,

          例如,假設輸入時鐘FIN=16.9344M,MDIV=110, PDIV=3, SDIV=1,

          利用上面的公式,FCLK=2*16.9344*(110+8)/((2+3)*2)=399.65

          3)關于USB時鐘

          S3C2440有兩個鎖相環(huán),一個主鎖相環(huán)MPLL提供給FCLK的,另外一個UPLL是提供給USB時鐘(48MHz)的,與MPLL一樣,UPLL的產生也是通過UPLLCON寄存器設置分頻因子得到,計算公式稍有不同:

          UPLL=(m*FIN)/(p*2^s) where m=(MDIV+8), p=(PDIV+2), s=SDIV,同樣,可以通過查表得到一個合適的值。

          最后值得一提的是,在CLKDIVN的第三位DIVN_UPLL用來設置USB時鐘UCLK和UPLL的關系,如果UPLL已經是48Mhz了,那么這一位應該設置為0,表示1:1的關系,否則是1:2的關系

          4)最后,給出我的BCNG2440開發(fā)板的時鐘設置

          FIN=16.9344

          MDIV:110 HDIV:3 SDIV:1,比例為1:4:8

          CLKDIVN: 5

          因此,FCLK=399.65MHZ HCLK=99.91MHZ PCLK=49.95MHZ



          關鍵詞: S3C2440時鐘設

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();