arm9s440处理器的定时器原理解读.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
arm9s440处理器的定时器原理解读

一、定时器的工作原理 ?在前面实验中,程序需要延时,我们是利用空循环语句来实现。这种方法的延时简单,但不是很精确。当需要精确延时时,就不能采用这种方法了。一般是利用定时器来实现。定时器的工作原理是在输入时钟MCLK的作用下,采用倒计时方式对减1计数器预先编程设置的计数初始值不断减1,减到0时一次定时过程结束。所产生的定时时间等于计数初值乘以MCLK时钟周期。 二、S3C2440的时钟源 ??在讲解之前,先介绍一下s3c2440时钟系统。一般来说,MCU的主时钟源主要是外部晶振或外部时钟,而用的最多的是外部晶振。在正确情况下,系统内所使用的时钟都是外部时钟源经过一定的处理得到的。由于外部时钟源的频率一般不能满足系统所需要的高频条件,所以往往需要PLL(锁相环)进行倍频处理。在s3c2440中,有2个不同的PLL,一个是MPLL,另一个是UPLL。 ??UPLL是给USB提供48MHz。在这里,我们主要介绍MPLL。外部时钟源经过MPLL处理后能够得到三个不同的系统时钟:FCLK、HCLK和PCLK。 ??????FCLK是主频时钟,400MHz,用于ARM920T内核; ??????HCLK用于AHB总线设备,100MHz,如ARM920T,内存控制,中断控制,LCD控制,DMA以及USB主模块; ??????PCLK用于APB总线设备,50MHz,如外围设备的看门狗,IIS,I2C,PWM,MMC接口,ADC,UART,GPIO,RTC以及SPI。 ??这三个系统时钟(FCLK、HCLK和PCLK)是有一定的比例关系,这种关系是通过寄存器CLKDIVN中的HDIVN位和PDIVN位来控制的,因此我们只要知道了FCLK,再通过这两位的控制,就能确定HCLK和PCLK。 ??而FCLK是如何得到的呢?它是通过输入时钟(即外部时钟源)的频率,经过一个计算公式得到的,这个计算公式还需要三个参数(MDIV、PDIV、SDIV),而这三个参数是经过寄存器MPLLCON配置得到的。 假如我们想让FCLK=400MHz,那么这三个参数该如何取值呢? MDIV=92 PDIV=1 SDIV=1 经过下面的计算得出: m=(MDIV+8)=92+8=100 p=(PDIV+2)=1+2=3 s=SDIV=1 FCLK=(2*m*Fin)/(p*2s)=(2*100*12)/(3*2)=400M 从上面这个图我们可以发现,MDIV、PDIV、SDIV这三个倍频因子,分别位于MPLLCON寄存器的[19:12],[9:4],[1:0],配合上面的经典值。 rMPLLCON = (9212)|(14)|(10);?? //92的十六进制是5C ????? 从上面这个图上我们可以发现,三星公司建议的一些经典的参数值,我们看到当Input Frequency取12MHz的时候,Output Frequency输出405MHz(接近400MHz),此时MDIV取0X7F,PDIV取0X02,SDIV取0x1。 ???? 即rMPLLCON = (0x7f12)|(24)|(10);?? 这样FCLK=405MHz就设置好啦。 ???????????除了FCLK我们还经常用到HCLK、PCLK这二个时钟,我们该如何由FCLK获得这二个时钟频率呢,那就是通过CLKDIVN和CAMDIVN分频寄存器的设置啦。 ? 从上面二个图中我们可以发现,如果我们想要FCLK:HCLK:PCLK=1:4:8的话,若主频FCLK是400MHz,如果按照1:4:8的设置,可以先设置CLKDIVN为0101,然后设置CAMDIVN的第9位为0(不设置的时候该位默认为0),此时HCLK是100MHz,PCLK是50MHz。 FCLK HCLK PCLK设置比例 ??最后,我们用最清晰的线路来绘制一下时钟的产生过程: ??外部时钟源→通过寄存器MPLLCON得到FCLK→再通过寄存器CLKDIVN得到HCLK和PCLK。 ?? S3C2440定时器 S3C2440处理器内部集成了定时器0-定时器4共5个16位的定时器,每个可选择中断或DMA方式工作。5个定时器的主要区别在于:定时器0~3有脉宽调制功能(PWM);定时器4是一个内部定时器,没有输出引脚;定时器0和定时器1有一个用于大电流设备的死区(DEAD ZONE)产生器,用于电机等感性负载。其它功能是相同的。 可编程定时器的主要作用是对频率高的输入时钟进行分频来获得频率较低的输出信号,并且利用输出信号每个周期的边界触发中断,实现处理器的定时事件处理功能。S3C2440的各定时器通过三级分频结构实现对输入时钟的分频。 (1)首先经过的是一个8位的预分频器,可设置的最大分频值为

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档