ARM----时钟

时钟频率可以是由晶振提供的,我们需要高频率,但是外部接高的晶振会不稳定,所有使用PLL(锁相环)来放大频率。接下来就让我们学习用外部晶振提供的频率来配置时钟频率。

一.时钟源的选择

在这里我们选择外部晶振作为时钟源,通过查看芯片手册和原理图来看我们的时钟源。

这是手册上面,通过OM2和OM3的引脚的电位来设置时钟源。那我们去查看原理图。

通过原理图我们得知,OM2和OM3是连接的低电平也就是00,所以时钟源是晶振。

二。晶振的大小为12M,看原理图得知。

我们以

FCLK:400M

HCLK: 100 M

PCLK: 50M

这三个时钟频率分别对不同的区域提供,由芯片手册可以得到

那么具体的流程是怎么进行的呢?

看芯片手册就可以得到具体的步骤。

外部晶振提供12M频率,由MPLL来进行放大,具有放大多少怎么配置,由PDIV、MDIV、SDIV,来决定。

我们选择400M,那么MDIV, PDIV, SDIV分别配置为127、2、1。

具体配置方法为:

将MPLLCON寄存器的对应MDIV,PDIV,SDIV设置为127,2,1

复制代码
	MPLLCON = (127 << 12) | (2 << 4) | (1 << 0);

这里FCLK已经配置好了,那接下来就要配置HCLK和PCLK

由FCLK \ HCLK\ PCLK 的比例关系我们得知HDIVN PDIVN的具体配置;

这里可以得知HDIVN 配置为2, PDIVN配置为1。

那么怎么在寄存器中配置呢

这里可以得知具体的位数。

代码如下

复制代码
	CLKDIVN = (2 << 1) | (1 << 0);

这样我们就配置好了时钟的频率。

其实在配置的时候我们要先配置HCLK .PCLK,因为先配置FCLK的时候,频率太高,会烧坏后面的电路,所以先配置好分频,在区配置主频。

总结就是如下

1.通过芯片手册和原理图看时钟源是什么。

2.看时钟源的晶振具体大小为多少

3.确定FCLK,HCLK,PCLK的大小

4.由这三个的比例关系来看HDIVN 、PDIVN的值(用来配置HCLK和PCLK的大小)

5.由CLKDIV寄存器来配置HDIVN和PDIVN

6.由FCLK的大小来查手册看MDIV ,PDIV, SDIV的值(用来配置FCLK的大小)

7.MPLLCON来配置这三个的大小就完成了。

相关推荐
zlinear数据采集卡2 天前
数据采集卡从入门到精通(10):采样率与分辨率的核心关系——反比律、架构分布与过采样
arm开发·嵌入式硬件·算法·fpga开发·架构·开源
CIAS2 天前
uniontechos-server-20 1050 u2a pxe Server -x86 arm loongarch
arm开发
振南的单片机世界2 天前
推挽vs开漏:一个“强拉硬灌”,一个“只拉不管”
arm开发·stm32·单片机·嵌入式硬件
zlinear数据采集卡2 天前
数据采集卡从入门到精通(7):流水线型ADC——级级接力,高速与高精的平衡术
开发语言·arm开发·嵌入式硬件·fpga开发·c#
硅农程序猿3 天前
从需求到硅片| 一文讲清数字芯片设计流程
arm开发·硬件架构·risc-v
秋田君3 天前
QT_网络编程体系
网络·arm开发·qt
zlinear数据采集卡3 天前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
振南的单片机世界3 天前
SysTick硬核拆解:既是HAL_Delay的“心跳”,也是RTOS的“节拍器”
arm开发·stm32·单片机·嵌入式硬件
北京盛世宏博4 天前
以太网温湿度传感器星型组网三种供电布线技术对比文档
arm开发·以太网·原理·传感器·温湿度·原来
zlinear数据采集卡4 天前
D223 ADC数据处理流水线:从原始采样值到工程单位的完整转换链
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#