爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 10562|回复: 5
收起左侧

[求助] 【专题文章】关于电压调整(补充)-兼答 cbclcxlcb

[复制链接]
发表于 2005-8-7 00:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
这些可以作为电压调整的一个补充,也算是对cbclcxlcb的争论得答复!新开一贴。

我说这个参数只是为了吓人,而且也看过你的说明,我想你并没有看懂这个公式!
他并不仅仅是为了使工模显示的更准确,那仅仅是我写的程序的功能。
这个公式的重要性是因为他是系统用来从AD计算你的电压值的公式。
我在关于电压调整里已经说过了,
00是A点的AD值,02是B点的电压值,04是B点的AD值,06是A点的电压和B点电压的查值。
他的原理就是两点确定一条直线,然后根据这条直线来确定某个AD值所对应的电压值。
那么你目前所有的东西都是使这条直线的斜率降低。我们可以来看一下你的电参:
(0000)0   (0002)4201 (0004) 62500    (0006)290
(0000)AD为0的话所对应的电压大概是4.100V。(正常情况)
(0004)AD为62500就是-3036(因为是有符号数)对应的电压大概是4.600V(正常情况)
我所说的正常情况是指的是我的参数,一个基本正常的参数。
(0000)5218(0002)4201 (0004) 64931    (0006)1004
如果取点的话。你的A和B点分别是A(-3000,4.201)B(0,3.911)
我的A和B点是A(-600,4.201)B(0, 4.100)B点是我计算得出。
那我们从图形上看一下:
[upload=jpg]UploadFile/2003121411161022190.jpg[/upload]
黑线是我的电压直线。(为了清晰,重了一条红线)
蓝线是你的电压直线。
你的目的就是为了使电压直线的斜率变小而已。
当然你也可以说我的只是理论,缺乏实践。但是在手机中,就是这样计算电压的。
**************************************************************
不好意思,图是随便画的,不是很清楚。
我在《关于电压调整》就说过,大幅调低0006无非是减小直线的斜率,使电压比实际值在关机时偏大,充电时偏小。这样可以获得更多的待机时间。
而你的作法并没有超出公式的范围,目的也是为了使曲线的斜率偏小,如果这样的话完全不必作这样一个吓人的电参。只需固定一点,如0000和0002,然后调04和06就可以。就是说你现在这个电参和直接调小0006并无分别。
你以前写过的调整电压的新方法根本没有超出公式的范围,因为公式就是系统的准则!
***************************************************************
下面是系统从AD值获得电压的程序,我做了以下注释,大家有兴趣的可以用AT来看一下对应的值!

