esp32 CPU时钟设置 240Mhz

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

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

一、查mcu手册

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

esp32 CPU时钟设置 240Mhz_第1张图片

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

寄存器定义在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如下:

esp32 CPU时钟设置 240Mhz_第2张图片
esp32 CPU时钟设置 240Mhz_第3张图片

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

五、暮然回首

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

esp32 CPU时钟设置 240Mhz_第4张图片

你可能感兴趣的:(编辑器,c语言)