时钟一直是CPU的核心,如果没有优秀的时钟系统,MCU的功耗、运行速度都会受到不小的影响。下面就来看看 R7F0C802的时钟系统。
首先,整个芯片包含两个时钟系统:高速片上时钟和低速的片上时钟。高速片上时钟是系统的主时钟,并且该时钟与用户的配置和外部电压是很有关系的。下图说明了该主时钟的种类和对应的关系。
而对于片上仅仅为15Khz的低速时钟,系统默认其就是为看门狗使用的,不能作为其它用途。下图是系统时钟的总体结构图,
可以看到高速片上时钟与低速片上时钟基本没有什么关系,而高速的片上时钟出来的信号直接供给蜂鸣器引脚输出,不需要任何控制,而对于定时器、串行接口、AD转换的时钟则也依赖于这个时钟。
R7F0C802的时钟寄存器比较简单明了。其中最重要的寄存器有以下两个个:
外围允许寄存器0 (PER0)
高速片上振荡器频率选择寄存器(HOCODIV)
它分别是用来控制打开哪个外设以及当前CPU的主时钟频率选择。
下图给出了时钟状态转换图。
实际上,在程序中只需要更改HOCODIV寄存器的值就可以改变其运行频率了。
HOCODIV = 0x01; //使得CPU运行在20M的速度
OR
HOCODIV = 0x03; //使得CPU运行在5M的速度