ESP32C3 自动light sleep模式下RMT,LEDC, ADC配置问题
Posted: Fri Jun 14, 2024 10:40 am
开发环境:
开发板:ESP32-C3-DEVKITM-1
IDE: Vscode esp-idf
操作系统:win10
IDF 版本:5.1.1
使用自动light sleep模式时,RMT,ledc外设工作都不正常。开启电源管理,这些外设是受动态调频影响的。手册说可以选择RMT的时钟源为RC_FAST_CLK 或 XTAL_CLK,LEDC的时钟源为LEDC_USE_RC_FAST_CLK和LEDC_USE_XTAL_CLK。
然而在LEDC使用LEDC_USE_RC_FAST_CLK和LEDC_USE_XTAL_CLK工作时会直接复位,APB时钟是正常的。
是不是要使用light sleep模式,RMT和LEDC外设必须使用手动配置唤醒源和手动进入light sleep。自动light sleep能极大降低产品功耗,有没有相关配置能在自动light sleep下能够正常使用RMT和LEDC外设?
LEDC的配置代码如下:
ledc_timer_config_t ledc_timer = {
.duty_resolution = LEDC_TIMER_13_BIT,
.freq_hz = 5000,
.speed_mode = LEDC_LS_MODE,
.timer_num = LEDC_TIMER_0,
.clk_cfg = LEDC_AUTO_CLK
};
ledc_timer_config(&ledc_timer);
ledc_channel_config_t ledc_channel_io = {
.channel = 1,
.duty = 0,
.gpio_num = BLINK_GPIO,
.speed_mode = LEDC_LS_MODE,
.hpoint = 0,
.timer_sel = LEDC_TIMER_0
};
ledc_channel_config(&ledc_channel_io);
ledc_fade_func_install(0);
RMT我是通过api来配置的:
rmt_set_source_clk(rmt_tx.channel,SOC_MOD_CLK_XTAL); //设置rmt的时钟源为XTAL,40kMz
希望能够得到解答!
开发板:ESP32-C3-DEVKITM-1
IDE: Vscode esp-idf
操作系统:win10
IDF 版本:5.1.1
使用自动light sleep模式时,RMT,ledc外设工作都不正常。开启电源管理,这些外设是受动态调频影响的。手册说可以选择RMT的时钟源为RC_FAST_CLK 或 XTAL_CLK,LEDC的时钟源为LEDC_USE_RC_FAST_CLK和LEDC_USE_XTAL_CLK。
然而在LEDC使用LEDC_USE_RC_FAST_CLK和LEDC_USE_XTAL_CLK工作时会直接复位,APB时钟是正常的。
是不是要使用light sleep模式,RMT和LEDC外设必须使用手动配置唤醒源和手动进入light sleep。自动light sleep能极大降低产品功耗,有没有相关配置能在自动light sleep下能够正常使用RMT和LEDC外设?
LEDC的配置代码如下:
ledc_timer_config_t ledc_timer = {
.duty_resolution = LEDC_TIMER_13_BIT,
.freq_hz = 5000,
.speed_mode = LEDC_LS_MODE,
.timer_num = LEDC_TIMER_0,
.clk_cfg = LEDC_AUTO_CLK
};
ledc_timer_config(&ledc_timer);
ledc_channel_config_t ledc_channel_io = {
.channel = 1,
.duty = 0,
.gpio_num = BLINK_GPIO,
.speed_mode = LEDC_LS_MODE,
.hpoint = 0,
.timer_sel = LEDC_TIMER_0
};
ledc_channel_config(&ledc_channel_io);
ledc_fade_func_install(0);
RMT我是通过api来配置的:
rmt_set_source_clk(rmt_tx.channel,SOC_MOD_CLK_XTAL); //设置rmt的时钟源为XTAL,40kMz
希望能够得到解答!