查看: 3581|回復: 0
打印 上一主題 下一主題

教你如何設置S3C2440時(shí)鐘

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2013-11-11 16:35:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式



S3C2440 的時(shí)鐘設置時(shí)間:  
一個(gè)嵌入式系統中,晶振就像心臟。必須先確定晶振,設置好系統的時(shí)鐘,
WDT,UART,PWM,TIMER 等模塊才能正常工作。   

和51 系列單片機相比,S3C2440 的時(shí)鐘電路很復雜。   

首先通過(guò)引腳OM2,OM3 來(lái)選擇時(shí)鐘源。   



以TQ2440 開(kāi)發(fā)板為例,OM2,OM3 都接地,外接12M 晶振,主時(shí)鐘源和USB 時(shí)鐘源都是
外部晶振。   

S3C2440 具有2 個(gè)PLL(Phase Locked Loop:用來(lái)產(chǎn)生高頻的電路),一個(gè)是MPLL,  用于
產(chǎn)生FCLK,  HCLK,  PCLK 三種頻率,  這三種頻率分別有不同的用途:   


FCLK 是CPU 提供的時(shí)鐘信號,如果提到CPU 的主頻是400MHz,就是指的這個(gè)時(shí)鐘信號。   


HCLK 是為AHB 總線(xiàn)提供的時(shí)鐘信號,  Advanced High-performance Bus,主要用于高速
外設,比如內存控制器,中斷控制器,LCD 控制器,  DMA  以及USB host  。   


PCLK 是為APB 總線(xiàn)提供的時(shí)鐘信號,Advanced  Peripherals  Bus,主要用于低速外設,
比如WATCHDOG,IIS, I2C,  SDI/MMC, GPIO,RTC  ,UART,PWM,ADC and SPI 等等。   


另外一個(gè)是UPLL,專(zhuān)門(mén)用于驅動(dòng)USB host/Device。并且驅動(dòng)USB host/Device 的頻率必
須為48MHz。   



時(shí)鐘電路相關(guān)寄存器總共有7 個(gè),下面分別介紹。   

MPLLCON(0X4C00 0004)和UPLLCON(0X4C00 0008)   

這兩個(gè)寄存器用來(lái)設置主鎖相環(huán)產(chǎn)生的時(shí)鐘和USB 鎖相環(huán)產(chǎn)生的時(shí)鐘。   

MPLL=(2*m*Fin)/(p*2^s) UPLL=(m*Fin)/(p*2^s)   

其中m=(MDIV+8),p=(PDIV+2),s=SDIV   
P,M 范圍:1<=P<=62,1<=M<=248   


----------------------- Page 2-----------------------

注意:MDIV 【19:12】,PDIV 【9:4】,SDIV 【1:0】,當設置MPLL 和UPLL 值的時(shí)候,需要
先設置UPLL 再設置MPLL。   

例如:MPLLCON = (92<<12) | (1<<4) |(1);//FCLK=400M   
這里MDIV=92,PDIV=1,SDIV=1,那么m=100,p=3,s=1,且Fin=12M,所以FCLK=400M   



CLKCON(0X4C00  000C)  控制各種模塊如 SPI,IIC,UART  等的時(shí)鐘電路開(kāi)關(guān)以及系統的
SLEEP,IDLE 模式,以便降低系統功耗。默認值是全部時(shí)鐘電路打開(kāi),系統工作在正常模式。   



CLKSLOW(0X4C00  0010)用來(lái)選擇系統是否進(jìn)入慢模式,以及是否關(guān)閉MPLL 或UPLL,
和在慢模式下的分頻率。   



CLKDIVN(0X4C00  0014)和CAMDIVN(0X4C00  0018 照相機時(shí)鐘分割寄存器)兩個(gè)寄存器
配合來(lái)確定FCLK,HCLK,PCLK 的比例。   



LOCKTIME(0X4C00 0000)設置MPLL,UPLL 的鎖存時(shí)間,采用默認值0XFFFF FFFF,鎖存
時(shí)間各為300us。   

說(shuō)到鎖存時(shí)間,就要分析下S3C2440 的時(shí)鐘工作過(guò)程。   

在系統復位時(shí),晶振起振穩定后,PLL  開(kāi)始按照默認值開(kāi)始工作,但是在復位時(shí),PLL  工
作是不穩定的,所以 S3C2440                          用 FIN      (12M )作為 MPLL 。只到一個(gè)新的值寫(xiě)入
MPLLCON,UPLLCON,即使用戶(hù)不想改變復位后PLLCON 的默認值,仍然需要把這個(gè)默認
值寫(xiě)入PLLCON,寫(xiě)入值之后,系統會(huì )自動(dòng)插入一個(gè)PLL LOCK TIME,也就是LOCKTIME
寄存器中設置的300us。300us 后,PLL 就開(kāi)始正常工作。   
  深圳專(zhuān)業(yè)嵌入式ARM、Linux、單片機技術(shù)實(shí)訓。學(xué)習顧問(wèn)郭老師:QQ754634522
在系統正常工作時(shí),如果要改變FCLK,寫(xiě)入新值到MPLLCON 后,系統也會(huì )插入一個(gè)PLL  
LOCK TIME,300us 后FCLK 就變成新的頻率。  

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页