完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
从你们的芯片手册中了解到,CPU可以由多个外部高性能时钟驱动,由一个寄存器来控制使用的是内部PLL_CLK还是外部晶振,默认是外部晶振。
那么我如果不放外部晶振,并且希望使用内部PLL_CLK的话该怎么实现? 我看到RTC时钟的选择可以通过menuconfig配置,那么这个高性能时钟在哪里? |
|
相关推荐
1个回答
|
|
在ESP32-C3中,要设置CPU振荡源为内部PLL_CLK,您需要按照以下步骤操作:
1. **初始化内部RC振荡器**:ESP32-C3具有一个内置的RC振荡器,可以在没有外部晶振的情况下提供时钟源。首先,您需要初始化这个振荡器。 2. **配置PLL**:使用内部RC振荡器作为参考时钟,配置PLL以生成所需的CPU时钟频率。 3. **切换时钟源**:在ESP32-C3中,有一个寄存器(`ANA_CONF`)用于控制CPU时钟源。您需要设置这个寄存器以选择内部PLL_CLK作为CPU时钟源。 以下是具体的实现步骤: ### 步骤1:初始化内部RC振荡器 ESP32-C3的内部RC振荡器默认是启用的。如果需要调整其频率或性能,可以查看ESP-IDF文档中的相关配置。 ### 步骤2:配置PLL 使用ESP-IDF提供的API来配置PLL。以下是一个示例代码片段,展示如何配置PLL: ```c #include "esp32c3/rom/ets_sys.h" #include "esp32c3/clk.h" void configure_pll() { // 设置PLL的参考时钟为内部RC振荡器 ets_update_cpu_clock(&rc_fast_clk); // 配置PLL参数,例如:乘数、分频等 // 以下参数仅为示例,具体参数需要根据您的需求进行调整 int rc32m_freq = 32000; // RC振荡器频率 int cpu_freq = 160000000; // 目标CPU频率 int div = 1; // 分频 int mul = cpu_freq / (rc32m_freq * div); // 配置PLL xtal_freq = rc32m_freq; pll_freq = cpu_freq; pll_div = div; pll_mul = mul; // 启动PLL ets_update_cpu_clock(NULL); } ``` ### 步骤3:切换时钟源 在ESP32-C3中,`ANA_CONF`寄存器控制CPU时钟源的选择。以下是如何设置这个寄存器的示例: ```c #include "esp32c3/analog.h" void select_pll_clk() { // 读取ANA_CONF寄存器 volatile uint32_t *ana_conf_reg = (volatile uint32_t*)ANA_CONF_REG; uint32_t ana_conf = READ_PERI_REG(ANA_CONF_REG); // 清除时钟源选择位 ana_conf &= ~(ANA_CONF_PLL_I2S_DIV_MASK); // 设置使用PLL时钟源 ana_conf |= ANA_CONF_PLL_I2S_DIV(1); // 根据需要设置分频 // 写回ANA_CONF寄存器 WRITE_PERI_REG(ANA_CONF_REG, ana_conf); } ``` ### 注意事项 - 确保在配置PLL之前,已经正确初始化了内部RC振荡器。 - 根据ESP32-C3的数据手册和ESP-IDF文档,调整PLL参数以满足您的具体需求。 - 在切换时钟源之前,确保PLL已经稳定并输出所需的频率。 通过以上步骤,您应该能够成功地将ESP32-C3的CPU时钟源设置为内部PLL_CLK。 |
|
|
|
只有小组成员才能发言,加入小组>>
343 浏览 0 评论
1192 浏览 1 评论
587浏览 6评论
484浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
468浏览 5评论
467浏览 4评论
443浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 11:11 , Processed in 0.870785 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号