Linux-ubuntu之主频和时钟配置

news2024/12/20 14:05:22

Linux-ubuntu之主频和时钟配置

  • 一,主频
  • 二,其它时钟配置
    • 1.PLL2和PLL3的PFD0-3设置
    • 2.AHB_CLK_ROOT
    • 3.IPG 和 PERCLK时钟
  • 三,总结

一,主频

在这里插入图片描述在这里插入图片描述24MHz 晶振为内核和其它外设提供时钟源,经电路后到PLL1变为996MHZ,再经过CACRR(ARM_PODF)2分频,变为498MHZ。内部电路:
在这里插入图片描述进行频率更改时,更改的过程要找个频率先顶着,即step_clk。先判断为CCSR的pll1_sw_clk_sel比特位为0(Pll1_main_clk),切换频率,先用step_clk,选择CCSR的step_sel,设置频率即寄存器 CCM_ANALOG_PLL_ARMn,使能并且设置低位,设置完后,切换到Pll1_main_clk。

	/*配置主频*/
	if(((CCM->CCSR >> 2)&0x01)==0)//pll1_main_clock
	{
		CCM->CCSR &= ~(1<<8);//CCSRde step_sel设置0
		CCM->CCSR |= (1<<2);//设置为step_clock模式
	}

	CCM_ANALOG->PLL_ARM = (1<<13) |((66<<0) & 0x7f);//设置频率1000MHZ,使能
	CCM->CCSR &= ~(1<<2);//打开pll1_main_clk
	CCM->CACRR =0;//设置1分频
	/*配置PLL和PFD,主要是PLL2和PLL3*/

二,其它时钟配置

1.PLL2和PLL3的PFD0-3设置

在这里插入图片描述PLL2的PDF由CCM_ANALOG_PFD_528n控制,读取值后,根据公式 528*18/PFD0_FRAC计算。

	unsigned int reg=0;
	reg = CCM_ANALOG->PFD_528;
	reg = reg & (~(0x3f3f3f3f));//将PFD0-3的频率清零
	reg = reg | (32<<24);//PLL2—PFD3=297MHZ  528*18/297=32
	reg = reg | (24<<16);//PLL2—PFD2=396MHZ
	reg = reg | (16<<8);//PLL2—PFD1=594MHZ
	reg = reg | (27<<0);//PLL2—PFD0=352MHZ
	CCM_ANALOG->PFD_528 = reg;

	reg = CCM_ANALOG->PFD_480;
	reg = reg & (~(0x3f3f3f3f));//将PFD0-3的频率清零
	reg = reg | (19<<24);//PLL3—PFD3=297MHZ
	reg = reg | (17<<16);//PLL3—PFD2=396MHZ
	reg = reg | (16<<8);//PLL3—PFD1=594MHZ
	reg = reg | (12<<0);//PLL3—PFD0=352MHZ
	CCM_ANALOG->PFD_480 = reg;

2.AHB_CLK_ROOT

在这里插入图片描述AHB_CLK_ROOT的时钟源是PLL2_PFD2,因此①选择1,②选择0,③选择分频,由于PLL2_PFD2是396MHZ,AHB_CLK_ROOT想要132MHZ,选择三分频。

/*AHB_CLOCK_ROOT 132MHZ*/
	CCM->CBCMR =CCM->CBCMR & (~(3<<18));//清除为0
	CCM->CBCMR =CCM->CBCMR | (1<<18);//选用PPL2_PFD2时钟源
	CCM->CBCDR =CCM->CBCDR & (~(1<<25));//选择信号
	while(CCM->CDHIPR & (1 << 5));//只有开关允许,才将其写入

3.IPG 和 PERCLK时钟

在这里插入图片描述
IPG_CLK_ROOT和PERCLK_CLK_ROOT要的是66MHZ,AHB_CLK_ROOT是132MHZ。对于IPG_CLK_ROOT,先读取将CBCDR的IPG_PODF,再将CBCDR的IPG_PODF比特位设置为二分即可。对于PERCLK_CLK_ROOT,设置来着OSC,再将CSCMR1设置为1分频。

	/*IPG_CLK_ROOT 66MHZ*/
	CCM->CBCDR =CCM->CBCDR & (~(3<<8));//读取BIT:IPG_PODF
	CCM->CBCDR =CCM->CBCDR | (1<<8);//设置2分频
	/*PER_CLK_ROOT  66MHZ*/
	CCM->CSCMR1 &= ~(1 << 6);	//设置来自OSC
	CCM->CSCMR1 &= ~(7 << 0);    //设置1分频

