【沁恒蓝牙mesh】CH58x系统时钟配置与计算

本文主要记录了【沁恒蓝牙mesh】CH58x系统时钟配置与计算

  • 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎
  • 📝 个人主页:欢迎访问我的 Ethernet_Comm 博客主页🔥
  • 🎉 支持我:点赞👍+收藏⭐️+留言📝
  • 📣 系列专栏:沁恒蓝牙mesh二次开发
    🍁
  • 💬格言:写文档啊不是写文章,重要的还是直白!🔥

———————————————————————————————

【沁恒蓝牙mesh】CH58x系统时钟配置与计算

  • 1.时钟配置
    • 1.1 时钟树分析
    • 1.2 检查寄存器的值

1.时钟配置

SDK中,时钟初始化一般都配置为60KHz,这个时钟值咋算出来的呢?打破砂锅问到底

SetSysClock(CLK_SOURCE_PLL_60MHz);

/*** @brief  系统主频定义*/
typedef enum
{CLK_SOURCE_LSI = 0x00,CLK_SOURCE_LSE,CLK_SOURCE_HSE_16MHz = 0x22,CLK_SOURCE_HSE_8MHz = 0x24,CLK_SOURCE_HSE_6_4MHz = 0x25,CLK_SOURCE_HSE_4MHz = 0x28,CLK_SOURCE_HSE_2MHz = (0x20 | 16),CLK_SOURCE_HSE_1MHz = (0x20 | 0),CLK_SOURCE_PLL_80MHz = 0x46,CLK_SOURCE_PLL_60MHz = 0x48,CLK_SOURCE_PLL_48MHz = (0x40 | 10),CLK_SOURCE_PLL_40MHz = (0x40 | 12),CLK_SOURCE_PLL_36_9MHz = (0x40 | 13),CLK_SOURCE_PLL_32MHz = (0x40 | 15),CLK_SOURCE_PLL_30MHz = (0x40 | 16),CLK_SOURCE_PLL_24MHz = (0x40 | 20),CLK_SOURCE_PLL_20MHz = (0x40 | 24),CLK_SOURCE_PLL_15MHz = (0x40 | 0),
} SYS_CLKTypeDef;

1.1 时钟树分析

首先,参考系统的时钟树图

外接,32MHz晶振经过PLL的15倍频后,再经过一个分频器,输出最终的 HCLK,作为其他一些外设的时钟源。

通过以上代码配置,我们可以得知,HCLK = 60MHz

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Os9bAngO-1691053307584)(pic/image-20230803165158697.png)]

1.2 检查寄存器的值

在CH58X的芯片手册中,RTC是中部分,R16_CLK_SYS_CFG 寄存器是用于时钟配置

名称访问地址描述复位值
R16_CLK_SYS_CFG0x40001008系统时钟配置寄存器0x0005

通过串口打印寄存器的值,看看计算过程

int main(void)
{SetSysClock(CLK_SOURCE_PLL_60MHz);/*串口配置*/GPIOA_SetBits(bTXD1);GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);      // PB8  RXD-配置上拉输入GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);UART1_DefInit();PRINT("R16_CLK_SYS_CFG = 0x%02x \n", R16_CLK_SYS_CFG); /*打印寄存器的值*/
}

在这里插入图片描述

系统时钟配置寄存器(R16_CLK_SYS_CFG)

名称访问描述复位值
[15:8]ReservedRO保留。00h
[7:6]RB_CLK_SYS_MODRWAHCLK 系统时钟源模式选择: 00/10:CK32M(默认 32MHz)进行分频;
01:PLL(默认 480MHz)进行分频;
11:CK32K(默认 32KHz)作为 HCLK。
00b
5ReservedRO保留。0
[4:0]RB_CLK_PLL_DIVRWAHCLK 输出时钟分频系数,最小值为 2,0 代表最大值 32,写 1 将关闭 HCLK。00101b

寄存器的 bit[7:6] = 01 表示 PLL分频,480MHz bit[4:0] = 1000 表示分频系数是 8,所以时钟周期是 480MHz / 8 =60MHz ,和代码配置一致

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Flask]SSTI1

根据题目提示,这关应该是基于Python flask的模版注入,进入靶场环境后就是一段字符串,而且没有任何提示,有点难受,主要是没有提示注入点 随机尝试一下咯,首先尝试一下guest,GET传参 但是没有反应…

Windows上安装 jdk 环境并配置环境变量 (超详细教程)

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

Kali中AWD靶机环境搭建

Kali中AWD靶机环境搭建 1、kali安装docker2、克隆项目(400多M,下载会有点久)3、进入项目4、下载镜像5、改镜像名6、比赛环境搭建6.1 启动靶机6.2 连接裁判机,启动check脚本6.3 关闭环境命令 7、 靶机访问方式7.1 web界面访问7.2 s…

C++数据结构之平衡二叉搜索树(一)——AVL的实现(zig与zag/左右双旋/3+4重构)

本文目录 00.BBST——平衡二叉搜索树01.AVL树02.AVL的插入2.1单旋——zig 与 zag2.2插入节点后的单旋实例2.3手玩小样例2.4双旋实例2.5小结 03.AVL的删除3.1单旋删除3.2双旋删除3.3小结 04.34重构05.综合评价AVL5.1优点5.2缺点 06.代码注意插入算法删除算法完整代码&#xff1a…

spring security + oauth2 使用RedisTokenStore 以json格式存储

1.项目架构 2.自己对 TokenStore 的 redis实现 package com.enterprise.auth.config;import org.springframework.data.redis.connection.RedisConnection; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis…

