公式:电压显示值=spgx0-spgdelta(65536-spgy04v+AD)/(65536-spgy04v+spgy03v)
说明: AD为6688内部AD转换电路采集的值,可由Cool_lang老弟介绍的洋大侠Riza的方法读取(有现成的程序),其它参数采用的sensorstool里面的符号,即
0000=spgy03v, 0002=spgx0, 0004=spgy04v, 0006=spgdelta
看到还有不少机油在猜测这四个参数的含义,He在这里解释一下。它们其实很简单,就是线性插值需要的四个参数,6688测量电池电压就是由两个电压值及其对应的AD值来决定其它AD值对应的电压。引起一些误会的原因是:
1.spgy04v其实是个负数,例如 63303表示 -(65536-63303)=-2233 ,
2.它们不是标准两点式的四个坐标,参数0000和0004表示两个点的AD值,参数0002表示的是第二个点的电压,参数0006表示的是两个点的电压差值(注意电压越高AD值越小)
综上所述,这四个参数是决定电压测量值的,并不直接改变关机电压,而且He估计6688的关机条件和停止充电条件可能还与电池内阻、电池以及环境温度有关。
有人修改电参延长待机时间只是使6688测量的电压有一个人为误差而已,例如把实际的3.5V测为3.7V.(其它参数不变,把0006由1000左右改为7000~800就可以达到这样的目的),这样确实可以延长待机时间,但电压较低时指示值误差较大(满电测量值受0006影响小),而且容易出现一些不稳定的现象,如果经常有重要电话最好不要这样改。但这个修改对没什么要紧的电话,6688主要用来做游戏机,词典,mp3的机油还是很有效果的。
知道了这四个参数的意义后,对它们的修改就不会再盲目了,而且修改的自由度也很大,例如He用自己的机子作了如下试验:
用电压为3.643V的电池,测得AD值为1292,然后改用电压为4.293V的电池,测得AD值为-2923(注意负号),于是,He就采用了如下一组另类但是计算简单的电参:
0000=1292, 0002=4293,
0004=62613(=65536-2923),0006=650(=4293-3643)
写入机器后,一切正常,而且工魔下显示的电压与万用表测的结果十分接近(偏差小于0.01伏)。我现在还在用这组电参。
可看出,同一台机器,最准的电参并不唯一,例如我的机器如果想要电参不那么怪,也可以改为:4183,4201,63210,1004
这两组电参其实是等价的。