ESP32学习笔记(七) 复位和时钟
ESP32学习笔记(七) 复位和时钟
目录:
ESP32学习笔记(一) 芯片型号介绍
ESP32学习笔记(二) 开发环境搭建 VSCode+platformio
ESP32学习笔记(三) 硬件资源介绍
ESP32学习笔记(四) 串口通信
ESP32学习笔记(五) 外部中断
ESP32学习笔记(六) 定时器
ESP32学习笔记(七) 复位和时钟
1.复位
2.系统时钟
2.1时钟树
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 的时钟源。
2.3.2 外设时钟
外设所需要的时钟包括 APB_CLK, REF_TICK, LEDC_SCLK, APLL_CLK 和 PLL_D2_CLK。
APB_CLK
APB_CLK 时钟频率由 CPU_CLK 源决定
REF_TICK
REF_TICK 时钟频率由 APB_CLK 分频产生, APB_CLK 时钟频率由 CPU_CLK 源决定。 REF_TICK 的时钟频率应固定,因此当切换 CPU_CLK 源时,应配置分频寄存器,使其频率固定。
例如,当 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 决定
APLL_CLK
APLL_CLK 来自内部 PLL_CLK,其输出频率通过使用 APLL 配置寄存器来配置
**PLL_D2_CLK **
PLL_D2_CLK 是 PLL_CLK 的二分频时钟。
2.3.3 WiFi 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 时钟信号
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
ESP32学习笔记(七) 复位和时钟相关推荐
- ESP32学习笔记(一) 芯片型号介绍
ESP32学习笔记(一) 芯片型号介绍 目录: ESP32学习笔记(一) 芯片型号介绍 ESP32学习笔记(二) 开发环境搭建 VSCode+platformio ESP32学习笔记(三) 硬件资源介 ...
- 【K210】K210学习笔记七——使用K210拍摄照片并在MaixHub上进行训练
[K210]K210学习笔记七--使用K210拍摄照片并在MaixHub上进行训练 前言 K210准备工作 K210如何拍摄照片 准备工作 拍摄相关代码定义 用K210拍摄到的照片在MaixHub平台 ...
- ESP32学习笔记(49)——RFID RC522使用
一.简介 MF RC522 是应用于 13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员.是 NXP 公司针对"三表"应用推出的一款低电压.低成本.体积小的非接触式读写 ...
- ESP32学习笔记(20)——SPI(从机)接口使用
一.SPI简介 SPI(Serial Peripheral Interface) 协议是由摩托罗拉公司提出的通讯协议,即串行外围设备接口,是一种高速全双工的通信总线.它被广泛地使用在 ADC.LCD ...
- STM32学习笔记(七)---SysTick
STM32学习笔记(七)-SysTick 文章目录 STM32学习笔记(七)---SysTick 一.SysTick简介 二.SysTick功能框图 三.SysTick寄存器 四.SYSTICK使用 ...
- ESP32学习笔记(19)——SPI(主机)接口使用
一.SPI简介 SPI(Serial Peripheral Interface) 协议是由摩托罗拉公司提出的通讯协议,即串行外围设备接口,是一种高速全双工的通信总线.它被广泛地使用在 ADC.LCD ...
- ESP32学习笔记(30)——BLE GATT服务端自定义服务和特征
一.简介 1.1 低功耗蓝牙(BLE)协议栈 链路层(LL) 控制设备的射频状态,有五个设备状态:待机.广播.扫描.初始化和连接. 广播 为广播数据包,而 扫描 则是监听广播. GAP通信中角色,中心 ...
- Typescript 学习笔记七:泛型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- 吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码
吴恩达<机器学习>学习笔记七--逻辑回归(二分类)代码 一.无正则项的逻辑回归 1.问题描述 2.导入模块 3.准备数据 4.假设函数 5.代价函数 6.梯度下降 7.拟合参数 8.用训练 ...
最新文章
- vim学习第2篇:配置自己的vimrc
- MVC用非Entity Framework将数据显示于视图(二)
- 幽灵交易策略_源码 | 幽灵交易者策略
- 稳定和高质量是最好的选择
- Ajax:如何运用updatepanle进行局部刷新
- python二维数据读取对齐_[Python ] Python 多维数组转换的维度对齐问题
- 【linux内核分析与应用-陈莉君】字符设备驱动
- 基础——内部RC振荡电路、外部晶振、RCC、RTC
- (原创)用红黄蓝RYB色相环(伊登色相环)代替RGB(RGI/RGV)色相环
- 基于Nextcloud,挂载Google drive,搭建Aria2+AriaNg,实现在线下载BT磁链/在线观看/全功能文件管理/无限容量云盘
- 这件小事,我坚持了 200 天
- 信息收集及漏洞利用--安全(四)
- bundle adjustment算法学习
- 【Gamemaker】YYC1.4编译的程序研究
- 微信小程序引入字体图标 1
- 1148环形石子合并
- win7下修改php.ini的配置路径
- 远程控制台调用java_JAVA实现远程控制(JAVA in RemoteControl)
- mysql连接timeout_mysql 连接超时wait_timeout问题解决
- 什么是架构?架构的本质和作用!