三,总结

时钟利用树这种结构,将24MHZ的晶振,利用寄存器进行相关数值和使能配置,实现倍频,然后在利用各种分频实现不同频率的时钟,就像先由晶振产生PLL时钟源,再利用类似门控的选择信号以及分频,到AHB,再对AHB频率进行选择分频,实现IPG 和 PERCLK时钟 ,从而应用。就像由一个源头,再依次往下,形成使用各种外设和设备的时钟信号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2262752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Autosar入门_汽车电子控制器

上一篇 | 返回主目录 汽车电子控制器 1 汽车电子控制器定义2 从功能角度来看构成2.1 车门控制器简单示例2.1.1 解锁过程分析2.1.2 无框车窗短降2.1.3 下电控制电耗2.2 控制器几大基本功能 3 从硬件构成角度看构成3.1 芯片类别说明3.2 芯片与功能联系 1 汽车电子控制器定义 汽…

变压器“变压”和“变流”说明

变压器可以改变交流电压的大小&#xff0c;也可以改变交流电流的大小。 改变交流电压 变压器既可以升高交流电压&#xff0c;也能降低交流电压。在忽略电能损耗的情况下&#xff0c;变 压器电压U、二次电压U2与烧组匝数N、二次烧组匝数的关系为&#xff1a; n称为匝数比或电…

初学stm32 --- 时钟配置

目录 stm32时钟系统 时钟源 &#xff08;1&#xff09; 2 个外部时钟源&#xff1a; &#xff08;2&#xff09;2 个内部时钟源&#xff1a; 锁相环 PLL PLLXTPRE&#xff1a; HSE 分频器作为 PLL 输入 (HSE divider for PLL entry) PLLSRC&#xff1a; PLL 输入时钟源 (PL…

[机器学习]XGBoost(3)——确定树的结构

XGBoost的目标函数详见[机器学习]XGBoost&#xff08;2&#xff09;——目标函数&#xff08;公式详解&#xff09; 确定树的结构 之前在关于目标函数的计算中&#xff0c;均假设树的结构是确定的&#xff0c;但实际上&#xff0c;当划分条件不同时&#xff0c;叶子节点包含的…

常用命名总结

命名在编程中是非常重要的&#xff0c;它直接影响到代码的可读性、可维护性和开发效率。一个好的命名能够让代码更加直观、易于理解和修改&#xff0c;反之&#xff0c;不恰当的命名可能导致混乱、错误和难以调试的问题。以下是一些关于命名的最佳实践和原则&#xff1a; 1. 简…

AutoMQ 流表一体新特性 Table Topic 发布: 无缝集成 AWS S3 Table 和 Iceberg

超越共享存储&#xff1a;使用 Apache Iceberg 中的 AutoMQ Table Topic 实现流处理与分析的统一 自 2023 年底官宣以来&#xff0c;AutoMQ 成功地将 Apache Kafka 从“Shared Nothing architecture”转变为“Shared Storage architecture”&#xff0c;这为京东、知乎、小红书…

maven使用Dependency-Check来扫描安全漏洞

在现代软件开发中&#xff0c;使用开源库和第三方依赖项已成为常态。然而&#xff0c;这些依赖项可能包含已知的安全漏洞&#xff0c;给应用程序带来潜在的风险。为了解决这个问题&#xff0c;OWASP Dependency-Check 应运而生。本文将介绍 OWASP Dependency-Check 的功能、安装…

#渗透测试#红队全栈 powshell基础使用

声明&#xff01; 学习视频来自B站up主 泷羽sec&#xff0c;任何违法事件与本人以及泷羽sec团队无关&#xff0c;切勿触碰法律底线&#xff0c;否则后果自负&#xff01;&#xff01;&#xff01;&#xff01; 目录标题 认识powsehll打开方式 使用方式美化自己的powershell简单…

Qt:QMetaObject::connectSlotsByName实现信号槽自动关联