0xB5:0F68 ADToVolate:                            ;R12是传入的AD值                     
0xB5:0F68                                      
0xB5:0F68             mov DPP0, #0Fh
0xB5:0F6C             nop
0xB5:0F6E             mov r14, word_3E522-----;取得存放电压参数的Block67地址
0xB5:0F72             mov r15, word_3E524
0xB5:0F76             add r14, #4
0xB5:0F78             extp r15, #1------------------;取得参数0004
0xB5:0F7A             mov r1, [r14]
0xB5:0F7C             mov r4, r12               
0xB5:0F7E             sub r4, r1-----------------------;AD-P0004       
0xB5:0F80             neg r4---------------------------;改变符号
0xB5:0F82             mov r1, word_3E522
0xB5:0F86             mov r2, word_3E524
0xB5:0F8A             extp r2, #1
0xB5:0F8C             mov r3, [r1+6]---------------;取得参数0006
0xB5:0F90             mul r4, r3----------------------;P0006*(-(AD-P0004))
0xB5:0F92             mov r5, MDH
0xB5:0F96             mov r4, MDL
0xB5:0F9A             extp r2, #1               
0xB5:0F9C             mov r3, [r1]-------------------;取得参数0000       
0xB5:0F9E             extp r15, #1
0xB5:0FA0             mov r14, [r14]---------------;取得参数0004
0xB5:0FA2             sub r3, r14                ;P0000-P0004
0xB5:0FA4             mov r10, r3
0xB5:0FA6             ashr r10, #0Fh
0xB5:0FA8             mov r11, r10
0xB5:0FAA             mov r10, r3
0xB5:0FAC             calls 0C7h, DivR4R5byR10R11-----------;(P0006*(-(AD-P0004))/(P0000-P0004))
0xB5:0FB0             mov r12, r4
0xB5:0FB2             mov DPP0, #0Fh
0xB5:0FB6             mov r13, r5
0xB5:0FB8             mov r14, word_3E522
0xB5:0FBC             mov r15, word_3E524
0xB5:0FC0             extp r15, #1
0xB5:0FC2             mov r1, [r14+2]----------------------------;取得参数0002
0xB5:0FC6             mov r2, r1
0xB5:0FC8             ashr r2, #0Fh
0xB5:0FCA             add r12, r1
0xB5:0FCC             addc r13, r2
0xB5:0FCE             mov r4, r12------------------------------;P0002+(P0006*(-(AD-P0004))/(P0000-P0004))
0xB5:0FD0             rets---------------------------------------;作为返回的电压值
0xB5:0FD0 ; End of function ADToVolate
发表于 2005-8-21 10:04:14 | 显示全部楼层
主题:关于电压调整
作者:Cool_Lang
摘要:
本文讲述了了西门子手机内部电压处理和电压参数的关系,
--------------------------------------------------------------------------------

文中有些公式,是因为我是数学系出身,大家不喜欢可以不看。


这个话题讨论的比较多,因为以前没有研究过电池问题,所以也没写什么文章。不过之前看程序看到了处理电压参数的部分。所以写了一个调整电压参数的程序,至于更深的东西,一直没时间看。现在就把我知道的和电参有关的东西写一下,供大家参考。

一、电压问题的由来
在52版以前,升级是使用winswup程序的,这个程序是西门子的官方程序,他在升级过程中只写入Flash的部分。并不更改EEP,所以不会有电压的问题,但在54版以后,因为没有这种升级程序,而且54和55版式应该属于测试版,所以低版本直升不能激活Java,当时的做法是写入别人的EEP(此EEP在初始化的部分Block5005可以激活Java),然后再作MAP,这个过程中,自己的一些唯一性的东西已经丢失,而且再也找不回了。很快,这种升级的弊病就体现出来,那就是电压显示不准确,满电关机,待机时间减少等。于是机友从DarkBear的程序出发,自发的通过调整Block67的各项参数来解决这个问题,但在调整的过程中,对参数的意义认识得并不准确,所谓的参数意义都是基于经验的估计。但在方向上还是可取的。比如对0000和0004的调整规律上的认识。起码对参数和电压的升降关系是正确的。但其中有很也有很多的错误。
二、电压的参数意义是什么。
电池属于一种模拟量输出设备,而手机的系统是一个数字化的系统,只能处理数字量。那么手机要对电池进行各种处理必然有一个模数转换的问题。要用到模数A/D转换器。所有的电子元件都有一个误差范围,不同的只是精确度。而每一批元件都有自己特性。但A/D转换器在一定的范围上可以认为是满足线性的。所以必须确定这个线性的参量。如何确定一条直线?答案是用两个点。而手机的电压参数正是这两个点(A0,V0)和(A1,V1)。下面说每一个一下参数的具体意义(主要是前四个参数,后面主要是和温度有关)。
0000(SpgY03V):A1,V1所对应的A/D转换器的取样值
0002(SpgX0):V0,参考点0的电压值。
0004(SpgY04V):A0,参考点0的A/D转换器的取样值。
0006(SpgDelta):V0-V1,V0-V1的差值Delta。
那么对于任意的取样点(Ax,Vx)-〉(VBattDSP,VB)则有线性关系。

