乐鑫技术交流
直播中

石玉兰

8年用户 1526经验值
私信 关注
[问答]

ESP32-S2可以不使用外部晶振吗?

我的芯片是ESP32-S2,我们在开发测亩仪时发现gps的信号不稳定,CPU主频降低有好转,但是还没有完全解决问题。我们只把ESP32当做普通单片机用,wifi和蓝牙暂时可以不考虑。所以想知道:
1.如何调节主频,不用过menuconfig调节,那里面只能选择80 160  240。
2.如何使用内部时钟,不使用外部晶振,因为很多情况下晶振也是干扰源,想排除一下。
                                                                                                                                                                                             

回帖(2)

王霞

2024-6-6 10:36:30
S2必须要有外部晶振才能跑起来
举报

王霞

2024-6-6 14:48:33
ESP32-S2 是一款具有内置时钟的微控制器,因此可以在不使用外部晶振的情况下运行。以下是关于如何调节主频和使用内部时钟的步骤:

1. 调节主频:
   由于您不想通过 menuconfig 进行设置,可以尝试在代码中修改主频。以下是使用 ESP-IDF v4.4 的示例代码:

   ```c
   #include "esp_clk.h"
   #include "esp32s2/clk.h"

   void set_cpu_frequency(uint32_t freq) {
       // 设置 CPU 频率
       esp_clk_cpu_freq_set(freq);
   }
   ```

   在您的 main 函数中调用 `set_cpu_frequency()` 并传入所需的频率值。例如,如果您想要将频率设置为 120 MHz,可以这样调用:

   ```c
   int main() {
       set_cpu_frequency(120 * 1000 * 1000);
       // 其他初始化代码和主循环
   }
   ```

   请注意,ESP32-S2 的频率选项可能受到限制,因此您需要选择一个合适的值。

2. 使用内部时钟,不使用外部晶振:
   要使用内部时钟,您需要在 menuconfig 中禁用外部晶振。以下是操作步骤:

   a. 打开 ESP-IDF 的 menuconfig。
   b. 导航到 `Component config` > `ESP32-S2 specific`.
   c. 在 `Clock` 设置中,找到 `XTAL_FREQ` 并将其设置为 `Auto`。
   d. 找到 `Clock source` 并选择 `Internal 40MHz oscillator`。
   e. 保存并退出 menuconfig。

   完成这些设置后,ESP32-S2 将使用内部时钟而不是外部晶振。

通过上述步骤,您可以调节 ESP32-S2 的主频并使用内部时钟。这将有助于您在开发测亩仪时排除外部晶振可能带来的干扰。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分