ESP32学习笔记(七) 复位和时钟

2023-11-06

ESP32学习笔记(七) 复位和时钟

目录:
ESP32学习笔记(一) 芯片型号介绍
ESP32学习笔记(二) 开发环境搭建 VSCode+platformio
ESP32学习笔记(三) 硬件资源介绍
ESP32学习笔记(四) 串口通信
ESP32学习笔记(五) 外部中断
ESP32学习笔记(六) 定时器
ESP32学习笔记(七) 复位和时钟

1.复位

2.系统时钟

2.1时钟树

image-20230104142954532

2.2时钟源

从时钟树可以看出 时钟源共七种

ESP32 的时钟源分别来自外部晶振、内部 PLL 或振荡电路 具体地说,这些时钟源为:

2.2.1 快速时钟

PLL_CLK

320 MHz 或 480 MHz 内部 PLL 时钟

XTL_CLK

2 ~ 40 MHz 外部晶振时钟,模组板载的是40MHz晶振

2.2.2 低功耗慢速时钟

XTL32K_CLK

32 KHz 外部晶振时钟,模组不含此晶振,但io被引出来了

RC_FAST_CLK

8 MHz 内部时钟,频率可调

RC_FAST_DIV_CLK

由 RC_FAST_CLK 经 256 分频所得,频率为 (RC_FAST_CLK/256)。当RC_FAST_CLK 的初始频率为 8 MHz 时,该时钟以 31.250 KHz 的频率运行。

RC_SLOW_CLK

150 KHz 内部低功耗时钟,频率可调

2.2.3 音频时钟

APLL_CLK

16 ~ 128 MHz 内部 Audio PLL 时钟

2.3时钟信号

2.3.1 CPU时钟

CPU_CLK

它在高效工作模式下,主频可以达到 240 MHz。同时, CPU 能够在超低频下工作,以减少功耗。

CPU_CLK 由 RTC_CNTL_SOC_CLK_SEL 来选择时钟源,允许选择 PLL_CLK, APLL_CLK, RC_FAST_CLK,XTL_CLK 作为 CPU_CLK 的时钟源。

image-20230104145910906

2.3.2 外设时钟

外设所需要的时钟包括 APB_CLK, REF_TICK, LEDC_SCLK, APLL_CLK 和 PLL_D2_CLK。

image-20230104144455788

APB_CLK

APB_CLK 时钟频率由 CPU_CLK 源决定

image-20230104144738502

REF_TICK

REF_TICK 时钟频率由 APB_CLK 分频产生, APB_CLK 时钟频率由 CPU_CLK 源决定。 REF_TICK 的时钟频率应固定,因此当切换 CPU_CLK 源时,应配置分频寄存器,使其频率固定。

image-20230104144920798

例如,当 REF_TICK 时钟频率固定为 1 MHz 时,如果 CPU_CLK 源为 PLL_CLK,则 REF_TICK 频率 = 80 MHz /(APB_CTRL_PLL_TICK_NUM+1) = 1 MHz,那么 APB_CTRL_PLL_TICK_NUM 应配置为 79 (0x4F)。

LEDC_SCLK

LEDC_SCLK 时钟源由寄存器 LEDC_APB_CLK_SEL 决定

image-20230104145034552

APLL_CLK

APLL_CLK 来自内部 PLL_CLK,其输出频率通过使用 APLL 配置寄存器来配置

**PLL_D2_CLK **

PLL_D2_CLK 是 PLL_CLK 的二分频时钟。

2.3.3 Wi­Fi BT 时钟

APB_CLK(特例)

Wi-Fi 和 BT 必须在 APB_CLK 时钟源选择 PLL_CLK 下才能工作。只有当 Wi-Fi 和 BT 同时进入低功耗模式时,才能暂时关闭 PLL_CLK。
LOW_POWER_CLK 允许选择 RC_SLOW_CLK、 RTC_SLOW_CLK、 RC_FAST_CLK 或 XTL_CLK,用于 Wi-Fi和 BT 的低功耗模式

2.3.4 RTC时钟

RTC_SLOW_CLK

允许选择 RC_SLOW_CLK, XTL32K_CLK 或 RC_FAST_DIV_CLK,用于驱动 PowerManagement 模块。

RTC_FAST_CLK

允许选择 XTL_CLK 的分频时钟或 RC_FAST_CLK,用于驱动 On-chip Sensor 模块。

