OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10244|回复: 6

STM32F103VET6 RTC 实际功耗是多少?

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-6-1
在线时间
1 小时
发表于 2018-6-1 20:51:57 | 显示全部楼层 |阅读模式
1金钱
我测试发现STM32F103VET6 RTC 实际功耗是2.5uA左右,而数据手册上的是1.4uA不知到是不是哪里出了问题?
外围电路没什么特殊。TAMPER-RTC引脚悬空,内部做了上拉也没效果。哪位知道出了什么问题?

u8 RTC_Init(void)
{
//检查是不是第一次配置时钟
u8 temp=0;
RTC_NVIC_Config();

//if(BKP->DR1!=0X5050)//第一次配置
if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050)  //从指定的后备寄存器中读出数据:读出了与写入的指定数据不相乎
  {     
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //使能PWR和BKP外设时钟   
  PWR_BackupAccessCmd(ENABLE); //使能RTC和后备寄存器访问
  BKP_DeInit(); //将外设BKP的全部寄存器重设为缺省值  
  RCC_LSEConfig(RCC_LSE_ON); //设置外部低速晶振(LSE),使用外设低速晶振
  while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET) //检查指定的RCC标志位设置与否,等待低速晶振就绪
   {
   temp++;
   delay_ms(10);
   }
  if(temp>=250)return 1;//初始化时钟失败,晶振有问题     
  RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);  //设置RTC时钟(RTCCLK),选择LSE作为RTC时钟   
  RCC_RTCCLKCmd(ENABLE); //使能RTC时钟  
  RTC_WaitForSynchro();  //等待最近一次对RTC寄存器的写操作完成
  RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成
  RTC_ITConfig(RTC_IT_SEC, ENABLE);  //使能RTC秒中断
  RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成
  RTC_SetPrescaler(32767); //设置RTC预分频的值
  RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成
  RTC_Set(2009,12,2,10,0,55);  //设置时间   
  BKP_WriteBackupRegister(BKP_DR1, 0X5050); //向指定的后备寄存器中写入用户程序数据
  }
else//系统继续计时
  {
  RTC_WaitForSynchro(); //等待最近一次对RTC寄存器的写操作完成
  RTC_ITConfig(RTC_IT_SEC, ENABLE); //使能RTC秒中断
  RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成
  }               
RTC_Get();//更新时间
RCC_ClearFlag(); //清除RCC的复位标志位
return 0; //ok
}
/*

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-1 20:51:58 | 显示全部楼层
bytechen 发表于 2018-6-4 09:30
IO口没有全部断开,RCT供电应该只和PC13、PC14、PC15这3个引脚的供电有关系,和其它IO没有关系吧?这个时 ...

全部断开试试。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-2 01:53:14 | 显示全部楼层
我感觉2.5uA已经不错了啊。1.4uA,得看下ST官方写的是在什么条件下搞出来的吧?
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-6-1
在线时间
1 小时
 楼主| 发表于 2018-6-3 22:01:11 | 显示全部楼层
我想知道,在什么情况下才能达到1.4uA,除了RTC电池,外部电源是全断开的。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-4 01:38:26 | 显示全部楼层
bytechen 发表于 2018-6-3 22:01
我想知道,在什么情况下才能达到1.4uA,除了RTC电池,外部电源是全断开的。

IO口也全部断开了么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-6-1
在线时间
1 小时
 楼主| 发表于 2018-6-4 09:30:32 | 显示全部楼层
正点原子 发表于 2018-6-4 01:38
IO口也全部断开了么?

IO口没有全部断开,RCT供电应该只和PC13、PC14、PC15这3个引脚的供电有关系,和其它IO没有关系吧?这个时候外部电源没有,单片机应该是没有跑的。我量的是RTC电池的电流。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2018-6-1
在线时间
1 小时
 楼主| 发表于 2018-6-5 14:27:34 | 显示全部楼层
问题已经找到了, 硬件工程师用例NSR0320MW2T1作为电池充电二级管,反向电流太大了。换成1N4148,就好了,RTC电流在1.2uA左右。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-30 13:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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