HPM6750系列--第十篇 时钟系统

news2024/12/23 13:06:11

一、目的

        上一篇中《HPM6750系列--第九篇 GPIO详解(基本操作)》我们讲解了HPM6750 GPIO相关内容,再进一步讲解其他外设功能之前,我们有必要先讲解一下时钟系统。

        时钟可以说是微控制器系统中的心脏,外设必须依赖时钟才能正常工作。

        

二、介绍

        首先我们先看一下整个系统的时钟框图。

        1.时钟系统
时钟系统框图

        整个时钟系统由三部分组成,分别为外部时钟输入、时钟源和功能时钟组成,系统中不同电源域的片上模块使用不同的功能时钟,有些偏上模块也会直接使用外部时钟。

        如上图说明,电池备份域使用CLK32K时钟源,XTAL32K 和 RC32K 共同构成 CLK_32K 时钟源。当 XTAL32K 频率稳定时,CLK_32K 来自 XTAL32K 的输 出时钟。当 XTAL32K 尚未稳定或没有外接 32K 晶振时,CLK_32K 来自 RC32K 的输出时钟。两个时钟之间的切 换自动进行。 

        电源管理域使用CLK_24M时钟源,XTAL24M 和 RC24M 共同构成 CLK_24M 时钟源。当 XTAL24M 使能并频率稳定时,CLK_24M 来自 XTAL24M 的输出时钟,当 XTAL24M 关闭或尚未稳定时,CLK_24M 来自 RC24M 的输出时钟。两个时钟之间的切换自动进 行。

        系统电源域使用有五组PLL作为时钟源,PLL自身使用XTAL24M作为参考时钟输入

        功能时钟在多个时钟源中进行选择(八选一),并且每个功能时钟的默认频率都已经设定好。

        

        选择好时钟源之后,每个功能时钟又可以单独设置分频系数。

         

         例如上图中CLK_TOP_HART0功能时钟作为CPU0核心时钟,其选择PLL0CLK0作为时钟源,然后再次二分频,PLL0CLK0的默认输出频率为648MHz,故CPU0的时钟为324MHz。


        针对ADC和I2S模块存在一个二级时钟选择模块,可以从多个功能时钟中选择,这样的好处是多个ADC模块间可以同步、多个I2S模块间也可以同步。

         

        2.直接使用时钟源的模块 

        ​​​​​​​

        3.资源节点 

        在系统电源域中,各种能够被开启或关闭的节点称为资源节点 (resource),包括各功能模块、功能时钟、子系统电源和复位、时钟源等。

        

下游的资源节点 ENET0 的正常工作依赖于 CLK_TOP_ENET0 􏰁供接口时钟,依赖于CLK_TOP_AXI 􏰁供总线时钟,还需要其所在的 CONN 子系统处于非复位状态且电源开关打开。

        简言之,功能时钟也是作为资源节点被统一管理,如果要使用某个模块,那么这个模块的时钟就必须打开,也可以通过设置自动打开。

        关于资源节点更加详细的内容请参考官方文档中描述。涉及到的内容较多,此处就不再一一说明。

        4.PLL设置

        锁相环支持整数分频和小数分频的工作模式。

        ​​​​​​​ 

三、实战 

        vscode打开hello_world工程进入调试模式并定位到board_init_clock函数

cd ~/workspace/work/hpm/hello_world
code .

   

         

        clock_cpu0属于系统资源sysctl_resource_cpu0下CLK_SRC_GROUP_COMMON组clock_node_cpu0节点。

        通过clock_get_frequency函数可以获取功能节点的时钟。

        get_frequency_for_ip_in_common_group函数获取CLK_SRC_GROUP_COMMON组内的模块的时钟。

         

        ①获取节点clock_node_cpu0

        ②获取时钟分频系数DIV=1(2分频)

        ③获取时钟源索引MUX=1(八选一),选择了clock_source_pll0_clk0,也就是pll0作为时钟源。

        

        获取PLL0的输出频率

 

       PLLCTL_SOC_PLL_REFCLK_FREQ=24MHz

        fbdiv=0x1b(27)

        refdiv=0x1(1)

        pos_div = 0x1

 

        Fout = 24M /  1  * 27 / 1  =  648MHz,也就是说PLL0CLK0输出频率为648MHz,我们对功能时钟又进行了DIV=1(二分频),故CPU0时钟等于324MH。

        

        至此,关于HPM6750的时钟系统的基本知识点就讲解完毕,关于资源节点的自动开启、硬件控制等知识点需自行钻研。 

 

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

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

相关文章

Java反序列化漏洞-CC1利用链分析

文章目录 一、前置知识1. 反射2. Commons Collections是什么3. 环境准备 二、分析利用链1. Transformer2. InvokeTransformer执行命令 3. ConstantTransformer4. ChainedTransformer执行命令 5. TransformedMap6. AbstractInputCheckedMapDecorator7. AnnotationInvocationHand…

软件设计师——数据结构(一)

📑前言 本文主要是【数据结构】——软件设计师——数据结构的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#x1f304…

基于Python数据可视化的网易云音乐歌单分析系统

目录 《Python数据分析初探》项目报告 基于Python数据可视化的网易云音乐歌单分析系统一、项目简介(一)项目背景(二)项目过程 二、项目设计流程图(一)基于Python数据可视化的网易云音乐歌单分析系统的整体…

栈(C语言版)

一.栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。 栈中的数据元素遵守 后进先出 LIFO ( Last In First Out )的原则。…

【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解