(Vx-V0)/(Ax-A0)=(V0-V1)/(A0-A1)成立。
化简之有: Vx = V0+(V0-V1)*(Ax-A0)/(A0-A1)
即 VB= SpgX0 - SpgDelta*(VBattDSP - SpgY04V)/(SpgY03V - SpgY04V)
从上面的式子我们可以看出我可以任取两点来确定这个线性关系,如图一。
图一(在图上蓝线表示标准电压直线,此线上A/D值对应的就是实际电压。而紫线是调整之后的电压线)。

这也是我的校准程序的做法。下面我说一下在这个式子中各个参数对真实电压的影响。
先说一下现在争论很大0006也就是SpgDelta,大家认为减小它可以增加待机时间,是这样的。因为减小SpgDelta,整个直线的斜率减小,而截距不变所带来的后果就是直线趋缓。现象是在SpgX0以下的电压会比实际值高,而以上部分会比实际值低。这样的好处是明显的,手机可以获得更长的待机时间。但弊病则很隐蔽,首先电池会有损伤,其次因为虽然操作系统受到了欺骗可以工作,但某些元件必须工作在一定的电压范围内,脱离了这个范围可能造成不能正常工作。如图二

接着是0002处即SpgX0,这个值的含义是确定参数时的一个电压取样点,为了使参数更准确,取样时采用了差别比较大的两个点。大体上SpgX0在4200左右,而SpgDelta在1000左右(手机A/D的正常工作范围是1.33V-5.91V)。而3.2V这个值是比较特殊的,在它以下系统会用涓流充电(Tricle Charge),这个值没有特别的意义。担当其它的参数都固定后,调整它一样可以改变直线的截距。比如减小这个值,那么系统电压就会比实际的电压低,在图上可以看出,实际4.2V的A/D值所对应的电压低于4.2,而3.6V也相同。增大则相反。所以它对关机电压和满电电压有同样的影响。如图三。

0004处即SpgY04V,这个值是电压为SpgX0时的A/D取样值。需要注意的是应把它作为有符号数处理,所以它为负值,增大它相当于减小其绝对值,即从负方向向原点移动。如果确定其他参数只对它进行调整,比如减小。那么其远离原点。

从图四上可看出,它的斜率减小。但是对于关机电压的影响较小,而对满电电压影响较大。实际4.2V的A/D值所对应的电压低于4.2,而3.6V的A/D值所得到的电压也偏低,但程度要比满电时小。
0000处即SpgY03V,这个值是电压为SpgX0-SpgDelta(大约为3.2V)时所对应的A/D取样值。和SpgY04V不同的是,固定其他参数改变它对满电的影响较小,而对关机电压影响较大。
这些从图五上可以看出。

但最终的电压并不是简单得有一个A/D值算出来的,它是几个定时的取样点经过一定的处理。取出异样点,平稳化之后的值。此外,温度对这个电压处理也有一定影响。这个温度分为两种环境温度和电池内部温度。原厂的电池在内部有一个温敏电阻,可以通过中间的触点输出电池温度值。但这些都是在后面处理的过程中用到的。 ……待续

图1

图1

图2

图2

图3

图3

图4

图4

图5

图5
回复 支持 反对

使用道具 举报

发表于 2005-8-22 01:56:24 | 显示全部楼层
沙发啊~~我找了很久
回复 支持 反对

使用道具 举报

发表于 2005-8-22 08:14:57 | 显示全部楼层
大师的板凳。。。。。。。。。。。。虽然我不是很懂。:(
回复 支持 反对

使用道具 举报

发表于 2005-8-22 11:13:08 | 显示全部楼层
好象有点明白,可不可以通俗点讲一下怎么调会有怎么的效果
回复 支持 反对

使用道具 举报

发表于 2005-8-28 01:52:08 | 显示全部楼层
电池的放电曲线绝对不是直线,而且在某些地方要偏离直线很多,这些偏离直线很多的地方不是完全没有使用价值的,而且温度呢?怎么考虑?楼主的理论很好,但是,我希望可以继续完善,尤其温度补偿
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-5-5 08:35

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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