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

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【全网最全】2024年数学建模国赛B题31页完整建模过程+25页成品论文+matlab/python代码等(后续会更新
  • 【数据库】MySQL表的Updata(更新)和Delete(删除)操作
  • 【Hot100】LeetCode—394. 字符串解码
  • Post-Training有多重要?一文带你了解全部细节
  • 【MySQL00】【 杂七杂八】
  • Python 错误 TypeError 解析,实际错误实例详解 (五)
  • 强调重点元素、弱化辅助元素、去掉无关元素,工控HMI还能好不了
  • ChatGPT在论文写作领域的应用:初稿设计
  • 在前端中Proj4.js使用简单介绍
  • HarmonyOS】ArkTS学习之基于TextTimer的简易计时器的elapsedTime最小时间单位问题
  • LinuxPTP的安装与应用
  • HCIE云计算--灾备
  • 网络协议-SSH
  • claude和chatgpt对比:哪一个更适合你?
  • AI自动生成PPT哪个软件好?如何自动生成专业级PPT?
  • ➹使用webpack配置多页面应用(MPA)
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • IP路由与转发
  • LeetCode算法系列_0891_子序列宽度之和
  • markdown编辑器简评
  • Sass Day-01
  • vue数据传递--我有特殊的实现技巧
  • Web Storage相关
  • 开源SQL-on-Hadoop系统一览
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 译有关态射的一切
  • 自制字幕遮挡器
  • python最赚钱的4个方向,你最心动的是哪个?
  • Semaphore
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 如何正确理解,内页权重高于首页?
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​Redis 实现计数器和限速器的
  • ​一些不规范的GTID使用场景
  • #### golang中【堆】的使用及底层 ####
  • ###C语言程序设计-----C语言学习(6)#
  • #define用法
  • #pragma once与条件编译
  • #stm32驱动外设模块总结w5500模块
  • $.proxy和$.extend
  • (07)Hive——窗口函数详解
  • (1)SpringCloud 整合Python
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (rabbitmq的高级特性)消息可靠性
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)ObjectiveC 深浅拷贝学习
  • (转)Unity3DUnity3D在android下调试
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现