硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2831|回复: 12
收起左侧

[有问必答] STM32F407功耗问题

[复制链接]

42

主题

81

回帖

207

积分

高级会员

积分
207
发表于 2022-4-25 12:16:36 | 显示全部楼层 |阅读模式
1、进入待机模式   电流ua级别
[C] 纯文本查看 复制代码
//系统进入待机模式
void Sys_Enter_Standby(void)
{		
  //while(WKUP_KD);			//等待WK_UP按键松开(在有RTC中断时,必须等WK_UP松开再进入待机)
 
	RCC_AHB1PeriphResetCmd(0X04FF,ENABLE);//复位所有IO口
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//使能PWR时钟		 
	 
	PWR_BackupAccessCmd(ENABLE);//后备区域访问使能

	//这里我们就直接关闭相关RTC中断
	RTC_ITConfig(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA,DISABLE);//关闭RTC相关中断,可能在RTC实验打开了。
	RTC_ClearITPendingBit(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA);//清楚RTC相关中断标志位。
	
	PWR_ClearFlag(PWR_FLAG_WU);//清除Wake-up 标志
	
	PWR_WakeUpPinCmd(ENABLE);//设置WKUP用于唤醒
	
	PWR_EnterSTANDBYMode();	//进入待机模式
	 
}


2、进入停止模式   电流再3ma左右
[C] 纯文本查看 复制代码
void Sys_Enter_StopMode(void)
{
	CPU_SR_ALLOC();
	RCC_AHB1PeriphResetCmd(0X04FF,ENABLE);//复位所有IO口
	SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;  /* 关闭滴答定时器 */  
	PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);				
	OS_CRITICAL_ENTER();	//进入临界区			
	/* 
		1、当一个中断或唤醒事件导致退出停止模式时, HSI RC振荡器被选为系统时钟。
		2、退出低功耗的停机模式后,需要重新配置使用HSE。		
	*/
	RCC_HSEConfig(RCC_HSE_ON);
	while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET){}

	RCC_PLLCmd(ENABLE);
	while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET){}
	RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
		
	while (RCC_GetSYSCLKSource() != 0x08){}
	SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; /* 使能滴答定时器 */  
	OS_CRITICAL_EXIT();	//退出临界区
}



都是在初始化的时候进入的,没有配置任何IO
[C] 纯文本查看 复制代码
int main(void)
{
	OS_ERR err;
	CPU_SR_ALLOC();
	//Sys_Enter_StopMode();
	delay_init(168);  //时钟初始化
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断分组配置
	//Sys_Enter_Standby();
	Sys_Enter_StopMode();




问题:进入停止模式   电流在3ma左右  纳闷了   待机模式可以达到ua级别(小于1ma)
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2022-4-25 17:25:24 | 显示全部楼层
当前是怎么测试的,可以考虑弄个裸芯片测试,不要加电源稳压芯片,不接外置晶振,就一个上电复位,可以测试下。
回复

使用道具 举报

356

主题

2180

回帖

3253

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3253
发表于 2022-4-26 11:04:40 | 显示全部楼层
这个在datasheet中有指标的,应该是真实的。 如果电流大了,一般是IO口外面接了些电路造成的。
回复

使用道具 举报

42

主题

81

回帖

207

积分

高级会员

积分
207
 楼主| 发表于 2022-4-26 11:22:13 | 显示全部楼层
eric2013 发表于 2022-4-25 17:25
当前是怎么测试的,可以考虑弄个裸芯片测试,不要加电源稳压芯片,不接外置晶振,就一个上电复位,可以测试 ...

待机模式300ua  说明外部电路漏电已经很小了
停止模式还有3个ma左右 是不是说明某些IO口漏电了
我看手册进入停止模式的极限功耗是有条件的[img][/img]
回复

使用道具 举报

42

主题

81

回帖

207

积分

高级会员

积分
207
 楼主| 发表于 2022-4-26 11:29:14 | 显示全部楼层
image.png [img][/img]
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2022-4-26 11:34:22 | 显示全部楼层

直接把整个芯片的代码擦除掉线测试下。
回复

使用道具 举报

42

主题

81

回帖

207

积分

高级会员

积分
207
 楼主| 发表于 2022-4-26 11:56:59 | 显示全部楼层
eric2013 发表于 2022-4-26 11:34
直接把整个芯片的代码擦除掉线测试下。

4ma
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2022-4-26 12:06:53 | 显示全部楼层

4ma感觉有点太高了。
H7系列整片擦除也才8mA,我这还挂了一个LED灯。

image.png
回复

使用道具 举报

42

主题

81

回帖

207

积分

高级会员

积分
207
 楼主| 发表于 2022-4-26 12:10:13 | 显示全部楼层
eric2013 发表于 2022-4-26 12:06
4ma感觉有点太高了。

但是进入停止模式能达到0.3ma哦  太奇怪了
回复

使用道具 举报

42

主题

81

回帖

207

积分

高级会员

积分
207
 楼主| 发表于 2022-4-26 14:43:45 | 显示全部楼层
IO全部设置为
[C] 纯文本查看 复制代码
	GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_All;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; 
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化	
	GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化	
	GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化	
	GPIO_Init(GPIOD, &GPIO_InitStructure);//初始化	
	GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化	
	GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化	
	GPIO_Init(GPIOG, &GPIO_InitStructure);//初始化		


电流降到1.48ma
回复

使用道具 举报

42

主题

81

回帖

207

积分

高级会员

积分
207
 楼主| 发表于 2022-4-26 15:04:34 | 显示全部楼层
justdying 发表于 2022-4-26 12:10
但是进入停止模式能达到0.3ma哦  太奇怪了

成功了  部分IO口时钟少开了  现在在500ua 左右
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2022-4-26 17:07:57 | 显示全部楼层
550MHz的H730降低下都可以做到2ma,而且点了个灯。


image.png



回复

使用道具 举报

42

主题

81

回帖

207

积分

高级会员

积分
207
 楼主| 发表于 2022-4-26 18:48:26 | 显示全部楼层
eric2013 发表于 2022-4-26 17:07
550MHz的H730降低下都可以做到2ma,而且点了个灯。

厉害了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 05:22 , Processed in 0.048529 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表