打印
[技术问答]

HC32L130J8TA在深度睡眠模式下任然有200多UA

[复制链接]
1330|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
HC, IO, pi, GPIO, gp
本帖最后由 shibing2005 于 2019-12-31 14:01 编辑

公司最近在试用国产芯片华大的HC32L1330J8TA的,写了一些程序功能都没有问题就是深度睡眠模式下始终电流太大。希望大家给帮忙分析下问题出在哪里?
//*****************************************************************************
int32_t main(void)
{

                App_ClkInit();
                App_LedInit();     //< LED端口初始化
                R_LED_L;
                delay1ms(1000);
                delay1ms(1000);
                delay1ms(1000);        
                delay1ms(1000);        
                R_LED_H;
                delay1ms(500);
          _LowPowerModeGpioSet();
          Lpm_GotoSleep(TRUE);//进入深度睡眠模式    FALSE:唤醒后不再自动进入休眠        
    while(1)
    {                                 
    }
}

//时钟初始化配置
void App_ClkInit(void)
{
        stc_sysctrl_clk_cfg_t stcCfg;
        Sysctrl_SetRCHTrim(SysctrlRchFreq4MHz);  
        stcCfg.enClkSrc    = SysctrlClkRCH;        
        stcCfg.enHClkDiv   = SysctrlHclkDiv1;
        stcCfg.enPClkDiv   = SysctrlPclkDiv1;
        Sysctrl_ClkInit(&stcCfg);        
        Sysctrl_ClkSourceEnable(SysctrlClkXTL, TRUE);

}

void App_LedInit(void)
{
    stc_gpio_cfg_t stcGpioCfg;  
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);     
    stcGpioCfg.enDir = GpioDirOut;
    stcGpioCfg.enPu = GpioPuDisable;
    stcGpioCfg.enPd = GpioPdEnable;
    Gpio_ClrIO(R_LED_PORT, R_LED_PIN);
    Gpio_Init(R_LED_PORT, R_LED_PIN, &stcGpioCfg);   
}

static void App_LowPowerModeGpioSet(void)
{
    ///< 打开GPIO外设时钟门控
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);

    //swd as gpio
    Sysctrl_SetFunc(SysctrlSWDUseIOEn, TRUE);

    ///< 配置为数字端口
    M0P_GPIO->PAADS = 0;
    M0P_GPIO->PBADS = 0;
    M0P_GPIO->PCADS = 0;
    M0P_GPIO->PDADS = 0;

    ///< 配置为端口输入(除LED端口外)
    M0P_GPIO->PADIR = 0XFFFF;
    M0P_GPIO->PBDIR = 0XFFFF;
    M0P_GPIO->PCDIR = 0XDFFF;
    M0P_GPIO->PDDIR = 0XFFFF;

    ///< 输入下拉
    M0P_GPIO->PAPD = 0xFFFF;
    M0P_GPIO->PBPD = 0xFFFF;
    M0P_GPIO->PCPD = 0xFFFF;
    M0P_GPIO->PDPD = 0xFFFF;
}
//*****************************************************************************

TUZ.png (467.9 KB )

TUZ.png

使用特权

评论回复
沙发
hayden0| | 2020-1-1 08:50 | 只看该作者
没设置IO,IO漏电造成的!

使用特权

评论回复
板凳
hjl2832| | 2020-1-2 12:51 | 只看该作者
进入低功耗后,IO口三态,你确认LED这样接的漏电流是多少了吗?去掉LED看看。
正常用法,做低功耗的应用,LED最好是IO拉电流,而不是灌电流,灌电流是会形成漏电回路的。要做灌电流应用,通过外部N型三极管或MOSFET管控制吧。

使用特权

评论回复
地板
PD03关闭上拉,电流基本就降下来了

使用特权

评论回复
5
martinhu| | 2020-1-3 18:57 | 只看该作者
LED用的PC13,为什么初始化的时候要使能PC13的下拉?这样不是一直有电流存在吗?
正确的做法,应该是在进入低功耗之前,设置为输入,或者输出高电平3v3,与外挂的电路等电势

使用特权

评论回复
6
shibing2005|  楼主 | 2020-1-8 14:20 | 只看该作者
一事无成就是我 发表于 2020-1-2 15:01
PD03关闭上拉,电流基本就降下来了

谢谢  找到原因了 基本就是这个问题

使用特权

评论回复
7
国芯发烧友| | 2020-1-19 11:14 | 只看该作者
华大有个“华大单片机应用交流”群 有问题可以群里讨论

使用特权

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

本版积分规则

2

主题

5

帖子

0

粉丝