S3C2440时钟详解
来源:互联网 发布:手机调整图片尺寸软件 编辑:程序博客网 时间:2024/04/29 22:25
S3C2440的时钟
ADS1.2中关于时钟的C代码:
ChangeMPllValue((mpll_val>>12)&0xff, (mpll_val>>4)&0x3f, mpll_val&3);
ChangeClockDivider(key, 12);
1)FLCK、HCLK和PCLK的关系
S3C2440有三个时钟FLCK、HCLK和PCLK。s3C2440官方手册上说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。
现代的CPU基本上都使用了比主频低的多的时钟输入,在CPU内部使用锁相环进行倍频。对于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就是用来设置倍频因子的。理论上,你可以通过设置该寄存器来实现不同的频率,然而,由于实际存在的各种约束关系,设置一个适当的频率并不容易,手册上列出了一些常用频率的表格,例如,假设输入时钟FIN=16.9344M,MDIV=110, PDIV=3, SDIV=1,利用上面的公式,FCLK=2*16.9344*(110+8)/((2+3)*2)=399.65。
3)关于USB时钟
S3C2440有两个锁相环,一个主锁相环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的关系。USB时钟那里,晶振通过设置UPLLCON进行倍频得到UPLL,然后UPLL通过设置CLKDIVN的第三位DIVN_UPLL 进行分频得到UCLK 给USB提供时钟,USB时钟频率必须为48MHZ,所以在设置UPLLCON和CLKDIVN这两个寄存器的时候要让他们最后得到的UCLK的结果为48MHZ,一般情况下让UPLL的值为48MHZ或96MHZ,所以在设置CLKDIVN这个寄存器的时候就对它不分频或2分频来得到48MHZ。
- s3c2440的时钟详解
- S3C2440--时钟详解
- s3c2440的时钟详解
- s3c2440的时钟详解
- S3C2440时钟详解
- s3c2440的时钟详解
- s3c2440的时钟详解
- S3C2440时钟系统详解
- s3c2440的时钟详解
- S3C2440-时钟
- S3C2440的时钟设定
- s3c2440实时时钟中断
- s3c2440时钟文档
- S3C2440时钟详细描述
- S3C2440的时钟描述
- S3C2440时钟详细描述
- S3C2440时钟CLK总结
- S3C2440的时钟配置
- yuyv422转rgb565之.c文件
- 详解大端模式和小端模式
- 用select函数实现键盘响应
- yuyv422转rgb565之.h文件
- Java服务器端List对象转换为JSON对象并返回客户端实例
- S3C2440时钟详解
- Android获取系统时间
- 电子行业技术网站收集
- Adobe AIR中使用Flex连接Sqlite数据库(1)
- 每天坐着学习和工作 身体不太好了
- ASP.NET跨页面传值技巧总结
- 在PC/Windows 7上体验Android应用
- JavaScript计时器的工作原理
- Android 以singleInstance模式加载的Activity怎么接收以putExtra方式传递过来参数