ARM9 mini2451裸机学习——裸机时钟
来源:互联网 发布:买水果的软件 编辑:程序博客网 时间:2024/06/06 20:43
MPLL:main PLL 主锁相环,和系统相关
EPLL:extra PLL 产生特殊功能的模块时钟
MPLL:ARMCLK(533Mhz),HCLK(800/6=133.3M),DDRCLK,SSMCLK,PCLK(66M)
ARMCLK(内核时钟,主频)
HCLK 用在AHB总线(总线时钟,包括USB时钟)
PCLK 用在APB总线(I/O接口时钟)
系统倍频前,S3C2451运行时钟是12m(外部输入晶振)
倍频最高800M
时钟初始化步骤:
1) 设置锁相环(MPLLCON),设置MPLLout频率
2) 设置分频(CLKDIV0),共需设置4项,分别为 ARMDIV, PREDIV, PCLKDIV, HCLKDIV
3) 设置锁定时间(LOCKCON0),设置锁定时间
4) 设置时钟源(CLKSRC),选择MPLL输出
1) 设置锁相环(MPLLCON),设置MPLLout频率
从Datasheet查的MPLLON的地址
查表,根据需要的到的频率,得到MDIV,PDIV,SDIV的参数
2) 设置分频(CLKDIV0),共需设置4项,分别为 ARMDIV, PREDIV, PCLKDIV, HCLKDIV
查得CLKDIV0的地址
1.设置ARMCLK (内核时钟,主频)
ARMCLK= MPLLout(总频率 800m)/ARM ratio
其中ARMCLK ratio = ARMDIV + 1
2.设置HCLK(总线时钟,包括USB时钟)
HCLK= MPLLout / HCLK ratio
其中HCLK ratio = (PREDIV + 1) *(HCLKDIV + 1)
3.设置PCLK (I/O接口时钟)
PCLK= HCLK 或HCLK/2
3) 设置锁定时间(LOCKCON0),设置锁定时间
锁定时间 t = (1/12M)* 0xffff
锁定时间约为5.46ms
4) 设置时钟源(CLKSRC),选择MPLL输出
即时钟开不开倍频,1:开倍频(800m)0:不开(12m)
#define LOCKCON0 (*(volatile unsignedlong*)0x4C000000)#define MPLLCON (*(volatile unsigned long*)0x4C000010)#define CLKSRC (*(volatile unsigned long*)0x4C000020)#define CLKDIV0 (*(volatile unsigned long*)0x4C000024) #define MPLL_EN 0#define MDIV 400#define PDIV 3#define SDIV 1 #defineARMDIV 1#define PREDIV 2#define HCLKDIV 1#define PCLKDIV 1 #define SELMPLL 1 void clock_init(){ MPLLCON= (MPLL_EN << 24) | (MDIV << 14) | (PDIV << 5) | (SDIV); //设置MPLLout = 800M CLKDIV0= (ARMDIV << 9) | (PREDIV << 4) | (HCLKDIV) | (PCLKDIV << 2);//设置分频 LOCKCON0= 0Xffff; //锁定时间约为5.46ms CLKSRC= (SELMPLL << 4);//设置时钟源}
- ARM9 mini2451裸机学习——裸机时钟
- ARM9 mini2451裸机学习——LCD学习(1)
- ARM9 mini2451裸机学习——LCD驱动学习 2
- ARM9 mini2451裸机学习——RTC驱动设置
- ARM9 mini2451裸机学习——UART驱动学习和整理
- ARM9 mini2451裸机学习——NAND flash驱动学习 1
- ARM9 mini2451裸机学习——NAND flash驱动学习 2
- s3c2440 ARM9 裸机驱动第二篇—2440系统时钟
- 裸机系列——2440时钟
- 裸机系列——2440实时时钟
- s3c2440 ARM9 裸机驱动第三篇—定时器
- ARM9裸机之GPIO
- OK6410裸机程序(二)——系统时钟
- Exynos4412裸机开发 —— RTC 实时时钟单元
- Exynos4412裸机开发 —— RTC 实时时钟单元
- arm9裸机开发之蜂鸣器
- ARM9外部中断裸机实验
- s3c6410 裸机----时钟
- Centos6.5下安装mysql5.6
- 最大熵模型(第二次总结)
- informix数据库 java 增删改查
- RadioGroup
- mysql如何判断指定字段数据不重复
- ARM9 mini2451裸机学习——裸机时钟
- Mapped Statements collection does not contain value for 解决方法
- T树索引的学习与实现(一)
- RMI 之 简单的 HelloWorld 实现(二)
- iOS-上传 包的时候 提示 Redundant binary upload
- IO模式 select、poll、epoll详解
- HTML文字与段落
- leaflet 地图画圆
- css垂直居中的方法