【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】 ResNeXt模型算法详解前言ResNeXt讲解分组卷积(Group Converlution)分割-变换-合并策略(split-transform-merge)ResNeXt模型结构 ResNeXt Pytorch代码完整代码总…

Vue3页面如何设置rem单位的依据“根font-size”的两种方式

最近在对项目做整体的自适应。我们可以通过设置meta的viewport属性设置屏幕的缩放,但有时候,屏幕缩放了但字体大小也需要做相应的调整才能达到更好的自适应效果。我们很容易想到使用媒体查询rem来实现字体的自适应。 rem单位:“rem” 是 “ro…

XXE实体注入漏洞知识点

什么是XXE漏洞? XXE,即XML外部实体注入漏洞,XXE 漏洞发生在应用程序解析 XML 输入时, 没有禁止外部实体的加载 ,导致可加载恶意外部文件,造成文件读取、命令执行、攻击内网网站等危险。 XXE漏洞触发的点…

甜酷女孩穿搭 I 时尚与保暖都兼具的羽绒服

这款工装风羽绒服 酷酷的中性风 清新温柔的杏紫两色 采用定制复合面料 顺滑平整硬朗的材质 具有防水功能 下雪下雨天也不用担心哦 90白鹅绒,立领连帽设计 帽子做的是可拆卸 可以切换两种风格 袖口采用可调节魔术贴设计 下摆可调节抽绳设计 处处透着细节…

Content-Type是什么

目录 Content-Type是什么 获取方式 设置方式 常见类型 application/x-www-form-urlencoded multipart/form-data application/json text/xml text/html text/plain Content-Type是什么 Content-Type出现在请求标头和响应标头中,意思是内容类型&#xff0…

用PHP和HTML做登录注册操作数据库Mysql

用PHP和HTML做登录注册操作数据库Mysql 两个HTML页面&#xff0c;两个PHP,两个css,两张图片&#xff0c;源码资源在上方。 目录 HTML页面 login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta nam…

THEMIS---Beta Sprint Summary Essay Blog

Which course does this assignment belong to2301-MUSE社区-CSDN社区云What are the requirements for this assignmentbeta SprintThe goal of this assignmentTo summarize the beta task progress and the teams sprintsTeam NameThemisTop-of-the-line collection of essa…

Impala4.x源码阅读笔记(一)——HdfsTextScanner解析

前言 本文为笔者个人阅读Apache Impala源码时的笔记&#xff0c;仅代表我个人对代码的理解&#xff0c;个人水平有限&#xff0c;文章可能存在理解错误、遗漏或者过时之处。如果有任何错误或者有更好的见解&#xff0c;欢迎指正。 在文章Impala3.4源码阅读笔记&#xff08;七…

带你亲证AI应用开发的“奇点”时刻

带你亲证AI应用开发的“奇点”时刻 AI 应用开发——新的历史节点 事实上&#xff0c;没有任何一种突破能够不经历重重失败&#xff0c;不体验一轮轮的痛苦&#xff0c;就能直接展现在人类面前。AI 技术自诞生之初直至今日&#xff0c;其发展之路从未一帆风顺——辉煌与寒冬交…

Windows环境下QT应用程序的发布

时间记录&#xff1a;2023/12/17 1.生成版本介绍&#xff0c;debug&#xff1a;调试版本&#xff0c;携带调试信息&#xff0c;占用内存稍大一些&#xff0c;release&#xff1a;发布版本&#xff0c;一般开发完毕选择此套件进行编译生成可执行程序进行发布 2.发布步骤 &#x…

流程引擎相关资料

最近调研流程引擎相关知识&#xff0c;BPMN规范和流程引擎相关知识无法避开&#xff0c;以及市面上比较多的流程引擎产品。 BPMN2.0 基本形状 流对象&#xff08;Flow Objects&#xff09;&#xff0c;流对象是定义业务流程的主要图形元素。它进一步细分为三个类别&#xff0…

使用邮件群发平台,轻松实现高效沟通的4大优势!

新媒体带动着众多线上平台的发展&#xff0c;使得流量为企业带来了可观的营收。但是&#xff0c;随着短视频市场的饱和&#xff0c;想要再次获得初始时的流量就变得越发困难。在这个时候&#xff0c;企业不妨将眼光往邮件群发这个传统的营销方式上倾斜&#xff0c;特别是出海、…

LangChain 27 BabyAGI编写旧金山的天气预报

LangChain系列文章 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储&#xff0c;读取YouTube的视频文本搜索I…

别小看Python的【print】函数,这些高级用法你知道吗?

文章目录 引言技巧1&#xff1a;格式化输出示例1&#xff1a;使用%s来插入字符串&#xff0c;使用%d来插入整数示例2&#xff1a;使用字符串的format()方法示例3&#xff1a;使用f-string格式化输出 技巧2&#xff1a;控制输出文本的颜色技巧3&#xff1a;将打印结果重定向至文…

什么是Maven?

什么是Maven 1、Maven是依赖管理、项目构建工具。 pom.xml springBoot项目的核心配置文件&#xff0c;pom项目对象模型、Dependency依赖管理模型。 Maven中的GAVP是指&#xff1a; 1、GroupId&#xff1a;当前工程组织id&#xff0c;例如&#xff1a;com.jd.tddl 2、ArtifactI…

Redis-对象

参考资料 极客时间Redis&#xff08;亚风&#xff09; Redis对象 String • 基本编码⽅式是RAW&#xff0c;基于简单动态字符串&#xff08;SDS&#xff09;实现&#xff0c;存储上限为512mb。 • 如果存储的SDS⻓度⼩于44字节&#xff0c;则会采⽤EMBSTR编码&#xff0c;此…