电压跳动导致电池读数变动的问题

jerry79 2009-03-06 11:37:24
加精
现在发现一个问题,由于电池端的电压在不同负载的时候会有所跳动,因此计算出的电池电量也会变化。
比如说,我再正常使用的时候电池电量显示75%,这个时候在播放MP3。不做其他操作,过了一分钟,背光会自动变暗,这是电量显示就变成80%,再过一分钟,背光会关闭,电池电量显示就会变成85%。这时如果我点击屏幕,让背光亮起来,电量显示又恢复到75%。
这种情况会产生两个问题:
一是客户如果查看电池电量,在背光变暗的时候就会发现电池电量增加了,而这时是放电的时候,电池电量增加是不符合常理的(对客户来说);
二是如果客户只在听MP3,,不做其他操作,背光到时候会自动关闭,客户虽然看不到电量显示,但是系统中计算出来的电量已经高于实际电量了。目前设置的是20%自动让系统待机,但是在这种情况下,如果等到计算出20%,可能实际电量已经剩余不到10%了,就是说会产生深度放电。
上述情况不论在充电还是放电的时候,都有。只不过充电的时候不会产生上述的两个问题。
有没有好的办法可以解决这个问题呢?
谢谢大家!
...全文
1526 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerry79 2009-03-10
  • 打赏
  • 举报
回复
大家说的都有一定的道理,结贴给分。
FlyBir999 2009-03-10
  • 打赏
  • 举报
回复
我是外行,发个言。如果仅从测量电压肯定不能准确测量出电池的剩余电量,如果又没有检测电流的手都的话可以考虑如下方案:因为为设备用电负荷是可以估算的。背光灯功率,播放音乐声音的大小功率其它等,在结合测量到的电压值就可以计算出基本接近的电流值来。
ly445665128 2009-03-09
  • 打赏
  • 举报
回复
上面的几个说的 都有一定道理
SlaughtChen 2009-03-09
  • 打赏
  • 举报
回复
mark
xqhrs232 2009-03-09
  • 打赏
  • 举报
回复
mark
ObjLinking 2009-03-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 jerry79 的帖子:]
现在发现一个问题,由于电池端的电压在不同负载的时候会有所跳动,因此计算出的电池电量也会变化。
比如说,我再正常使用的时候电池电量显示75%,这个时候在播放MP3。不做其他操作,过了一分钟,背光会自动变暗,这是电量显示就变成80%,再过一分钟,背光会关闭,电池电量显示就会变成85%。这时如果我点击屏幕,让背光亮起来,电量显示又恢复到75%。
这种情况会产生两个问题:
一是客户如果查看电池电量,在背光变暗的时候就会发现电池电量增加了,而这时是放电的时候,电池电量增加是不符合常理的(对客户来说);
二是如果客户只在听MP3,,不做其他操作,背光到时候会自动关闭,客户虽然看不到电量显示,但是系统中计算出来的电量已经高于实际电量了。目前设置的是 20%自动让系统待机,但是在这种情况下,如果等到计算出20%,可能实际电量已经剩余不到10%了,就是说会产生深度放电。
上述情况不论在充电还是放电的时候,都有。只不过充电的时候不会产生上述的两个问题。
有没有好的办法可以解决这个问题呢?
谢谢大家!
[/Quote]
以前接触过一些PMU的驱动,后来转去别的方向没有深入,希望下面的建议会对你有帮助。
这种情况照理不应该出现的,电池的放电曲线都是有规律的,一般在电量充足的情况下和电压是成正比的,不会有很大的变动,有几种情况可能会导致你的问题:
1.你的电池电压读取方式,是不是定期update ADC呢?如果是的话,有可能负载变化会引起电压的跳动,但是我想应该是很短的跳动,软件上是可以过滤掉的,建议用示波器连在电池上看一下这个电压的变化曲线,这个跳动到底持续多长时间,然后用算法来过滤,比如取10次ADC的平均就可以很好的解决这个问题了。
2.现在电池电量都是通过电池电压ADC的方式读取的,对于你这个问题我觉得另一方面应该是你的这张vol->batterylev的表有问题,可以试着把表做的更不精确一点,每个level之间的ADC值可以取大一些,级数设少一点。如果实在是需要精确的电池电量可以做两个表,不同负载取不同的表。
惠三海通 2009-03-08
  • 打赏
  • 举报
回复
加一个合适的电容在硬件电路上,或一条支路上根椐电容支路上的电压来读取数据可能会有改善!
fengqingjian 2009-03-08
  • 打赏
  • 举报
回复
好问题
受益了
lingzhi0412 2009-03-07
  • 打赏
  • 举报
回复
sadfsdafsdf
cyx90 2009-03-07
  • 打赏
  • 举报
回复
不错努力
gooogleman 2009-03-06
  • 打赏
  • 举报
回复
我觉得这个很难搞哦,

因为这个负载改不了,电池的本性就这样,难道还要使用一些高级的算法来纠正?

笔记本的不知道是怎么做的。
singlerace 2009-03-06
  • 打赏
  • 举报
回复
你的电池容量信息可能是根据当前电流大小算的。这个容量可能是指电池还能撑多长时间。
llKK0616 2009-03-06
  • 打赏
  • 举报
回复
75% %80等等都是通过软件来计算出来的吧,如果这样的话,改改软件不就可以了。
shuiyan 2009-03-06
  • 打赏
  • 举报
回复
MAX17040,这是并在电池两端的,也就是测电压。不过却精准无比,算法很强悍。

针对同一个电池,任何情况下,充电、放电的电量百分比都是极其接近的,不会有大的波动或跳变。

哪怕充电时,猛地拔掉AC,电量也不会变化,即充电时仍然显示精准的电量。

其中有一点值得借鉴:电量的变化很缓慢,即便有大负载的冲击,造成实际电压的变化,也不会立即在电量计的百分比读数上显示出来。
儿大不由爷 2009-03-06
  • 打赏
  • 举报
回复
电量的显示不可能是很精确的,只能是个大概的值
ayjlwd1 2009-03-06
  • 打赏
  • 举报
回复
不错,每次看博主文章都受益颇多。希望博主继续发,我继续跟
feiaiduanyuqi 2009-03-06
  • 打赏
  • 举报
回复
你的电池容量信息可能是根据当前电流大小算的。这个容量可能是指电池还能撑多长时间。
nettman 2009-03-06
  • 打赏
  • 举报
回复
Mark!
bestboy1 2009-03-06
  • 打赏
  • 举报
回复
顶起来。
menghnhhuan 2009-03-06
  • 打赏
  • 举报
回复
这段时间我正打算用AD来检测电压,听你们这样说,恐怕有难度,能不能设计一个简单的算法,建立线性表分析一下,管不管用还不清楚
加载更多回复(13)

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