2.3.5 音频 PLL

Audio PLL

来自系统的时钟源都不精确 并且不支持高精度的时钟频率配置。 所以esp32集成了APLL_CLK时钟源 如下通常是40MHz

通过公式可配置出Audio PLL 时钟信号

image-20230104151715151

2.8 时钟配置注意事项

大多数外设一般在选择 PLL_CLK 时钟源的情况下工作。

3.相关API

arduino框架下的时钟配置函数

//function takes the following frequencies as valid values:
//  240, 160, 80    <<< For all XTAL types
//  40, 20, 10      <<< For 40MHz XTAL
//  26, 13          <<< For 26MHz XTAL
//  24, 12          <<< For 24MHz XTAL
bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz);

uint32_t getCpuFrequencyMhz();  // In MHz
uint32_t getXtalFrequencyMhz(); // In MHz
uint32_t getApbFrequency();     // In Hz

通过上位机 看出默认的时钟信号频率

说明CPU_CLK选取内部PLL_CLK为时钟源480MHz 然后二分频

所以APB就为80MHz

image-20230104160610971

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP32学习笔记(七) 复位和时钟 的相关文章

  • electron使用new Worker写入文件导致浏览器崩溃

    main js let data1 let data2 for let i 0 i lt 500000 i let j i 500 0 60000 0 data1 push j 200 Math random 100 data2 push
  • git下载别人的代码

    1 打开别人github上的源码地址 点击Clone or download 2 拷贝链接 3 通过git clone URL来下载 此外 还可以通过pwd来查看当前目录的路径 一般都是下载到当前目录下 注意 前提是自己的github上已添
  • 【剑指offer】数据结构——树

    目录 数据结构 树 直接解 剑指offer 07 重建二叉树 剑指offer 08 二叉树的下一个结点 剑指offer 26 树的子结构 剑指offer 27 二叉树的镜像 剑指offer 28 对称的二叉树 剑指offer 32 1 从上
  • Opencv中circle(),line(),cv2.rectangle(),cv2.putText()

    Opencv中circle line cv2 rectangle cv2 putText 一 circle 画圆 cv2 circle 方法用于在任何图像上绘制圆 用法 cv2 circle image center radius colo

