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

这篇具有很好参考价值的文章主要介绍了ESP32学习笔记(七) 复位和时钟。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

1.复位

2.系统时钟

2.1时钟树

esp32晶振,ESP32,学习,fpga开发,单片机

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 的时钟源。

esp32晶振,ESP32,学习,fpga开发,单片机

2.3.2 外设时钟

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

esp32晶振,ESP32,学习,fpga开发,单片机

APB_CLK

APB_CLK 时钟频率由 CPU_CLK 源决定

esp32晶振,ESP32,学习,fpga开发,单片机

REF_TICK

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

esp32晶振,ESP32,学习,fpga开发,单片机

例如,当 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 决定

esp32晶振,ESP32,学习,fpga开发,单片机

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 时钟信号

esp32晶振,ESP32,学习,fpga开发,单片机

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,学习,fpga开发,单片机文章来源地址https://www.toymoban.com/news/detail-793225.html

到了这里,关于ESP32学习笔记(七) 复位和时钟的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ESP32最全学习笔记(基础篇)——8.ESP32 中断定时器】

    关于本教程: 1.ESP32简介                                                                 2.ESP32 Arduino 集成开发环境 3.VS 代码和 PlatformIO 4.ESP32 引脚 5.ESP32 输入输出 6.ESP32 脉宽调制 7.ESP32 模拟输入 8.ESP32 中断定时器 ☑ 9 .ESP32 深度睡眠 ESP32 网络

    2024年02月06日
    浏览(51)
  • 【ESP32最全学习笔记(基础篇)——6.ESP32 PWM(模拟输出)】

    关于本教程: 1.ESP32简介                                                                 2.ESP32 Arduino 集成开发环境 3.VS 代码和 PlatformIO 4.ESP32 引脚 5.ESP32 输入输出 6.ESP32 脉宽调制 ☑ 7.ESP32 模拟输入 8.ESP32 中断定时器 9 .ESP32 深度睡眠 ESP32 网络

    2023年04月14日
    浏览(34)
  • 物联网开发笔记(87)- 使用Micropython开发ESP32开发板之烧录合宙ESP32C3开发板

    一、目的         这一节我们学习如何使用我们的ESP32开发板来学习合宙ESP32C3开发板,该开发板有两种:一种是带串口通讯的,一种是通过使用USB通讯接口的。  二、环境         ESP32 + 合宙ESP32C3开发板 + USB转type-C线  + Win10 接线方法:         开发板通过USB线插到

    2024年02月14日
    浏览(50)
  • esp32学习笔记(4)——adc

    ADC即模拟数字转换器(Analog-to-digital converter)是用于将 模拟 形式的 连续 信号 转换 为 数字 形式的 离散 信号的一类设备。一个模拟数字转换器可以提供信号用于测量。与之相对的设备成为数字模拟转换器。 例如温度、压力、声音或者图像等,需要转换成更容易储存、处理

    2023年04月19日
    浏览(35)
  • ESP32学习笔记 MQTT协议

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),信息传输的对象我分为 客户端消息发布者 (pub)、 服务器 (server)、 客户端消息订阅者 (sub), 一个客户端可以同时为发布者和订阅者 。服务器,服务器为信息传输的枢纽有传递数据、管理客户端、数据保真等作用。

    2024年02月08日
    浏览(44)
  • MicroPython开发ESP32入门笔记 -- 蓝牙篇

    博主之前学习了用C语言去开发了51单片机,虽然没有将各种外设和传感器都玩遍,但博主基本将一些重要的外设和传感器通过原理学习加小项目实验的方式比较深入地玩了一下。众所周知,51单片机是相对底层的,用来开发一些大项目的效率会比较低,所以我们很有必要学习

    2023年04月19日
    浏览(49)
  • MicroPython开发esp32入门笔记--串口篇

    串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大

    2024年02月05日
    浏览(49)
  • 【ESP32最全学习笔记(基础篇)——5.ESP32 数字输入和数字输出(Arduino IDE)】

    关于本教程: 1.ESP32简介                                                                 2.ESP32 Arduino 集成开发环境 3.VS 代码和 PlatformIO 4.ESP32 引脚 5.ESP32 输入输出 ☑ 6.ESP32 脉宽调制 7.ESP32 模拟输入 8.ESP32 中断定时器 9 .ESP32 深度睡眠 ESP32 网络

    2024年02月01日
    浏览(90)
  • 【ESP32最全学习笔记(基础篇)——7.ESP32 ADC – 使用 Arduino IDE 读取模拟值】

    关于本教程: 1.ESP32简介                                                                 2.ESP32 Arduino 集成开发环境 3.VS 代码和 PlatformIO 4.ESP32 引脚 5.ESP32 输入输出 6.ESP32 脉宽调制 7.ESP32 模拟输入 ☑ 8.ESP32 中断定时器 9 .ESP32 深度睡眠 ESP32 网络

    2023年04月15日
    浏览(45)
  • 学习笔记ESP32——lvgl disp移植(1)

    目录 一、简介 二、GitHub上下载lvgl库         1、下载lvgl库 三、准备一个工程  四、修改工程  五、对disp进行修改 ​编辑 六、主函数的修改 七、硬件的修改 八、MUSIC示例演示 一、简介         以esp32 idf导出的hello world例程,移植lvgl disp和indev驱动的学习笔记。 二、Gi

    2024年01月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包