当前位置: 首页 > article >正文

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来配置这三个的大小就完成了。


http://www.kler.cn/a/298856.html

相关文章:

  • 企业数字化转型加速,现代 IT 如何用 Datadog 全面提升可观测性?
  • SpringCloud 入门(4)—— 网关
  • 畅捷通T+13管理员密码任意重置漏洞
  • 【CryptoJS库AES加密】
  • 数据库系统原理:数据恢复与备份策略
  • 【day14】异常处理与Object类深入解析
  • Mybatis--SqlSessionFactory 、SqlSession
  • Java并发复习
  • 文案改写工具有哪些?5款智能改写工具迅速提升文案品质
  • Android11 MTK 安装apk时进行密码验证
  • 经验笔记:SQL调优
  • Java 入门指南:Java 并发编程 —— Copy-On-Write 写时复制技术
  • ElasticSearch的DSL查询④(DSL查询、RestClient的DSL查询)
  • Linux内核 -- 内存管理之 lru_cache_add_inactive_or_unevictable 函数
  • go切片的深入学习以及context库的使用
  • 一道迭代器失效练习题
  • SparkSQL FUNCTION相关操作
  • 基于Spring Boot的小区物业管理系统
  • 本地Gitblit使用
  • 使用Pandas高效读取和处理Excel数据
  • 静态内部类
  • MySQL中的redo log、 undo log、bin log
  • 提前购|基于SSM+vue的创新型产品提前购平台(源码+数据库+文档)
  • docker进阶 compose等
  • 指针 (五)
  • uniapp,vite整合windicss