你的位置:
首页
>
IT圈
>
X23电池换芯、解锁过程
2024年7月10日发(作者:夷夏岚)
【原创】我的X23电池换芯、解锁过程(M37516+61040+80AF)
一、前言
本人的X23一直用的很好,可借给朋友用几天后,回来使用发现电池电量会从95%
一下掉到5%,只能坚持10分钟,冲电时会从27%一下升到100%,只能当UPS用了。
由于平时基本不用电池,可能是电池长期未用导致某组电芯性能变坏所致。
笔记本的最大优势在于移动性,没电池太不方便了。在买新电池和换芯之间,我选
择了自己动手换芯,一来废物利用,二来可以锻炼自己的动手能力。经过选择,从淘宝买
了6节松下18650D的2350mAh电芯,拿到手后测试一致性较好。小心翼翼地拆开电池
[attach]335268[/attach],[attach]335269[/attach]
晕,中奖了,是M37516+61040+80AF的易锁芯片组合。在论坛里查了半天,有
的XD说保电换电芯不会锁。抱着侥幸心理,按论坛里的方法进行了保电换芯,保电换法
参见论坛里相关文章。结果在第三次充电到87%时电池充电灯停止闪烁,感觉有些不妙,
拔下电源,立刻断电。看来保电换芯失败。只能通过刷芯片解锁了。
二、数据分析
用别人的源码固然可以解决问题,但有些参数毕竟不是自己电池的,在充电曲线等方
面可能存在问题。为了能够用自己的电池数据,我从论坛里下载了相同芯片组合的坏电池
数据进行了分析。
1.工具
SBworkshop Demo3.3 ,Ultraedit32
2.标识位
通过SBworkshop的EEPROM Read/write的功能,结合自制的简易并口编程器,读
取坏源码[attach]339690[/attach]
用Ultraedit32修改其中的数据,分段删除,再用SBworkshop读改过的源码,首先
分析出的是关键信息,然后得出其它的数据位。具体见图[attach]340060[/attach]
标识位说明:
1).循环次数(0x2c,0x2d):当前充电次数。
2).满充容量(0x2e,0x2f):
3).关键标识位(0x32,0x33,0x34,0x35):这个标识位我不知叫什么,代表电池采用
芯片信息,注意这个标识位是不能修改的。
4).生产日期(0x1bc,0x1bd):
5).ManufatureName:ASCII字符,这里是松下,有的是SANYO。
6).DeviceName(0x1ca-0x1d5):
7).电芯类型(0x1da-0x1df):LION,不要修改
8).报警锁定(0x1fa,0x1fb):解锁的关键位置,找遍了Smart Battery
DataSpecification Revision 1.1也不知是哪个ALARM数据。但改为00 00即可解锁,
这个要特别感谢yyyzoe给我的好的源码,不然找不出来这个位置。
3.关于数据算法
找出相应标志位后,开始只分析出一些简单对应关系,通过写成二进制发现,原来逆
位就可以了,所有的数据均是如此。举例说明:
CycleCount位0x2c=12,0x2d=34
二进制为 0001 0010 0011 0100
逆位后为 1000 0100 1100 0010
按高低位最终数据为 0100 1000 0010 1100 即:482C=18476次,当然
这个只是举例说明。
日期有些特殊,格式是年(15-9位,基数1980)、月(8-5位)、日(4-0位),
例如:2007年1月12日
年:2007-1980=27=1B=0011011(注意是7位)
月:1=0001
日:12=0C=01100(注意是5位)这样组合在一起为1100,逆位
后为0100,即6C34
ASCII字符也是同样要逆位后转换。
4.校验值
称为校验值不知对不对,暂时先这样叫了。整个EEPEOM数据为四个区,其中
0x00000200-0x000002FF 为0x00000000-0x000000FF对应FF补、0x00000300-
0x000003FF为0x00000100-0x000001FF对应FF补,例如0x00000000为29,那么
0x00000200就为FF-29=D6
三、解锁
有了以上的分析,解锁就不难了,焊下80AF,接上自制的编程器
[attach]339684[/attach]
编程器原理图论坛里有,我就不贴了。先用SBworkshop读EEPROM数据,存为
80_后用Ultraedit32打开,要修改的部分(注意是6个数据):
充电次数为0(0x2c=00,0x2d=00,对应0x22c=FF,0x22d=FF)
满充容量改为4400mAH(0x2e=88,0x2f=0C,对应0x22e=77,0x22f=F3)
解除报警(0x1fa=00,0x1fb=00,对应0x3fa=FF,0x3fb=FF)
本来想要容量想改为4700 mAH,日期也想改为今天的日期,但改后又锁住了,不知
什么原因。(现经实验,是可以修改的,估计是当时焊接时没一次焊好的原因)
改好后另存为80_,用SBworkshop打开80_文件并写入
EEPROM[attach]339691[/attach]
为确保写入,可以再读EEPROM数据,存为,在命令行窗口中运行fc /b
80_ >,打开确定内容无差异,解锁完成。焊上80AF,
接电芯时要按照电位从低到高的顺序,而且要一次焊上,尤其是正极,否则会再次锁上,
这点要特别注意。
四、备注
1.关于80AF
80AF的拆焊最好用热风枪吹下来,用烙铁的话要断电操作,可以用拉丝焊法,将细铜
丝穿过引脚,边焊边拉,很容易就取下来了。适配器我是自制的[attach]339680[/attach]
看出来是什么了吗,对,是坏PCI猫的引脚,正合适,哈哈。[attach]339681[/attach]
2.关于SBworkshop Demo3.3
接好编程器后不要在Data界面中,而要在EEPROM Read/Write/Reset界面中读
写EEPROM数据,我就是犯了这个错误,点了Read Battery,显示Battery not found,
还以为编程器做的不对,害得我把花了半天时间做好的编程器又拆了重做。
3.关于电池数据
如果关键位相同,数据可以能用,但建议用自己的电池数据,修改相应的标识位解
锁就可以了。解锁成功电池充放电曲线平滑,没有出现跳变现象。
已经解锁成功的电池[attach]339682[/attach]
完工时的样子[attach]339683[/attach]
最后再次感谢yyyzoe的帮助!!
2024年7月10日发(作者:夷夏岚)
【原创】我的X23电池换芯、解锁过程(M37516+61040+80AF)
一、前言
本人的X23一直用的很好,可借给朋友用几天后,回来使用发现电池电量会从95%
一下掉到5%,只能坚持10分钟,冲电时会从27%一下升到100%,只能当UPS用了。
由于平时基本不用电池,可能是电池长期未用导致某组电芯性能变坏所致。
笔记本的最大优势在于移动性,没电池太不方便了。在买新电池和换芯之间,我选
择了自己动手换芯,一来废物利用,二来可以锻炼自己的动手能力。经过选择,从淘宝买
了6节松下18650D的2350mAh电芯,拿到手后测试一致性较好。小心翼翼地拆开电池
[attach]335268[/attach],[attach]335269[/attach]
晕,中奖了,是M37516+61040+80AF的易锁芯片组合。在论坛里查了半天,有
的XD说保电换电芯不会锁。抱着侥幸心理,按论坛里的方法进行了保电换芯,保电换法
参见论坛里相关文章。结果在第三次充电到87%时电池充电灯停止闪烁,感觉有些不妙,
拔下电源,立刻断电。看来保电换芯失败。只能通过刷芯片解锁了。
二、数据分析
用别人的源码固然可以解决问题,但有些参数毕竟不是自己电池的,在充电曲线等方
面可能存在问题。为了能够用自己的电池数据,我从论坛里下载了相同芯片组合的坏电池
数据进行了分析。
1.工具
SBworkshop Demo3.3 ,Ultraedit32
2.标识位
通过SBworkshop的EEPROM Read/write的功能,结合自制的简易并口编程器,读
取坏源码[attach]339690[/attach]
用Ultraedit32修改其中的数据,分段删除,再用SBworkshop读改过的源码,首先
分析出的是关键信息,然后得出其它的数据位。具体见图[attach]340060[/attach]
标识位说明:
1).循环次数(0x2c,0x2d):当前充电次数。
2).满充容量(0x2e,0x2f):
3).关键标识位(0x32,0x33,0x34,0x35):这个标识位我不知叫什么,代表电池采用
芯片信息,注意这个标识位是不能修改的。
4).生产日期(0x1bc,0x1bd):
5).ManufatureName:ASCII字符,这里是松下,有的是SANYO。
6).DeviceName(0x1ca-0x1d5):
7).电芯类型(0x1da-0x1df):LION,不要修改
8).报警锁定(0x1fa,0x1fb):解锁的关键位置,找遍了Smart Battery
DataSpecification Revision 1.1也不知是哪个ALARM数据。但改为00 00即可解锁,
这个要特别感谢yyyzoe给我的好的源码,不然找不出来这个位置。
3.关于数据算法
找出相应标志位后,开始只分析出一些简单对应关系,通过写成二进制发现,原来逆
位就可以了,所有的数据均是如此。举例说明:
CycleCount位0x2c=12,0x2d=34
二进制为 0001 0010 0011 0100
逆位后为 1000 0100 1100 0010
按高低位最终数据为 0100 1000 0010 1100 即:482C=18476次,当然
这个只是举例说明。
日期有些特殊,格式是年(15-9位,基数1980)、月(8-5位)、日(4-0位),
例如:2007年1月12日
年:2007-1980=27=1B=0011011(注意是7位)
月:1=0001
日:12=0C=01100(注意是5位)这样组合在一起为1100,逆位
后为0100,即6C34
ASCII字符也是同样要逆位后转换。
4.校验值
称为校验值不知对不对,暂时先这样叫了。整个EEPEOM数据为四个区,其中
0x00000200-0x000002FF 为0x00000000-0x000000FF对应FF补、0x00000300-
0x000003FF为0x00000100-0x000001FF对应FF补,例如0x00000000为29,那么
0x00000200就为FF-29=D6
三、解锁
有了以上的分析,解锁就不难了,焊下80AF,接上自制的编程器
[attach]339684[/attach]
编程器原理图论坛里有,我就不贴了。先用SBworkshop读EEPROM数据,存为
80_后用Ultraedit32打开,要修改的部分(注意是6个数据):
充电次数为0(0x2c=00,0x2d=00,对应0x22c=FF,0x22d=FF)
满充容量改为4400mAH(0x2e=88,0x2f=0C,对应0x22e=77,0x22f=F3)
解除报警(0x1fa=00,0x1fb=00,对应0x3fa=FF,0x3fb=FF)
本来想要容量想改为4700 mAH,日期也想改为今天的日期,但改后又锁住了,不知
什么原因。(现经实验,是可以修改的,估计是当时焊接时没一次焊好的原因)
改好后另存为80_,用SBworkshop打开80_文件并写入
EEPROM[attach]339691[/attach]
为确保写入,可以再读EEPROM数据,存为,在命令行窗口中运行fc /b
80_ >,打开确定内容无差异,解锁完成。焊上80AF,
接电芯时要按照电位从低到高的顺序,而且要一次焊上,尤其是正极,否则会再次锁上,
这点要特别注意。
四、备注
1.关于80AF
80AF的拆焊最好用热风枪吹下来,用烙铁的话要断电操作,可以用拉丝焊法,将细铜
丝穿过引脚,边焊边拉,很容易就取下来了。适配器我是自制的[attach]339680[/attach]
看出来是什么了吗,对,是坏PCI猫的引脚,正合适,哈哈。[attach]339681[/attach]
2.关于SBworkshop Demo3.3
接好编程器后不要在Data界面中,而要在EEPROM Read/Write/Reset界面中读
写EEPROM数据,我就是犯了这个错误,点了Read Battery,显示Battery not found,
还以为编程器做的不对,害得我把花了半天时间做好的编程器又拆了重做。
3.关于电池数据
如果关键位相同,数据可以能用,但建议用自己的电池数据,修改相应的标识位解
锁就可以了。解锁成功电池充放电曲线平滑,没有出现跳变现象。
已经解锁成功的电池[attach]339682[/attach]
完工时的样子[attach]339683[/attach]
最后再次感谢yyyzoe的帮助!!