ARM裸机程序研究 - S3C2440时钟初始化
来源:互联网 发布:mac下载的系统在哪 编辑:程序博客网 时间:2024/06/11 00:00
2440内部的时钟主要有3个, FCLK, HCLK, PCLK。 FCLK 提供给ARM920T内核使用, HCLK主要提供给高速外设使用,如显示接口,内存控制器, PCLK提供给低速外设使用,如串口,SPI, GPIO 等。另外还有一个UCLK, 只提供给USB Host 和USB Device使用。
2440的时钟来源有两种,外部时钟和通过外接晶振提供时钟。时钟源的选择通过引脚OM2和OM3来决定。因此,在芯片上电的时刻,就已经确定了时钟源。典型的时钟源配置是外界一个12M的无源晶振。
时钟源确定后,下面就是进一步确定各个时钟得频率。2440内部有一个PLL来合成频率,该PLL称为MPLL。它利用前面选择的时钟源,合成需要得FCLK。然后FCLK经过分频就可以得到HCLK和PCLK。查阅2440的手册可知,FCLK的最高频率是400MHz, HCLK和PCLK的最高频率分别是136MHz和68MHz。FCLK,HCLK,PCLK间的有效分频比也可以查询2440的手册,并不是任意一个分频比都是有效的。
刚开始,我决定将FCLK设定在400MHz, FCLK:HCLK:PCLK的分频比为1:4:8。这样HCLK和PCLK分别运行在100MHz和50MHz。分频比还可以设置为1:3:6,这样,HCLK和PCLK则分别运行在133MHz和66MHz。不过刚开始,还是选择稍低点的频率。以免后面初始化SDRAM控制器时发生问题。等稍作稳定后,可以尝试调高频率。
频率决定后就可以开始实际的配置过程。其实很简单,就两个寄存器, MPLLCON和CLKDIVN。MPLLCON用来设置MPLL的输出频率,也就是FCLK。CLKDIVN用来设置FCLK,HCLK,PCLK的分频比。实际设置时,建议先设置CLKDIVN, 然后再设置MPLLCON。因为CLKDIVN的默认值是0x00000000,这样FCLK:HCLK:PCLK的比是1:1:1,如果将FCLK设置在400MHz,则HCLK和PCLK会超出其正常工作范围。
为了将分频比设置为1:4:8,查阅2440手册,知道要将CLKDIVN设置为0x00000005。至于MPLLCON,2440手册上有一个表,列出了在外接12MHz晶振得情况下,为了得到不同的频率需要得值。比如,为了得到400MHz的输出频率,则要将其值设为0x0007F021。
- ARM裸机程序研究 - S3C2440时钟初始化
- 【ARM】s3c2440裸机之RTC数字时钟
- ARM裸机程序研究
- ARM裸机程序研究
- 【OK6410裸机程序】时钟初始化
- S3C2440 裸机时钟RTC
- ARM裸机开发-bootloader-时钟初始化(ARM跑快了)
- ARM裸机程序研究 - 编译和链接
- ARM裸机程序研究 - 编译和链接
- ARM裸机程序研究 - 编译和链接
- ARM裸机程序研究 - 编译和链接
- ARM时钟 S3C2440
- S3C2440 RTC 裸机程序
- s3c2440 mmu 裸机程序
- 裸板程序记录之时钟初始化-s3c2440
- ARM裸机之系统时钟
- ARM裸机程序开发(十):C语言环境初始化
- s3c2440裸机程序之----LED
- Chap8:如何将java传递过来的jbyteArray转换成C/C++中的BYTE数组
- Hive安装
- 在Oracle官网下载Informatica PowerCenter .
- Engish good phases
- 安装Informatica PowerCenter 8.1.1服务器端,配置License Key,Connect string和character data movement mode .
- ARM裸机程序研究 - S3C2440时钟初始化
- HDU 3607 线段树+DP
- Chap5:使用JNI技术实现java程序调用第三方dll(c/c++)文件的功能
- 深入浅出SharePoint—嵌入SQL认证设计
- Oracle数据类型
- 动态规划法和贪心算法
- 关于使用jquery取得页面中选中的checkbox的实现
- 嵌入式Linux概念学习笔记
- SIGPIPE信号