简介 在Qt中&#xff0c;QMetaObject::connectSlotsByName 是一个便利的方法&#xff0c;它可以根据对象的对象名&#xff08;objectName&#xff09;自动将信号和槽连接起来。但是&#xff0c;要使用这个方法&#xff0c;必须确保&#xff1a; 1 控件&#xff08;如按钮&…

《算法ZUC》题目

判断题 ZUC算法LFSR部分产生的二元序列具有很低的线性复杂度。 A.正确 B.错误 正确答案A 单项选择题 ZUC算法驱动部分LFSR的抽头位置不包括&#xff08; &#xff09;。 A.s15 B.s10 C.s7 D.s0 正确答案C 单项选择题 ZUC算法比特重组BR层主要使用了软件实现友好的…

maven项目中对不同目录下的同包同名类的引用情况整理

说明 maven项目&#xff0c;允许在不同目录中出现相同包名和相同类名&#xff0c;不会出现冲突&#xff0c;包括&#xff1a; java目录test目录依赖中目录 这里就用Hutool.class类中的一个常量做测试&#xff0c;如图 好奇同包同名类同时存在时&#xff0c;会加载哪个类 Syst…

【UE5 C++课程系列笔记】10——动态单播/多播的基本使用

目录 概念 申明动态委托 一、DECLARE_DYNAMIC_DELEGATE 二、DECLARE_DYNAMIC_MULTICAST_DELEGATE 绑定动态委托 一、BindDynamic 二、AddDynamic 三、RemoveDynamic 执行动态委托 ​一、Execute 二、ExecuteIfBound 三、IsBound 四、Broadcast 动态单播使用示…

Redis篇-19--运维篇1-主从复制(主从复制,读写分离,配置实现,实战案例)

1、概述 Redis的主从复制&#xff08;Master-Slave Replication&#xff09;是一种数据冗余机制&#xff0c;它允许将一台Redis服务器的数据复制到其他Redis服务器。在主从复制中&#xff0c;有一台主服务器&#xff08;Master&#xff09;和一个或多个从服务器&#xff08;Sl…

【ORACLE】一个允许关键字作为别名所引起的语法歧义场景

前言 最近在看SQL语法解析器&#xff0c;发现了antlr4提供的PlSql语法树存在一个BUG&#xff0c;然后我顺着这个BUG&#xff0c;构造了一条SQL&#xff0c;在ORACLE执行&#xff0c;如下 然后神奇的事情出现了&#xff0c;这个查询竟然没有返回行&#xff01;t1表左关联t2&…

【前端】Jquery拍照,通过PHP将base64编码数据转换成PNG格式,并保存图像到本地

目录 一、需求 二、开发语言 三、效果 四、业务逻辑&#xff1a; 五、web端调用摄像头 六、示例代码 1、前端 2、后端 一、需求 web端使用jquery调用摄像头拍照&#xff0c;并使用PHP把base64编码转换成png格式图片&#xff0c;下载到本地。 由于js不能指定图片存储的…

本地摄像头视频流在html中打开

1.准备ffmpeg 和(rtsp-simple-server srs搭建流媒体服务器)视频服务器. 2.解压视频流服务器修改配置文件mediamtx.yml ,hlsAlwaysRemux: yes 3.双击运行服务器。 4&#xff0c;安装ffmpeg ,添加到环境变量。 5.查询本机设备列表 ffmpeg -list_devices true -f dshow -i d…

机器情绪及抑郁症识别算法(六)

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

34. Three.js案例-创建球体与模糊阴影

34. Three.js案例-创建球体与模糊阴影 实现效果 知识点 WebGLRenderer WebGLRenderer 是 Three.js 中用于渲染 3D 场景的核心类。它负责将场景中的对象绘制到画布上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersObject可选参数对象&#xff0c;包…

服务器数据恢复—RAIDZ离线硬盘数超过热备盘数导致阵列崩溃的数据恢复案例

服务器存储数据恢复环境&#xff1a; ZFS Storage 7320存储阵列中有32块硬盘。32块硬盘分为4组&#xff0c;每组8块硬盘&#xff0c;共组建了3组RAIDZ&#xff0c;每组raid都配置了热备盘。 服务器存储故障&#xff1a; 服务器存储运行过程中突然崩溃&#xff0c;排除人为误操…

108. 将有序数组转换为二叉搜索树(java)

题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#xff1a;[0,-10,5,null,-3,…