esp32 CPU时钟设置 240Mhz

使用esp32驱动LCD屏发现帧率有点低,企图提高CPU频率来提高帧率,但是最后效果不好,默认就是160Mhz频率。但是网上修改ESP32的CPU时钟教程很少,故记录一下。

环境:ubuntu+idf(V4.1)+esp_tool(download)

一、查mcu手册

得寄存器如下,但idf又进行封装,不用直接配置寄存器

二、通过寄存器向上查接口

寄存器定义在esp-idf/components/soc/esp32/include/soc/rtc_cntl_reg.h,

往上一直查发现最后函数是esp-idf/components/esp_system/port/soc/esp32/clk.c 的“ __attribute__((weak)) void esp_clk_init(void)”。

代码如下


 __attribute__((weak)) void esp_clk_init(void)
{
    const uint32_t new_freq_mhz = CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ;

    bool res = rtc_clk_cpu_freq_mhz_to_config(new_freq_mhz, &new_config);
        rtc_clk_cpu_freq_set_config(&new_config);
}

可以看到CPU时钟设置值从CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ到new_freq_mhz到new_config,而CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ来自每个工程的sdkconfig文件。

但并未在idf.py menuconfig中找到相关选项,直接作文档修改也是有效的。

三、修改CPU时钟为240Mhz

sdkconfig相关内容如下

#
# ESP System Settings
#
# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y
# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160

修改成如下即可

#
# ESP System Settings
#
# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set
# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 is not set
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240

四、结果测试

修改前后开机log如下:

LCD驱动效果有一丢丢的改善,并不是很明显,仍有卡顿的现象。

五、暮然回首

又查了一下idf.py menuconfig的设置项,设置位置在这。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ME32S003AF6P7是内嵌ARM Cortex™ M0核的32位微控制器。该系列控制器具有高性能、高适应范围和超低成本特点。内置30MHz时钟和独立的看门狗时钟,常用外设1M高速12位的ADC转换器,4通道PWM,UART串口,SPI接口,I2C总线接口,通用计数器/定时器。 •高性能32位ARM CPU 内核 –速度高达30Mhz 的ARM Cortex™-M0 处理器 –可嵌套中断向量控制器(NVIC) –单周期32位硬件乘法器 –24位系统嘀嗒定时器 •Flash 存储器 –32K字节的用户程序空间 –3K 字节启动程序 –32位Flash数据总线,支持高性能应用要求 •SRAM 存储器 –内嵌2K 字节高速SRAM •16位PWM发生器 –最多4通道PWM输出 –自动死区插入 •内嵌系统引导程序(bootloader) – 支持Flash存储器In-System-Program (ISP) ,In-Application-Program (IAP)和In-Circut-Program (ICP) – 支持用户程序保护和加密 •灵活的时钟单元 – 多个时钟源 – 内置30 MHz精度1% 的内部高速振荡器 – 内置32KHz 看门狗振荡器 •定时器/计数器 – 1个基础定时器/计数器和1个增强型定时器/计数器 – 基础定时器/计数器支持匹配中断功能 – 增强型定时器/计数器支持4个匹配和2路捕获输入功能 – 增强型定时器/计数器支持边沿计数,门控计数, AB相正交计数,触发计数,符号计数 •模拟外设 – 12位1MHz SAR ADC 转换器 – 4路AD输入通道 – 支持软件和硬件AD转换触发模式 •丰富的通信接口和通用输入/输出端口(GPIO) – 1个具备16字节FIFO 的串口通信模块,同时支持IrDA 协议 – 1个扩展的SP I接口,支持多种协议 – 1个I2C接口 ME32S003AF6P7 www.mesilicon.com 27 – 多达 18个高速GPIO接口 •电源管理 – 省电模式:睡眠模式,掉电模式 – 通过4个WAKEUP管脚从掉电模式中唤醒 – 支持欠压检测(BOD),两组检测点可分别产生欠压中断和强制复位 – 支持上电复位(POR) – 集成的电源管理单元(PMU) •工作温度范围 – 工业级 (-40°C ~ +105°C) •唯一的产品序列号 •2.2V~5.5 V 宽压工作范围 •20管脚TSSOP封装
ESP-WROOM-32 技术规格书 ESP-WROOM-32 是一款通用型 WiFi-BT-BLE MCU 模组,功能强大,用途广泛,可以用于低功耗传感器网络和 要求极高的任务,例如语音编码、音频流和 MP3 解码等。 此款模组的核心是 ESP32 芯片,具有可扩展、自适应的特点。两个 CPU 核可以被单独控制或上电。时钟频率 的调节范围为 80 MHz240 MHz。用户可以切断 CPU 的电源,利用低功耗协处理器来不断地监测外设的状态 变化或某些模拟量是否超出阈值。ESP32 还集成了丰富的外设,包括电容式触摸传感器、霍尔传感器、低噪声 传感放大器,SD 卡接口、以太网接口、高速 SDIO / SPI、UART、I2S 和 I2C 等。 ESP-WROOM-32 集成了传统蓝牙、低功耗蓝牙和 Wi-Fi,具有广泛的用途:Wi-Fi 支持极大范围的通信连接,也 支持通过路由器直接连接互联网;而蓝牙可以让用户连接手机或者广播 BLE Beacon 以便于信号检测。ESP32 芯片的睡眠电流小于 5 µA,使其适用于电池供电的可穿戴电子设备。ESP-WROOM-32 支持的数据传输速率高 达 150 Mbps,经过功率放大器后,输出功率可达到 22 dBm,可实现最大范围的无线通信。因此,这款芯片拥 有行业领先的技术规格,在高集成度、无线传输距离、功耗以及网络联通等方面性能最佳。 ESP32 的操作系统是带有 LWIP 的 freeRTOS,还内置了带有硬件加速功能的 TLS 1.2。芯片同时支持 OTA 加密 升级,开发者可以在产品发布之后继续升级。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值