[N32L4xx] N32L403低功耗测试

[复制链接]
1567|9
 楼主| lovelessing 发表于 2023-1-10 14:20 | 显示全部楼层 |阅读模式
N32L403低功耗测试,只焊接芯片最小单元,VDD处3.3V供电standby模式下电流最低9uA,这个数值是不是正常的,如何进一步降低待机电流,待机操作步骤如下
  1. log_info("\r\n  MCU Goto Standby!\r\n");
  2.         //LED_ON;
  3.         LORA_PWR_OFF;
  4.         TIM_Enable(TIM1, DISABLE);
  5.         TIM_Enable(TIM6, DISABLE);
  6.         ADC_Enable(ADC, DISABLE);
  7.         DMA_EnableChannel(DMA_CH1, DISABLE);
  8.         USART_Enable(USART1, DISABLE);//log
  9.         USART_Enable(USART2, DISABLE);
  10.         
  11.         GPIO_InitType GPIO_InitStructure;
  12.         GPIO_InitStruct(&GPIO_InitStructure);
  13.         GPIO_InitStructure.Pin        = GPIO_PIN_15;
  14.         GPIO_InitStructure.GPIO_Pull = GPIO_No_Pull;
  15.         GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Input;
  16.         GPIO_InitPeripheral(GPIOA, &GPIO_InitStructure);
  17.         GPIO_InitStructure.Pin        = GPIO_PIN_7;
  18.         GPIO_InitPeripheral(GPIOB, &GPIO_InitStructure);
  19.         //372uA
  20. //        GPIOA->PMODE = 0x00000000;GPIOA->PUPD = 0x00000000;
  21. //        GPIOB->PMODE = 0x00000000;GPIOB->PUPD = 0x00000000;
  22. //        GPIOC->PMODE = 0x00000000;GPIOC->PUPD = 0x00000000;
  23. //        GPIOD->PMODE = 0x00000000;GPIOD->PUPD = 0x00000000;
  24.         RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA | RCC_APB2_PERIPH_GPIOB | \
  25.                                 RCC_APB2_PERIPH_GPIOC | RCC_APB2_PERIPH_GPIOD | \
  26.                                 RCC_APB2_PERIPH_TIM1  | RCC_APB2_PERIPH_AFIO  | \
  27.                                 RCC_APB2_PERIPH_USART1, DISABLE);
  28.         RCC_EnableAHBPeriphClk(RCC_AHB_PERIPH_ADC | RCC_AHB_PERIPH_DMA, DISABLE);
  29.         RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_TIM6 | RCC_APB1_PERIPH_USART2, DISABLE);
  30.         if(RESET == RCC_GetFlagStatus(RCC_CTRLSTS_FLAG_MSIRD))
  31.         {
  32.             RCC_ConfigMsi(RCC_MSI_ENABLE, RCC_MSI_RANGE_100K);
  33.             while(SUCCESS != RCC_WaitMsiStable());
  34.         }
  35.         RCC_EnableHsi(DISABLE);
  36.         RCC_EnableMsi(DISABLE);
  37.         RCC_EnablePll(DISABLE);
  38.         Wakeup_Pin_Config();
  39.         /* Enable PWR and BKP clock */
  40.         RCC_EnableAPB1PeriphClk(RCC_APB1_PERIPH_PWR, ENABLE);
  41.         /* Enable WKUP pin */
  42.         PWR_WakeUpPinEnable(WAKEUP_PIN1,ENABLE);
  43.         //DBG_ConfigPeriph(DBG_STDBY,ENABLE);
  44.         
  45.         /* Check if the Wake-Up flag is set */
  46.         if (PWR_GetFlagStatus(1,PWR_STBY_FLAG) != RESET)
  47.         {
  48.             /* Clear Wake Up flag */
  49.             PWR_ClearFlag(PWR_STBY_FLAG);
  50.         }
  51.             /* Check if the Wake-Up flag is set */
  52.         if (PWR_GetFlagStatus(1,PWR_WKUP1_FLAG) != RESET)
  53.         {
  54.             /* Clear Wake Up flag */
  55.             PWR_ClearFlag(PWR_WKUP1_FLAG);
  56.         }
  57.         
  58.         //507uA
  59.         /* Request to enter STANDBY mode */
  60.         PWR_EnterSTANDBYMode(PWR_STOPENTRY_WFI,PWR_CTRL3_RAM2RET);
  61.         
  62.         //空片最低8.1uA,平均9uA
还有寄存器方式设定所有IO为输入电流反而加大了
sy12138 发表于 2023-1-10 14:32 | 显示全部楼层
外部电路有漏电流进来吧,我这边在开发板上跑demo实测是1uA多
 楼主| lovelessing 发表于 2023-1-10 14:46 | 显示全部楼层
sy12138 发表于 2023-1-10 14:32
外部电路有漏电流进来吧,我这边在开发板上跑demo实测是1uA多

只有芯片和外围电容,ldo都没有,直接3.3V供电测试的
 楼主| lovelessing 发表于 2023-1-10 17:11 | 显示全部楼层
手册上说除了IO都输入外,所有IO还要连到静态电平,悬空还会增加功耗嘛
chenjun89 发表于 2023-1-10 19:40 来自手机 | 显示全部楼层
看看芯片数据手册描述不就知道了吗
 楼主| lovelessing 发表于 2023-1-11 09:19 | 显示全部楼层
chenjun89 发表于 2023-1-10 19:40
看看芯片数据手册描述不就知道了吗

手册也写的standby不到2uA,但是测试做不到啊,也没有最低功耗测试的demo,就是不清楚哪里没有彻底关掉嘛
 楼主| lovelessing 发表于 2023-1-11 11:06 | 显示全部楼层
sy12138 发表于 2023-1-10 14:32
外部电路有漏电流进来吧,我这边在开发板上跑demo实测是1uA多

你的测试程序方便参考下嘛,sdk里面的例子不是最低功耗
sy12138 发表于 2023-1-11 14:19 | 显示全部楼层
lovelessing 发表于 2023-1-11 11:06
你的测试程序方便参考下嘛,sdk里面的例子不是最低功耗

我跑的就是demo,不过我用的是裸片测的,你有外围电路的话建议在进入低功耗之前把GPIO全部配置为模拟输入模式
 楼主| lovelessing 发表于 2023-1-12 09:32 | 显示全部楼层
sy12138 发表于 2023-1-11 14:19
我跑的就是demo,不过我用的是裸片测的,你有外围电路的话建议在进入低功耗之前把GPIO全部配置为模拟输入 ...

多谢,IO全换成模拟输入功耗降了非常大,测试只有0.9uA,应该是表有误差,但是效果已经很不错了,之前一直是设置PMODE为0的浮空输入,学习到了,非常感谢
sy12138 发表于 2023-1-12 09:46 | 显示全部楼层
lovelessing 发表于 2023-1-12 09:32
多谢,IO全换成模拟输入功耗降了非常大,测试只有0.9uA,应该是表有误差,但是效果已经很不错了,之前一 ...

好的,有外围电路的话建议配置IO模拟输入
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

136

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部