随机推荐

  • 【OCR文本识别系列】Read Like Humans: Autonomous, Bidirectional and Iterative Language Modeling for Scene Tex

    read like humans 是中科大在2021年发在CVPR上的论文 论文链接 链接 代码链接 链接 视觉模型 class BaseVision Model def init self config super init config
  • QT 读写CSV文件

    目录 一 CSV的结构 二 源码简析 三 源码 一 CSV的结构 CSV文件 也称为逗号分隔值文件 顾名思义 就是用逗号和换行符分隔开的文件 下面举个例子就很清楚了 例如我有一个class csv文件 如果用表格软件打开 即如下 如果用记事
  • DVWA全等级通关教程(完结)

    Brute Force暴力破解 DVWA之Commend Injection 命令行注入 Cross Site Request Forgery CSRF 跨站请求伪造 File Inclusion 文件包含 File Upload 文件上传
  • vue中使用mapboxgl 加载天地图初始化并打点marker以及逆地理编码

    1 首先这个是中文文档地址开发文档 Mapbox 2 先注册一个token 具体文档流程 这边不过多介绍 3 下载npm install mapbox gl save 4 不多说 直接上代码 HTML中先创建一个盒子有宽高 id 还有记得引
  • 【maven】maven dependencyManagement 锁定Jar包版本

    1 概述 视频地址 maven dependencyManagement 锁定Jar包版本
  • 链栈之C++实现

    链栈是借用单链表实现的栈 其不同于顺序栈之处在于 1 链栈的空间是程序运行期间根据需要动态分配的 机器内存是它的上限 而顺序栈则是 静态分配内存的 2 链栈动态分配内存的特性使得它一般无需考虑栈溢出的问题 链栈的的组织结构如下图所示 容易发
  • 2021-11-06 液位控制滤波

    1 原文连接 我用 CSDN 这个app发现了有技术含量的博客 小伙伴们求同去 液位控制 一起来围观吧 https blog csdn net weixin 34405557 article details 93934030 utm sou
  • 请谈谈你对云计算的理解

    一 请谈谈你对云计算的理解 1 云计算产生的背景 随着并行计算 分布计算 网格计算 虚拟化 SOA 容错技术 网络带宽等关键技术日趋成熟 通过网络访问非本地的计算服务 包括数据处理 存储和信息服务等 的条件越来越成熟 多种技术的融合就产生了
  • img 图片固定大小 图片不糊 object-fit

    div h2 object fit fill h2 img src https interactive examples mdn mozilla net media examples plumeria jpg alt MDN Logo cl
  • Windows 无法验证此设备所需的驱动程序的数字签名。某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件。(代码52)...

    由未签名驱动导致的键鼠装无法使用的问题 usb 问题失效 要是win 10的话 导致的结果就是 无线键鼠套装无法使用 解决办法是 1 按下shift 按键 点击重启按钮 重启后 2 疑难解答 gt 启动 gt f7 禁用未签名强制验证 3
  • chatgpt提问示例指南

    担任雅思写作考官 我希望你假定自己是雅思写作考官 根据雅思评判标准 按我给你的雅思考题和对应答案给我评分 并且按照雅思写作评分细则给出打分依据 此外 请给我详细的修改意见并写出满分范文 第一个问题是 It is sometimes argu
  • RHCE第五次作业

    1 总结变量的类型及含义 2 实现课堂案例计算长方形面积 6种方式 3 定义变量url https blog csdn net weixin 45029822 article details 103568815 通过多种方法实现 1 截取网
  • 2-2-7 React 几个用Hooks的小技巧

    1 Hooks 控制流 if useEffect gt Hooks是对行为的声明 if else 是分支控制 不是声明的一部分 从理论上不应该有声明在控制流之下 在React内部通过Hooks的词法顺序来区分不同的Hook 2 Stacko
  • 在PyCharm上安装TENSORFLOW

    上周联系了一下南科大的老师 老师比较和蔼可亲 安排我先学习一下MNIST数据集进行深度学习方向图像识别的入门 本来上周应该要完成的但还是因为搭建平台 学校实训等各方面原因 没能及时完成 特别是在想用pycharm用来安装tensorflow
  • 台式计算机怎么连接蓝牙 win10,win10台式电脑蓝牙怎么开启(开启电脑蓝牙的步骤图)...

    原标题 win10台式电脑蓝牙怎么开启 开启电脑蓝牙的步骤图 虽然WiFi无线连接现在是主流 但蓝牙无线连接仍然以独特的优势得以在许多设备中保留 例如Win10动态锁自动锁定功能就是利用电脑与手机的蓝牙连接实现的 下面MS酋长就来分享一下W
  • 找回微信聊天记录-unbaksdpak解包软件图文教程

    前几天用小米助手备份恢复后微信聊天记录丢失 上网找资料搞鼓了一天终于找回了聊天记录 在上个分享帖子里有详细介绍了找回过程 但有机友某些步骤看不懂 要我再出个图文教程 我想主要应该是GitHub上的解包软件不会用吧 这次主要讲一下unbaks
  • 3分钟入门:Blob 对象的了解与创建

    Blob 对象 Blob 英文全称 binary large object 是指二进制类型大对象 Blob 对象表示不可变的 类似文件对象的原始数据 即它是类似文件对象的二进制数据 可以像操作 File 对象一样操作 Blob 对象 但话又
  • Python入门——第一章 python编程基础

    Python入门 文章目录 Python入门 第一章 python编程基础 1 1 基本输入输出 1 1 1使用print 函数进行简单输出 chr 函数 print 输出到指定文件 print 输出年份 月份 日期 1 1 2使用prin
  • 给定一个整数,判断它能否被3,5,7整除,并输出以下信息:

    1 能同时被3 5 7整除 直接输出3 5 7 每个数中间一个空格 2 只能被其中两个数整除 输出两个数 小的在前 大的在后 例如 3 5或者3 7或者5 7 中间用空格分隔 ififa 3 只能被其中一个数整除 输出这个除数 4 不能被任
  • ESP32学习笔记(七) 复位和时钟

    ESP32学习笔记 七 复位和时钟 目录 ESP32学习笔记 一 芯片型号介绍 ESP32学习笔记 二 开发环境搭建 VSCode platformio ESP32学习笔记 三 硬件资源介绍 ESP32学习笔记 四 串口通信 ESP32学习