打印

GD32L233在PMU_DEEPSLEEP2模式功耗过高

[复制链接]
1430|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Sam131208|  楼主 | 2024-12-18 14:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
    GD32L233怎么配置才可以降低功耗? 用例程“GD32L23x_Firmware_Library_V2.0.2\Examples\PMU\Deepsleep_wakeup_RTC”测试,无论如何也降低不了功耗,3.3v电压测试条件下,一直有几个mA。
    GD32l23x的产品系列,是只做广告不管疗效的吗?浪费了太多时间测试需要的功能,结果发现功耗根本不行。
   如果 GD32l23x能达到数据手册的功耗,请提供 测试例程出来。

使用特权

评论回复
沙发
jcky001| | 2024-12-19 14:24 | 只看该作者
内部Flash未正确进入待机状态

使用特权

评论回复
板凳
elephant00| | 2024-12-19 14:25 | 只看该作者
在进入深度睡眠模式前,确保Flash有read动作,使CS片选信号恢复高电平,从而使Flash进入待机状态。

使用特权

评论回复
地板
cr315| | 2024-12-19 15:26 | 只看该作者
未使用的引脚配置不当

使用特权

评论回复
5
Sam131208|  楼主 | 2024-12-19 15:56 | 只看该作者
cr315 发表于 2024-12-19 15:26
未使用的引脚配置不当

  没有使用GPIO做其它功能,单纯测试电流, 所有GPIO都尝试过四种方式: 输入三种,不上拉下拉, 上拉, 下拉, 输出一种。 电流只有更高,没有低于1.8mA. 不知道你指的“引脚配置得当”应该是怎样的?

使用特权

评论回复
6
Sam131208|  楼主 | 2024-12-19 16:13 | 只看该作者
jcky001 发表于 2024-12-19 14:24
内部Flash未正确进入待机状态

    可以说下怎么让flash进入待机状态?测试使用了fmc里面的几个睡眠程序,有的无影响,有的更大。

使用特权

评论回复
7
Sam131208|  楼主 | 2024-12-19 16:15 | 只看该作者
elephant00 发表于 2024-12-19 14:25
在进入深度睡眠模式前,确保Flash有read动作,使CS片选信号恢复高电平,从而使Flash进入待机状态。 ...

   可以说下怎么做吗?使用了下面代码,未见效果。
        testflashread = REG32(0x08000000 + 0x8000);
        pmu_to_deepsleepmode(PMU_LDNPDSP_LOWDRIVE, WFI_CMD, PMU_DEEPSLEEP2);

使用特权

评论回复
8
zeshoufx| | 2024-12-19 17:18 | 只看该作者
把测试代码贴出来,,光描述大家都不知道测试原理和你的配置

使用特权

评论回复
9
zeshoufx| | 2024-12-19 17:21 | 只看该作者
官方的应用文档注意看一下,怎么配置,,按使用流程来

使用特权

评论回复
10
zeshoufx| | 2024-12-19 17:23 | 只看该作者
多看看,,官方都提供了很多参考程序,,有没有符合你的应用的
,没有的话,可以加官方群

使用特权

评论回复
11
两只袜子| | 2024-12-19 18:26 | 只看该作者
PMU的配置可能影响MCU在深度睡眠模式下的功耗。例如,如果LDO(电压调节器)未正确配置为低功耗状态,或者COREOFF1电源域未断电,都可能导致功耗增加。

使用特权

评论回复
12
laocuo1142| | 2024-12-19 19:00 | 只看该作者
将所有未使用的引脚配置为模拟输入,禁用施密特触发器,以减少额外的电流消耗。

使用特权

评论回复
13
flycamelaaa| | 2024-12-19 21:23 | 只看该作者
配置外设为低功耗模式,优化PMU配置

使用特权

评论回复
14
powerantone| | 2024-12-19 22:26 | 只看该作者
使用直接内存访问

使用特权

评论回复
15
stormwind123| | 2024-12-19 23:00 | 只看该作者
检查并优化代码,没有不必要的循环或等待操作

使用特权

评论回复
16
Sam131208|  楼主 | 2024-12-20 09:32 | 只看该作者
本帖最后由 Sam131208 于 2024-12-20 09:37 编辑
zeshoufx 发表于 2024-12-19 17:18
把测试代码贴出来,,光描述大家都不知道测试原理和你的配置

  官网下载的GD32L23x Firmware Library,最新版本2.02, 里面例程:
         GD32L23x_Firmware_Library_V2.0.2\Examples\PMU\Deepsleep_wakeup_RTC

   开发板所有IO,除了boot脚位下拉,都已经移除了所有的外部连接,包括外部上拉,下拉电阻,以及开发板上所有的LED。稳压LDO已经拆除, 复位脚上拉电阻,下拉电容还在,没有外部晶振(简单说,除了boot脚的下拉电阻,VDD的滤波电容,其它脚位没有连接任何外部元件)

    只修改了main.c中的main函数中while(1)包含的代码,代码如下面所示:   
int main(void)
{
    /* configure nvic */
    nvic_configuration();
    /* configure led */
    led_config();
    /* configure systick */
    systick_config();
    gd_eval_led_on(LED2);
    delay_1ms(2000U);
    gd_eval_led_off(LED2);
    /* configure RTC */
    rtc_configuration();
    /* configure FWDGT */
    fwdgt_configuration();

    while(1) {
        delay_1ms(50U);
        //New attachment command before going to sleep
        pmu_deepsleep2_retention_enable();
        pmu_deepsleep2_sram_power_config(PMU_SRAM1_POWER_REMAIN);
        pmu_flag_clear(PMU_FLAG_DEEPSLEEP_2);
        /* PMU enters deepsleep mode */
        pmu_to_deepsleepmode(PMU_LDNPDSP_LOWDRIVE, WFI_CMD, PMU_DEEPSLEEP2);
        gd_eval_led_toggle(LED1);
    }
}


使用特权

评论回复
17
Sam131208|  楼主 | 2024-12-26 17:10 | 只看该作者
   问题已解决,GPIO要全部配置,不管是否引出来的PIN脚都要配置:
   
    gpio_mode_set(GPIOA, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_ALL);
    gpio_mode_set(GPIOB, GPIO_MODE_ANALOG, GPIO_PUPD_NONE, GPIO_PIN_ALL);
    gpio_mode_set(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, GPIO_PIN_ALL);
    gpio_mode_set(GPIOD, GPIO_MODE_INPUT, GPIO_PUPD_PULLDOWN, GPIO_PIN_ALL);
    gpio_mode_set(GPIOF, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, GPIO_PIN_ALL);

使用特权

评论回复
18
Amazingxixixi| | 2024-12-27 14:49 | 只看该作者
可以试试关掉其他接口,然后使用DCDC的芯片,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

128

帖子

1

粉丝