基于SpringBoot+Vue的漫画网站设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

41.利用matlab 平衡方程用于图像(matlab程序)

1.简述 白平衡 白平衡的英文为White Balance,其基本概念是“不管在任何光源下,都能将白色物体还原为白色”,对在特定光源下拍摄时出现的偏色现象,通过加强对应的补色来进行补偿。 所谓的白平衡是通过对白色被摄物的颜色还原&…

opencv-34 图像平滑处理-双边滤波cv2.bilateralFilter()

双边滤波(BilateralFiltering)是一种图像处理滤波技术,用于平滑图像并同时保留边缘信息。与其他传统的线性滤波方法不同,双边滤波在考虑像素之间的空间距离之外,还考虑了像素之间的灰度值相似性。这使得双边滤波能够有…

【C语言进阶】指针的高级应用(下)

文章目录 一、指针数组与数组指针1.1 指针数组与数组指针的表达式 二、函数指针2.1 函数指针的书写方式 三、二重指针与一重指针3.1 二重指针的本质3.2 二重指针的用法3.3 二重指针与数组指针 总结 一、指针数组与数组指针 (1)指针数组的实质是一个数组,这个数组中存…

【python】使用Selenium和Chrome WebDriver来获取 【腾讯云 Cloud Studio 实战训练营】中的文章信息

文章目录 前言导入依赖库设置ChromeDriver的路径创建Chrome WebDriver对象打开网页找到结果元素创建一个空列表用于存储数据遍历结果元素并提取数据提取标题、作者、发布时间等信息判断是否为目标文章提取目标文章的描述、阅读数量、点赞数量、评论数量等信息将提取的数据存储为…

IntelliJ IDEA 2023.2 最新变化

IntelliJ IDEA 2023.2 引入 AI Assistant,通过一组由 AI 提供支持的功能助力开发。 升级的 IntelliJ 分析器现在提供编辑器内提示,使分析进程更加直观详尽。 此版本还包括有助于简化开发工作流的 GitLab 集成,以及其他多项值得关注的更新和改…

在政策+市场双轮驱动下,深眸科技助力机器视觉行业走向成熟

近年来,随着人工智能发展的不断提速,机器视觉作为其重要的前沿分支,凭借着机器代替人眼来做测量和判断的能力,广泛应用于工业领域的制造生产环节,用来保证产品质量、控制生产流程、感知环境等,并迸发出强劲…

基于新浪微博海量用户行为数据、博文数据数据分析:包括综合指数、移动指数、PC指数三个指数

基于新浪微博海量用户行为数据、博文数据数据分析:包括综合指数、移动指数、PC指数三个指数 项目介绍 微指数是基于海量用户行为数据、博文数据,采用科学计算方法统计得出的反映不同事件领域发展状况的指数产品。微指数对于收录的关键词,在指…

用Log4j 2记录日志

说明 maven工程中增加对Log4j 2的依赖 下面代码示例的maven工程中的pom.xml文件中需要增加对Log4j 2的依赖&#xff1a; <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.20.0&…

【C语言学习】整数的输入输出、八进制和十六进制

一、整数的输入输出 只有两种形式&#xff1a;int或long long %d:int %u:unsigned %ld:long long %lu:unsigned long long 二、八进制和十六进制 以0开头就是八进制&#xff0c;以0x开头就是十六进制。 无论是八进制还是十六进制只是如何将数字表达为字符串&#xff0c;但计…

UML-构件图

目录 1.概述 2.构件的类型 3.构件和类 4.构件图 1.概述 构件图主要用于描述各种软件之间的依赖关系&#xff0c;例如&#xff0c;可执行文件和源文件之间的依赖关系&#xff0c;所设计的系统中的构件的表示法及这些构件之间的关系构成了构件图 构件图从软件架构的角度来描述…

Vue2 第二十节 vue-router (四)

1.全局前置路由和后置路由 2.独享路由守卫 3.组件内路由守卫 4.路由器的两种工作模式 路由 作用&#xff1a;对路由进行权限控制 分类&#xff1a;全局守卫&#xff0c;独享守卫&#xff0c;组件内守卫 一.全局前置路由和后置路由 ① 前置路由守卫&#xff1a;每次路由…

《每天5分钟玩转kubernetes》读书笔记

笔记 概念 Pod是脆弱的&#xff0c;但应用是健壮的。 kubelet运行在Cluster所有节点上&#xff0c;负责启动Pod和容器。kubeadm用于初始化Cluster。kubectl是k8s命令行工具。通过kubectl可以部署和管理应用&#xff0c;查看各种资源&#xff0c;创建、删除和更新各种组件。 …

python使用虚拟环境安装第三方模块和运行python脚本

1、在用户家目录下创建一个名为env38的虚拟环境 python3 -m venv env38 创建虚拟环境env38后的目录 2、 激活虚拟环境 source ~/env38/bin/activate 3、安装pyqt5 pip install pyqt5 4、写一个简单的python脚本 import sys print(sys.path)# 如果执行成功&#xff0c;没有…

Unity Shader编辑器工具类ShaderUtil 常用函数和用法

Unity Shader编辑器工具类ShaderUtil 常用函数和用法 Unity的Shader编辑器工具类ShaderUtil提供了一系列函数&#xff0c;用于编译、导入和管理着色器。本文将介绍ShaderUtil类中的常用函数和用法。 编译和导入函数 CompileShader 函数签名&#xff1a;public static bool C…