我之前做的实验中,好多都不知道那个pclk是怎么出来的~~我还纳闷的~~呵呵,这篇就详细介绍了我之前的那个大漏洞~~
这篇虽然说是篇介绍,但是ARM7里面的频率还是很重要的,尤其是UART~~
很多人都说FIFO是个大重点~~
在LPC210X系列的单片机中,IIC、SPI、UART、PWM、定时/计数器还有就是在Startup.s文件里的初始化频率等等都是有关频率的~~
所以就想把我现在用到的频率的相关知识总结一下~~
由于前面已经介绍过PLL(锁相环),这里也就不说了~~
不过可以参考一下PLL的介绍:
http://blog.sina.com.cn/s/blog_7ec8fc2c01013b5j.html
ARM7系列的相关频率的介绍:
这里首先介绍一下存储器的映射,之所以要介绍它,可能都会认为与这些频率有什么关系?!
但是不然,这里的VPB和AHB(对于AHB我还是不太理解,所以我也就不介绍了~~重点就是VPB了~~)以我个人的理解来说,他们的频率是不一样的,VPB是有个与外设有关的频率(看下图的VPB存储器的映射),要有专门的寄存器控制!!就是VPBDIV这个寄存器,会在后面专门介绍的~~
然后微控制器又有一个自己的是时钟~~我猜应该是应用在SRAM或者Flash这些东西吧~~
系统存储器映射:
显然从VPB外设的映射可以看出,VPB区域有着定时器、UART、PWM、IIC、SPI等等外设相关的寄存器来控制和检测外设的状态改变,这时就需要用到频率了~~
频率从哪里来呢(这里我主要说在开启PLL锁相环时的频率的情况)~~
1、Fosc
这个就比较简单了,它就是晶振或者外部时钟源~~
范围:10~25MHz
2、Fcco
PLL电流控制振荡器的频率(这个寄存器我感觉没什么用,具体我也不知道有什么用~~)
范围:156~320MHz
3、cclk
PLL输出频率,也就是处理器的时钟频率
这里我也不想介绍,因为在PLL那一节已经介绍过了,请看:
http://blog.sina.com.cn/s/blog_7ec8fc2c01013b5j.html
然后我就举个例子(就是拿Keil 4中的Startup.s文件中的设置来举例的~~):
系统设计需要Fosc=12MHz,cclk=60MHz。
依照这个要求,M=cclk/Fosc=60/12=5。
因此,将M-1=4写入PLLCFG[4:0]。
P值可由P=Fcco/(cclk*2)得出,但是Fcco必须在156~320MHz之间内。
假设Fcco最低频率为156MHz,则P=156/(2*60)=1.3;若Fcco为最高频率320MHz,则P=320/(2*60)=2.67。
由此可知满足Fcco最低和最高频率要求的P值只能是2。
因此,PLLCFG[6:5]=01。
好了,上面的就是Keil中的启动文件的关于上面三个频率的介绍~~
4、pclk
外设器件所使用的时钟~~
正如上图所示:一个是处理器时钟(cclk),一个是VPB时钟(pclk),这两个才是时钟里面咱们真正用到的~~
控制pclk的正是VPB分频器~~
下面就介绍一下VPB分频器:
~~
至于AHB~~没有头绪~~是不是软件中断用的,但是跟VPB又有什么关系呢~~
等以后用到了~~再说吧~~
上一篇:ARM7单片机(学习ing)—(七)、脉宽调制PWM—02
下一篇:ARM7单片机(学习ing)—(七)、脉宽调制PWM—01
推荐阅读最新更新时间:2024-03-16 15:34