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

          新聞中心

          S3C2443時(shí)鐘管理

          作者: 時(shí)間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
          S3C2443有兩個(gè)PLL用來產(chǎn)生內(nèi)部時(shí)鐘,分別是MPLL和EPLL,其中MPLL為包括ARM,AHB和APB的總體功能模塊產(chǎn)生內(nèi)部時(shí)鐘,而EPLL為比如是USB,I2S和camera等這些具體的模塊產(chǎn)生時(shí)鐘,我們可以通過軟件編程來控制這個(gè)兩個(gè)PLL的工作頻率,可以關(guān)閉和開啟內(nèi)部時(shí)鐘源來減少功耗

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

          1.MPLL和EPLL時(shí)鐘源的選擇

          從上圖可知主要的時(shí)鐘源來之外部晶振(XTI)或者外部時(shí)鐘(EXTCLK),時(shí)鐘產(chǎn)生器由MPLL和EPLL組成,這兩個(gè)PLL的作用是可以產(chǎn)生S3C2443所需要的高頻時(shí)鐘信號(hào)。由OM[0]來決定MPLL是選擇XTI還是EXTCLK來作為時(shí)鐘源,而OM[0]是由硬件設(shè)計(jì)來確定,下圖是我們項(xiàng)目OM[0]的設(shè)計(jì)部分:

          在此設(shè)計(jì)中,OM[0]=1,根據(jù)下表

          可知MPLL的時(shí)鐘源是由XTI提供,如下圖所示:

          由上面左圖可知EXTCLK是通過0R的電阻直接接地的,所以EPLL只能選擇XTI來作為EPLL的時(shí)鐘源的,再根據(jù)下圖:

          我們可知,CLKSRC[8]=0,CLKSRC[7]=X,這里X可以是0或者1,這是需要在startup.s中做相應(yīng)的設(shè)置的。

          2.PLL(phase-locked-loop)

          S3C2443的PLL主要由PFD(phase difference detector,相位差檢測器)、charge pump(電荷泵)、VCO(voltage controlled oscillator壓控振蕩器)和off-chip loop filter(外部環(huán)路濾波器)。

          PFD:又稱為相比比較器,它的作用是檢測輸入信號(hào)和輸出信號(hào)的相位差,并將檢測出的相位差信號(hào)轉(zhuǎn)換為電壓信號(hào)輸出。

          Charge pump:電荷泵轉(zhuǎn)變PFD的電壓輸出信號(hào)成一定比例的電壓值發(fā)送給VCO和off-chip loop filter。

          Off-chip loop filter:PFD輸出的電壓信號(hào),進(jìn)入charge pump后,可能會(huì)有高頻雜波,通過Off-chip loop filter 可以輸出VCO需要一個(gè)穩(wěn)定的電壓,在這里,Off-chip loop filter采用典型的RC低通濾波。

          VCO:輸出電壓進(jìn)入VCO,引起振蕩器 頻率的變化,壓控振蕩器的輸出頻率隨其輸入電壓的改變而改變,當(dāng)Fref和Fvco沒有差別的時(shí)候,電壓就會(huì)保持穩(wěn)定下來,PFD就停止輸出電壓信號(hào)給charge pump,這樣PLL系統(tǒng)時(shí)鐘就穩(wěn)定了。

          3.改變PLL設(shè)置

          S3C2443在平常的工作模式中,我們可以通過來寫PMS的值來改變PLL的輸出頻率,當(dāng)我們通過軟件來寫PMS的值時(shí),PLL的鎖存(lock time)被自動(dòng)插入,在這個(gè)lock time期間,PLL是沒有產(chǎn)生有效的時(shí)間給S3C2443的,在lock time過后,PLL才產(chǎn)生有效和穩(wěn)定的clock給SYSCLK,見下圖。

          PMS分別指的是PDIV、MDIV和SDIV,而PDIV是值PLL main divider value,MDIV是指PLL pre-divider value,SDIV是指PLL post-divider value,控制MPLL和EPLL時(shí)鐘的寄存器MPLLCON和EPLLCON否有這幾個(gè)值的定義。

          4.系統(tǒng)時(shí)鐘控制

          由下圖可知ARMCLK是ARM920T的內(nèi)核時(shí)鐘,也是S3C2443的CPU時(shí)鐘;HCLK是內(nèi)部AHB bus和比如是內(nèi)存控制器、中斷控制器、LCD控制器等外圍設(shè)備的基準(zhǔn)時(shí)鐘;PCLK是內(nèi)部APB bus和比如是WDT、IIS、I2C等外圍設(shè)備的基準(zhǔn)時(shí)鐘;DDRCLK是MDDR內(nèi)存的data strobe時(shí)鐘。

          4.1 MPLL的時(shí)鐘控制

          從上圖可知,MSysClk是ARMCLK、HCLK、PCLK、DDRCLK這些時(shí)鐘的基準(zhǔn)時(shí)鐘,而ARMCLK、HCLK、PCLK、DDRCLK這些時(shí)鐘到底有什么關(guān)系呢,通過對CLKDIVO控制寄存器的設(shè)置可以得到它們之間不同的比值關(guān)系,見下表

          4.2 EPLL的時(shí)鐘控制

          從上圖可知EPLL的時(shí)鐘ESYSCLK被用作不同的外圍控制器提供基準(zhǔn)時(shí)鐘,通過divider的分頻可以得到不同外圍控制所需要的時(shí)鐘,而這個(gè)分頻值是通過對CLKDIV1寄存器的配置來實(shí)現(xiàn)的,也可以通過編程SCLKCON寄存器來關(guān)閉或者開啟不同外圍控制器的時(shí)鐘。

          在stop和sleep模式,EPLL將被自動(dòng)關(guān)閉,在退出stop和sleep模式的時(shí)候,如果SCLKCON寄存器中相關(guān)位被使能的情況下,那么EPLL將為使能的外圍控制器產(chǎn)生時(shí)鐘。

          5. 上電復(fù)位PLL時(shí)鐘的啟動(dòng)流

          在電壓源提供所需要的電壓給系統(tǒng)上電復(fù)位后,晶體振蕩器在幾毫秒之內(nèi)起振,剛開始的時(shí)候MPLL和EPLL都是停止的。當(dāng)nRESET在晶振時(shí)鐘穩(wěn)定后釋放(由低電平變?yōu)楦唠娖?,PLL開始是使用PLL的輸入時(shí)鐘Fin作為SYSCLK時(shí)鐘的,系統(tǒng)上電復(fù)位后,必須通過軟件來配置MPLLCON和EPLLCON使用每個(gè)PLL,也即通過寫MPLLCON和EPLLCON的PDIV、MDIV和SDIV值,接著會(huì)自動(dòng)插入PLL的lock time,lock time之后,PLL的輸出時(shí)鐘Fout就是作為SYSCLK時(shí)鐘來使用了,這些動(dòng)作一般是在startup.s函數(shù)中初始化的,見下圖



          關(guān)鍵詞: S3C2443時(shí)鐘管

          評論


          技術(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); })();