打印

请教版主 关于VBAT后备电池的问题。急

[复制链接]
楼主: luckytoad
手机看帖
扫描二维码
随时随地手机跟帖
21
关于电池,我在一个外部的RTC也遇到过,需要设置一下,不然电池很快就没电了,估计是内部结构的原因,呵呵,不过你串了那么大个电阻,想没电也要猴年马月了。RTC内部是有切换的,不明白人们为什么自己还要加一级切换,香主觉得这是自然习惯,还是非常有必要。

使用特权

评论回复
22
yytdragon| | 2010-7-16 08:35 | 只看该作者
关于电池,我在一个外部的RTC也遇到过,需要设置一下,不然电池很快就没电了,估计是内部结构的原因,呵呵,不过你串了那么大个电阻,想没电也要猴年马月了。RTC内部是有切换的,不明白人们为什么自己还要加一级切换 ...
午夜霓虹 发表于 2010-7-16 08:27

“RTC内部有切换的”?
难道是指当主电源存在时,就主电源供电?

使用特权

评论回复
23
ylsiw| | 2010-7-16 08:43 | 只看该作者
关注中~

使用特权

评论回复
24
zhaoyu2005| | 2010-7-16 09:07 | 只看该作者
25# yytdragon
当然了,当主电存在时,使用主电,主电掉了,自动切换到备用电池。主电3.3V时正常,没测过低于3V时是不是正常,datasheet看的不仔细,没找到详细的说明。

使用特权

评论回复
25
yytdragon| | 2010-7-16 09:16 | 只看该作者
27# zhaoyu2005
偶OUT了,芯片已经集成这个功能了么?
不过说实话不敢信啊
就像我们不敢信,CPU内部的看门狗一样……

使用特权

评论回复
26
午夜霓虹| | 2010-7-16 09:24 | 只看该作者
我测试stc的看门狗就发现了这个问题,当系统电源波动的时候,死了就起不来了,确实和外部看门狗的性能区别较大,但是电源切换不应该有什么问题吧。

使用特权

评论回复
27
luckytoad|  楼主 | 2010-7-16 09:56 | 只看该作者
STM32发现过上电复位或wdt有问题吗?我没发现问题 29# 午夜霓虹

使用特权

评论回复
28
luckytoad|  楼主 | 2010-7-16 10:00 | 只看该作者
虽然串了个大电阻,但漏电流如此之大,用不了多少时间电池就over了,另外我测试的结果不是通过软件设置rtc,二是上次电就行了,带着电池上上电。
   版主呢,给个结论啊,等待中。。。。

使用特权

评论回复
29
mcuisp| | 2010-7-16 10:09 | 只看该作者
需要注意的问题、、、
mark一下

使用特权

评论回复
30
ST_ARM| | 2010-7-16 10:12 | 只看该作者
1、楼主处理程序
16# luckytoad

楼主说ms_100_cntdbu和ms_100_cn这两个变量的值不等,则说明有其他中断发生,但是不是楼主进行处理的中断。楼主可以这样测试一下:
void TIM6_IRQHandler(void)                  //1ms
{
  ms_100_cntdbu++;
  if ((TIM6->SR & 0x0001) != 0)    // check interrupt source
  {                 
                ms_100_cnt++;
                   TIM6->SR &= ~(1<<0);                          // clear UIF flag        
   }
   else {
             Other_CNT ++;
   }
}
再看看是什么问题。


2、楼主的电路图
楼主的设计的备用电路用在其他公司的MCU上没有问题,但是这样用法在STM32上是不对的。

当Vdd掉电时,系统会自动切换到Vbat引脚上,而用户的电路上也会做一次切换,由于你使用的电池电压与3.3V的压差、二极管反应速度和外围电路上的电容值大小的问题,这些会影响到Vbat引脚在内部切换和外部切换的同步性,一旦外部的切换比内部的慢,就会导致Vbat未能及时给内部的Backup区域供电,导致数据丢失。

至于你所说的电压只有1.5V,你可以再检测一下,先将电路从Vbat上断开测试一下,然后再连接上去。

使用特权

评论回复
31
luckytoad|  楼主 | 2010-7-16 10:21 | 只看该作者
33# ST_ARM
1、感谢st_arm。
2、关于中断,我测试了很多,包括楼主说的方法。刚开始也是怀疑其它中断源引起,但通过监测,排除了,而且定时器6只有一个中断源,他的sr也只有一位有效。
3、如果按你的测试,cntdbu = cnt  但other = 0;原因很清楚,此时你的清中断标志不是最后一句,不会多进中断的,也不会有其他的标志造成进中断。手头有板子的朋友很容易验证的,而且不止是定时器中断,只要是中断都这样的。
4、关于我的电路图,我在仔细按你的思路分析一下。

使用特权

评论回复
32
香水城| | 2010-7-16 10:22 | 只看该作者
经过咨询设计师,你的问题可以通过减小R39到1K,或者抬高R39与D9连接处的电压至2.7V以上解决;也可以通过增加C35的容量解决,C35的大小取决于R39的大小和R39与D9连接处的电压大小。

