ARM9硬件接口学习之 CLOCK

原创 2011年01月11日 09:30:00
ARM9硬件接口学习之 CLOCK
 
 

S3C2410 CPU默认的工作主频为12MHz,使用PLL电路可以产生更高的主频供CPU及外围器件使用。S3C2410有两个PLLMPLLUPLLUPLL专用与USB设备。MPLL用于CPU及其他外围器件。

通过MPLL会产生三个部分的时钟频率:FCLKHCLKPLCKFCLK用于CPU核,HCLK用于AHB总线的设备(比如SDRAM)PCLK用于APB总线的设备(比如UART)。从时钟结构图中可以查看到使用不同时钟频率的硬件。

Figure 7-1. Clock Generator Block Diagram

 

(注:这里要注意从图中看出,Uart使用的是PCLK,后面Uart实验会用到)

 

下面介绍MPLL的启动流程:

(注:下面内容部分直接摘录自《s3c2410完全开发流程》,Clock部分写了非常好)

S3c2410 datasheet 224Figure 7-4. Power-On Reset Sequence展示了上电后MPLL启动的过程

 

 

请跟随FCLK的图像了解启动过程:

1、上电几毫秒后,晶振输出稳定,FCLK=晶振频率,nRESET信号恢复高电平后,

CPU开始执行指令。

2我们可以在程序开头启动MPLL,在设置MPLL的几个寄存器后,需要等待一段时间(Lock Time)MPLL的输出才稳定。在这段时间(Lock Time)内,FCLK停振,CPU停止工作。Lock Time的长短由寄存器LOCKTIME设定。

3Lock Time之后,MPLL输出正常,CPU工作在新的FCLK下。

 

设置S3c2410的时钟频率就是设置MPLL的几个寄存器:

1LOCKTIME:设为0x00ffffff

前面说过,MPLL启动后需要等待一段时间(Lock Time),使得其输出稳定。位[23:12]用于UPLL,位[11:0]用于MPLL使用确省值0x00ffffff即可。

2CLKDIVN:用来设置FCLK:HCLK:PCLK的比例关系,默认为1:1:1

这里值设为0x03,即FCLK:HCLK:PCLK=1:2:4

CLKDIVN不同的设置及对应的时钟比例关系如下图:

 

3MPLLCON:设为(0x5c << 12)|(0x04 << 4)|(0x00),即0x5c0040

对于MPLLCON寄存器,[19:12]MDIV[9:4]PDIV[1:0]SDIV。有如下计算公式:

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

其中: m = MDIV + 8, p = PDIV + 2

Fin 即默认输入的时钟频率12MHzMPLLCON设为0x5c0040,可以计算出FCLK=200MHz,再由CLKDIVN的设置可知:HCLK=100MHzPCLK=50MHz

 

 通常我们将如上时钟初始化的过程写成clock_init函数供其他函数调用,代码如下:

void clock_init(void)

{

        /*init clock*/

rLOCKTIME = 0xFFFFFF;

 

    /*设置FCLK:HCLK:PCLK=1:2:4,这样假设处理器主频为200M,HCLK50M,PCLK25MARM920T内核使用FCLK, 内存控制器,LCD控制器等使用HCLK,看门狗、串口等使用PCLK*/

rCLKDIVN  = 0x3;

 

    /* 设置时钟频率为200M*/

    rMPLLCON = 0x5c0040;

   

}

ARM9硬件接口学习专题

http://blog.chinaunix.net/space.php?uid=20643761&do=blog&id=1594808   ARM9硬件接口学习专题 (2008-01-26 02:...

ARM9硬件接口学习之 UART

在没有引入UART之前,由于没有OS,我们写程序烧到开发板内执行后,并不能在程序的运行过程中打印一些提示信息告诉我们程序究竟运行了如何或者提供接口让用户去控制程序的运行路径,最后也只能通过物理现象去判...

达芬奇平台DM644X(ARM9, Linux-2.6.10)BSP之clock.c分析

--------------------------------------------本文系本站原创,欢迎转载!转载请注明出处:http:// zhiqiang0071.cublog.cn --...

第9讲 ARM9 S3C2440处理器的硬件资源

ARM是嵌入式设计中的重要芯片,作为微处理器的一种,ARM公司独特的发展战略,使得ARM芯片的成本大大降低,为走进寻常百姓家扫清了障碍。他的处理能力与DSP,FPGA相比,各有特色。DSP在数字处理能...
  • chyMX
  • chyMX
  • 2016年01月28日 22:36
  • 1383

ARM9 2440硬件SPI驱动程序-NRF24L01

linux硬件SPI驱动程序 (NRF24L01)

嵌入式系统原理及接口技术 ARM9体系结构

一、ARM微处理器系列介绍1.1 ARM的版本号含义不同的体系结构对应着不同的指令集,ARM公司给这些在不同阶段体系结构中使用的指令集定义了版本号,版本号的名称为ARMvx(符号x代表数字,即1,2,...

ARM9 2440 硬件SPI驱动程序 NRF24L01

  • 2017年05月10日 22:34
  • 6KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ARM9硬件接口学习之 CLOCK
举报原因:
原因补充:

(最多只允许输入30个字)