总结C51、STM32和S3C2440的时钟体系和定时器
2018-07-21 来源:eefocus
/*
名称:总结C51、STM32和S3C2440的时钟体系和定时器
说明:对于C51单片机来说,其谈不上什么时钟体系。片上运行的所有东西都靠一个时钟脉冲提供–外部晶振。
对于STM32来说,其时钟体系比较复杂。为了达到降低能耗的目的,再设计STM32时,其厂商特地设计了一个STM32的时钟树。就连最简单的点亮一个LED灯,都必须配置其时钟树,再打开对应的时钟开关。
在这里简单介绍一些STM32的时钟树的主要部分:
对于这个复杂的时钟树,它的来源可以为外部高速时钟、外部低速时钟、内部低速时钟、内部高速时钟(HSE、HSI、LSI、LSE)。当然,具体选择哪个需要根据需要。在这里选择一个主要的来讲:就是外部高速时钟(HSE)。然后,外部高速时钟经过锁相环(PLL)之后得到PLLCLK。再然后经过选择成为系统时(SYSCLK)系统时钟最大为72MHz。系统时钟一般经过分频之后,就输送给各个外设,就是接下来的步骤,即系统时钟经过AHB预分频得到APB总线时钟HCLK。再再然后,HCLK经过APB1分频得到PCLK1,以后输送给APB1外设(一些低速外设)。HCLK经过APB2分频得到PCLK2,以后输送给APB2外设(一些高速设备)。
基本的流程图为:HSE->PLLCLK->SYSCLK->HCLK->PCLK1(或PCLK2)。(结合STM32时钟树看更容易理解。)
这么复杂的时钟树,对于一些不用的设备就可以关闭其时钟,对于一些低速的设备提供低速的时钟信号,这样也就达到了节能的目的。也因为这个,我们在使用某个外设的时候,一般需要对应的打开其外设的时钟信号(默认是关闭的),哪怕只是点亮一个小小的LED灯。
对于S3C2440来说,它的时钟体系要比C51要复杂,但对于STM32来说,是简单不少了。简单说来,它有3种时钟:FCLK、HCLK、PCLK。其中FCLK用于CPU内核;HCLK用于AHB总线上的高速设备;PCLK用于APB总线上的低速设备。当系统刚上电时,FCLK等于外部输入的时钟(一般比较低)。然后然后可以通过软件启动MPLL(锁相环倍频)。倍频之后FCLK就变为倍频之后的时钟信号了。再然后,可以通过CLKDIVN寄存器设置FCLK、HCLK、PCLK的比例。时钟配置就结束了。是不是相对于STM32的时钟树要简单多了。对于具体的外设来说,也没有什么打开时钟、关闭时钟之说,因为据我估计这个时钟玩意一直是开启的。
再来总结下这三个芯片的定时器:
三个芯片定时器个性已经在以前的博客中说了。
共性嘛,现在想想,说起来一句话,都是对脉冲的计数。不同的是,高级一点的芯片,在这个计数基础上加了一些其他的功能(如PWM,输入捕获等等)。
*/