这是因为在没有VDD、只提供VBAT时,芯片内部先要检测VDD与VBAT端的电压是否满足要求,然后再断开检测电路切换到正常为RTC供电。这个检测电路会在瞬间需要一个比较大的电流,大约是15us和几百uA,如果电压太低并且C35比较小,则上电瞬间芯片VBAT端电压会下降,由于R39较大,这个电压下降的过程会比较长。所以减小R39、增加R39输入端的电压或增加C35的容量,都可以解决问题。

使用特权

评论回复
33
luckytoad|  楼主 | 2010-7-16 10:43 | 只看该作者
"先将电路从Vbat上断开测试一下,然后再连接上去。"这个我到测试过,断开VBT,供电的时候是3.3v,不供电的时候,只有电池是3v,我是3v电池。可以确认是VBAT引脚把电压拉下来的。

使用特权

评论回复
34
香水城| | 2010-7-16 10:44 | 只看该作者
至于VDD上电之后再断电,就没有VBAT端电压下降的问题,估计是你整个电路的滤波电容还没有充分放完电时,这部分电量足够内部检测电路操作,所以VBAT端电压不再下降。

使用特权

评论回复
35
luckytoad|  楼主 | 2010-7-16 10:46 | 只看该作者
经过咨询设计师,你的问题可以通过减小R39到1K,或者抬高R39与D9连接处的电压至2.7V以上解决;也可以通过增加C35的容量解决,C35的大小取决于R39的大小和R39与D9连接处的电压大小。

这是因为在没有VDD、只提供VBAT ...
香水城 发表于 2010-7-16 10:22

好的,我马上验证。多谢各位,验证好了给结论。

使用特权

评论回复
36
ST_ARM| | 2010-7-16 11:10 | 只看该作者
本帖最后由 ST_ARM 于 2010-7-16 11:13 编辑

楼主在16楼说:“ms_100_cntdbu和ms_100_cn这两个变量的值不等”
“TIM6->SR &= ~(1<<0);  这条语句不能是最后一条,否则就会再进一次中断,但标志没置位。通过输出管脚或者一个计数,很容易看到。只要TIM6->SR &= ~(1<<0);  再加一条语句,就行了。串口 和 dma都是这样。因为多进的这次查不到标志,一般人不容易注意。估计和指令流水线有关。”

请问你是在仿真的情况下看到的还是全速运行后停下来看到的?

楼主在33楼上说:“cntdbu = cnt  但other = 0。”

如果cntdbu = cnt说明中断每次都进去了且标志位UIF被置位了,说明中断没有问题;如果你使用仿真,有可能单步走时,又有一个中断进来,这时你的程序未对UIF标志进行被清除,该位被重复置位,而你的程序并不知道这个问题,在后清除该标志位时,第二次的中断的信息同时被你擦除了,但是该中断已被传输到Cortext-M3内核,当你退出该中断后,系统会再次进入该中断,但是你看不到UIF标志位,因为你已经将其清除。如果你全速运行时,这个问题就不会出现,因为CPU处理速度很快,能够在下一次中断到来之前清除掉UIF标志位。

使用特权

评论回复
37
luckytoad|  楼主 | 2010-7-16 11:18 | 只看该作者
软件仿真不会出,用jlink能够看到。可以全速运行,停下来看。
但一般我不太信仿真器的。我的习惯是软件仿真,+ 硬件运行,来测试,仿真器我只用下载功能。
我说的现象都是正常下载运行,不带仿真器运行的结果。排除你说的仿真带来的问题假象。
中断时没问题,多进的这次中断,你查不到任何标志的,基本可以肯定是指令流水线原因造成的。

使用特权

评论回复
38
香水城| | 2010-7-16 11:37 | 只看该作者
哈哈,关于中断的问题最好你们再开帖讨论,我最关心的是你那个VBAT的问题,:lol

赶快给我一个结论,我好交差,;P

使用特权

评论回复
39
luckytoad|  楼主 | 2010-7-16 11:48 | 只看该作者
35# 香水城
香水城版主:
1、抬高R39与D9连接处的电压至2.7V以上,我不是很理解,rtc一般要求1.8v以上就能维持工作,所以在存储状态下,不能保证连接处的电压至2.7V,如果真是这样数据保持**不了多少时间的。还有就是正常状态下,漏电流很小的时候,连接处的电压就是3v。
2、上电一次就可以,是不是电容残留电压的问题。我正在测试,方法是:
  a、拿一个测试正常的板子,不上电,测量VBAT 电压为3v
  b、取掉纽扣电池,再安装上,不带电测试VBT,电压为1.35.
  c、加电测试,VBAT 3.14V
  b、断电测试,VBAT正常,电压为3v左右。
  e、过一小时,2小时 半天我在测试看看VBAT是否一致正常。
  目的验证是否上电一次就正常,是否和电容残留电压有关,验证是不是只要带电池上过电,就一直正常。

结果实时更新

使用特权

评论回复
40
luckytoad|  楼主 | 2010-7-16 11:53 | 只看该作者
41# 香水城
     我中午去开中断的新帖,欢迎讨论。在这里就不讨论中断了。
      关于电池的问题,我继续测试,你也不要急着交差,一定要盖棺定论的。你们也可提出测试大纲,我出测试结果。

使用特权

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

本版积分规则