• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

通晓 笔记本电池!!!

笔记本电池通通通!!!
笔者因主持研发笔记本电池测试系统(即所谓的电池老化柜),感觉在学习和实践中都走了弯路,浪费了不少时间和精力,故此想写点什么,也许可以帮助后来者省却一点弯路.

第一个误区是直奔锂电池原理.实际上很少有将原理讲得透彻的资料,即使将清楚了,初学者也大都看不透彻.

那么,先想想什么好呢?一块电池,根本作用还是给电脑供电.所以最基本的想法是将一节一节的电芯(cell)串在一起,就象将几节电池串在一起给手电筒供电一样,确实,笔记本电池里就是将几节电池串在一起的.

当然,要是如此简单就没有什么好说的了.现在的笔记本电池都是所谓智能(smart battery)的了,她能告诉电脑:我现在还剩余多少容量,现在的电压是多少,电流是多少,按现在的放电速率我还能用多长时间,我是否该充电了,充电应该用多大的电流、电压,充电是否充过头了,放电是否放过头了,温度是否过高,等等.电池要提供这些所谓的智能信息,就要在电池中增加一个电路.这个电路通常都使用现成的专用芯片,如最流行的BQ系列芯片:BQ2060A,BQ2083,BQ2085,BQ2040等,这些芯片检测流入和流出电芯的电流,算出上面所谓的智能信息.
这个电路还要增加一个功能:保护功能.上面说了电路能检测出充电是否充过头了,放电是否放过头了.既然知道充过头了,就要使充电电源充不到电芯上去;放电放过头了,就要切断电芯对外放电.温度过高了,就要是电池停下来.这就是所谓的保护功能.
最后一个功能就是通讯,电池准备了这些信息,总要发送出去吧.所以通讯少不了.

按上所说,通常的电池其实主要是检测部分,能检测出来信息,保护功能实现自然简单,无非是开关而已.

当然有的电池将充电部分做到电池里面去了,如 COMPAQ 笔记本电脑的不少电池都是如此.

所以,初学者可以先学习具体的电池检测芯片,如BQ2060A,(注意,不要从BQ2050开始,理解了BQ2060A,回过头来才好理解BQ2050.)

先不必看BQ2060是如何检测那些智能信息的,先看BQ2060都检测出了哪些信息?这些检测出来的信息存放在什么地方了?在BQ2060的DATASHEET中,有个Table 3. bq2060 Register functions,这里存放了BQ2060检测出来智能信息的.这些信息就是所谓的 Smart Battery Data(智能电池数据),它们都被定义成标准了(见Smart Battery Data Specfication).
BQ2050中检测出来的信息没有这么丰富,它不符合这个标准.BQ2040,BQ2083,BQ2085都符合这个标准,检测出来的信息也是这些.

下面解释一下BQ2060检测出来信息的意思.
1、 静态信息:静态信息不是检测出来的,而是生产厂家自己写进去的,它一般写在24C01中,BQ2060从24C01中读到它自己里面去.
ManufactureDate, ManufactureName, DeviceName, Devicechemistry, SpecificationInfo, DesignVoltage, DesignCapacity,RemainingCapacityAlarm, RemainingTimeAlarm, BatteryMode.这些信息不言自明.
2、 动态信息:动态信息中有些是检测出来的,有些是纯粹计算出来的,目的就是免去用户自己计算了.检测的:Voltage, Current, Temperature, AverageCurrent, RemainingCapacity, FullChargeCapacity, BatteryStatus.计算的:RelativeStateOfCharge, AbsoluteStateOfCharge, RunTimeToEmpty, AverageTimeToEmpty, AverageTimeToFull, CycleCount..信息ChargingVoltage, ChargingCurrent 告诉充电器应该用多大的充电电流给它充电,在多大的电压处应该变成恒压充电.AtRate, AtRateTimeToFull, AtRateTimeToEmpty, AtRateOK纯粹是帮用户计算信息用的.
3、 每个厂家的特定信息:标准Smart Battery Data Specfication之外的一些信息.这些信息只有5项,不同厂家不一样,对于BQ2060就是VCELL1-4和PackConfigureation.对于BQ2085,PackConfigureation的意义就和BQ2060不大一样.
4、 ManufactureAccess,标准Smart Battery Data Specfication之外,厂家特定的操作,如BQ2060的Seal, 读写EEPROM,Calibration等,都是通过它来完成的.
具体每一项信息的意义论坛中有人翻译了BQ2060的DATASHEET,在此不在重复.

BQ2060是如何检测那些智能信息的呢?简单地说,将是将一个电阻串接到电芯上,检测流过这个电阻上的电流的大小就可以知道充了多少电,放了多少电.充电充的是电荷、放电放的也是电荷,所以检测电流就知道充了多少电,放了多少电.至于电压、温度的检测更简单了,用的A/D转换就可以,BQ2060中就是这样做的.
BQ2060检测到信息后就要作出一些判断,如温度是否高了,我是否该充电了,充电应该用多大的电流、电压,充电是否充过头了,放电是否放过头了.电池无论如何也不知道多高温度属于高了,多大电流是过流了,所以,人为地先设定个标准,这样电池就可以判断了.这些标准生产厂家就放在24C01中,BQ2083,BQ2085放在它们自身的DATA FLASH中了.而BQ2050则是死设定,厂家智能用外围的电阻,电容等硬件设定,它不用EEPROM或DATA FLASH,比较死板.(其实BQ2050的功能简单多了,好多判断都没有.)

检测到异常情况,BQ2060就可简单地向外发个出发电平,以关断充电或放电开关,这样保护功能就简单地实现了.

实际上,大都用BQ2060的电池没有使用BQ2060提供的保护功能,而是另外加了芯片做保护,如M1414.另加的芯片和BQ2060自然有些功能是重复的,但没办法,谁让另加芯片了呢.

下面就是通讯方式问题,SMBUS其实就是I2C的子集,主要是时序上比I2C要求严格些.若你不写程序,简单地将SMBUS混同I2C就可以了.

当你看懂了BQ2060,不要以为所有的电量检测芯片都是如此,BQ2060是与标准Smart Battery Data Specfication兼容的芯片,即所谓的SBS V1.1-Campliant,其实BQ2050就不兼容这个标准.BQ2050提供的信息少了不少,通讯方式也不同(DQ).COMPAQ Evo 系列电脑的电池就是采用BQ2050H的,所以要增加PIC来增加一些功能.(当然里面还有充电功能.)

还有比较流行的芯片是M37516 + 4494,这个方案比较原始,M37516就是个通用的MCU,其实用PIC、AVR等好多MCU都可以代替,它的特点就是有A/D,PWM,I2C接口.在M37516中写程序,实现BQ2060的功能,自然就可以不用BQ2060了.当然用M37516写程序来实现肯定没有使用专用芯片简单.

使用M37516的电池可以是SBS V1.1-Campliant,也可以不是的.

很多电池既使用了PIC,又使用了BQ2060,或BQ2083/5等,这多数是厂家故弄玄虚.如果它也是使用SMBUS接口,很可以省掉PIC的.

还有个电池解密问题,即unseal问题,BQ2060因为外接EEPROM,所以unseal总是能实现的,虽然比较麻烦,但总是可以的,而BQ2083/4/5则几乎不可能,除非你知道厂家设置的unseal密码,否则,写程序用枚举方法解密一块电池要小一年时间.很多OEM电池厂家都想将就电池改写改写数据就以就充新地买.

还有电池检测(老化)问题.检测设备有检测电芯级的,有检测电池板级的.经过前者检测出来的电池即使是合格的,但实际上电池也可能是不合格的,因为电板可能有问题而没有被检测出来.而经过后者检测出合格的电池,才是真正合格的电池.

大多数电池不用时你也可以直接在电池接口处测量到电压,而有的电池不接到电脑上你是测量不到电压,即所谓的电池没有打开,如COMPAQ Evo系列.

在此解释一下Capacity Relearn.
其实电池的relearn-cycle或Conditioning-cycle都是充放电过程,Calibration就是充放电过程.这个过程如下:
1、 先将电池充满.
2、 放电放完(这个过程中不能有充电)
3、 再充满电.
Capacity Relearn 就是重新确定FCC.因为在过程1的结束,BQ2060将DCR`复位为0,在过程2中DCR从0开始不断增加,当放电结束时,用DCR更新FCC.在BQ2060的DATASHEEET中将这个过程说得比较难懂,而BQ2050中说得比较清楚.

下次再聊聊笔记本电池的充电问题.
全部回复(97)
正序查看
倒序查看
wz_net
LV.5
2
2006-08-19 22:14
BQ2083/4/5 解密不必要穷举法吧!只要你知道密码的地址,写个程序直接读出密码或更改密码都可以.穷举法是没有办法的办法.我相信高手应该都知道或做过.
0
回复
wang30001
LV.2
3
2006-08-20 13:39
@wz_net
BQ2083/4/5解密不必要穷举法吧!只要你知道密码的地址,写个程序直接读出密码或更改密码都可以.穷举法是没有办法的办法.我相信高手应该都知道或做过.
知道密码地址没有用处,密码地址是公开的,因为sealed后,你就不能读写DATA FLASH了,其实一旦sealed后,unseal的方法也不是直接读写密码的地址处的数据.
0
回复
azhu
LV.8
4
2006-08-20 13:57
挺好的贴子,支持一下!
0
回复
wz_net
LV.5
5
2006-08-20 20:05
@wang30001
知道密码地址没有用处,密码地址是公开的,因为sealed后,你就不能读写DATAFLASH了,其实一旦sealed后,unseal的方法也不是直接读写密码的地址处的数据.
我试过,可以.我是试的BQ2083.具体,你可以试一试.
0
回复
wz_net
LV.5
6
2006-08-20 20:23
@wz_net
我试过,可以.我是试的BQ2083.具体,你可以试一试.
具体做法:用EV2200工具,用VB进行编程.选择com控件,然后设置19200波特率等.用AA,60,51,DF,00,00;AA,60,00,00;AA,20,52,00,00,00;AA,20,52,XX,00(XX是你要读的数据).用AA,60,50,DF,XX,00(XX是你要写的数据)写.不管seal还是unseal都可以.我试过了,开始我也是用穷举法,用发命令来侦测seal位,但算了一下,要255*255*255*255次,每10秒才能255次,所以要将近189天时间才能穷举完(当然运气好不用那么多时间).后来我仔细分析了指令.通过上述程序来进行读写,居然可以进行更改,我可是在SEAL的状态下,将密码2083,7A43改成2083,0043的哟,我是验证过的.你们可以一试.因为当时我记得我也问了willzhang ,qiuuy,azhu,等人,只有好心人ylbingshan有如下回复:(BQ2084的解锁:2084 7A43 BQ2085的解锁:2083 7A43 如过解不了,可能是用了特殊码,各加厂的不一样.)不得以才自己去试的.通过这些事情:使我觉得,某些人太保守,某些人根本就没有去实验过.某些人认为是很秘密的东西,,,,,,,我是如实说.
0
回复
争锋
LV.5
7
2006-08-21 08:58
@wz_net
具体做法:用EV2200工具,用VB进行编程.选择com控件,然后设置19200波特率等.用AA,60,51,DF,00,00;AA,60,00,00;AA,20,52,00,00,00;AA,20,52,XX,00(XX是你要读的数据).用AA,60,50,DF,XX,00(XX是你要写的数据)写.不管seal还是unseal都可以.我试过了,开始我也是用穷举法,用发命令来侦测seal位,但算了一下,要255*255*255*255次,每10秒才能255次,所以要将近189天时间才能穷举完(当然运气好不用那么多时间).后来我仔细分析了指令.通过上述程序来进行读写,居然可以进行更改,我可是在SEAL的状态下,将密码2083,7A43改成2083,0043的哟,我是验证过的.你们可以一试.因为当时我记得我也问了willzhang,qiuuy,azhu,等人,只有好心人ylbingshan有如下回复:(BQ2084的解锁:20847A43BQ2085的解锁:20837A43如过解不了,可能是用了特殊码,各加厂的不一样.)不得以才自己去试的.通过这些事情:使我觉得,某些人太保守,某些人根本就没有去实验过.某些人认为是很秘密的东西,,,,,,,我是如实说.
支持!
0
回复
azhu
LV.8
8
2006-08-21 09:06
@wz_net
具体做法:用EV2200工具,用VB进行编程.选择com控件,然后设置19200波特率等.用AA,60,51,DF,00,00;AA,60,00,00;AA,20,52,00,00,00;AA,20,52,XX,00(XX是你要读的数据).用AA,60,50,DF,XX,00(XX是你要写的数据)写.不管seal还是unseal都可以.我试过了,开始我也是用穷举法,用发命令来侦测seal位,但算了一下,要255*255*255*255次,每10秒才能255次,所以要将近189天时间才能穷举完(当然运气好不用那么多时间).后来我仔细分析了指令.通过上述程序来进行读写,居然可以进行更改,我可是在SEAL的状态下,将密码2083,7A43改成2083,0043的哟,我是验证过的.你们可以一试.因为当时我记得我也问了willzhang,qiuuy,azhu,等人,只有好心人ylbingshan有如下回复:(BQ2084的解锁:20847A43BQ2085的解锁:20837A43如过解不了,可能是用了特殊码,各加厂的不一样.)不得以才自己去试的.通过这些事情:使我觉得,某些人太保守,某些人根本就没有去实验过.某些人认为是很秘密的东西,,,,,,,我是如实说.
真好!
给你们两个都加分,本贴置为原创+精华贴.
0
回复
wz_net
LV.5
9
2006-08-21 09:33
@azhu
真好!给你们两个都加分,本贴置为原创+精华贴.
谢谢azhu加分的支持,我也是刚刚接触到BQ系列的东西,里面还有很多的东西去摸索和研究.所以还要请坛里的各位高手不赐指教.坛里的确有很多高手,这点不容质疑.希望坛里高手指点一二,以免我们走弯路,瞎折腾.
0
回复
battery2006
LV.3
10
2006-08-21 14:21
@wz_net
具体做法:用EV2200工具,用VB进行编程.选择com控件,然后设置19200波特率等.用AA,60,51,DF,00,00;AA,60,00,00;AA,20,52,00,00,00;AA,20,52,XX,00(XX是你要读的数据).用AA,60,50,DF,XX,00(XX是你要写的数据)写.不管seal还是unseal都可以.我试过了,开始我也是用穷举法,用发命令来侦测seal位,但算了一下,要255*255*255*255次,每10秒才能255次,所以要将近189天时间才能穷举完(当然运气好不用那么多时间).后来我仔细分析了指令.通过上述程序来进行读写,居然可以进行更改,我可是在SEAL的状态下,将密码2083,7A43改成2083,0043的哟,我是验证过的.你们可以一试.因为当时我记得我也问了willzhang,qiuuy,azhu,等人,只有好心人ylbingshan有如下回复:(BQ2084的解锁:20847A43BQ2085的解锁:20837A43如过解不了,可能是用了特殊码,各加厂的不一样.)不得以才自己去试的.通过这些事情:使我觉得,某些人太保守,某些人根本就没有去实验过.某些人认为是很秘密的东西,,,,,,,我是如实说.
强烈支持你,你也是好心人!


顶顶顶
0
回复
adamdeltadg
LV.1
11
2006-08-23 16:25
@azhu
挺好的贴子,支持一下!
奉献经验贴不顶不行.
0
回复
chang713
LV.3
12
2006-08-25 18:52
@wz_net
具体做法:用EV2200工具,用VB进行编程.选择com控件,然后设置19200波特率等.用AA,60,51,DF,00,00;AA,60,00,00;AA,20,52,00,00,00;AA,20,52,XX,00(XX是你要读的数据).用AA,60,50,DF,XX,00(XX是你要写的数据)写.不管seal还是unseal都可以.我试过了,开始我也是用穷举法,用发命令来侦测seal位,但算了一下,要255*255*255*255次,每10秒才能255次,所以要将近189天时间才能穷举完(当然运气好不用那么多时间).后来我仔细分析了指令.通过上述程序来进行读写,居然可以进行更改,我可是在SEAL的状态下,将密码2083,7A43改成2083,0043的哟,我是验证过的.你们可以一试.因为当时我记得我也问了willzhang,qiuuy,azhu,等人,只有好心人ylbingshan有如下回复:(BQ2084的解锁:20847A43BQ2085的解锁:20837A43如过解不了,可能是用了特殊码,各加厂的不一样.)不得以才自己去试的.通过这些事情:使我觉得,某些人太保守,某些人根本就没有去实验过.某些人认为是很秘密的东西,,,,,,,我是如实说.
支持!500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/44/1156503152.gif');}" onmousewheel="return imgzoom(this);">
0
回复
caolin123
LV.5
13
2006-08-26 09:20
@wz_net
具体做法:用EV2200工具,用VB进行编程.选择com控件,然后设置19200波特率等.用AA,60,51,DF,00,00;AA,60,00,00;AA,20,52,00,00,00;AA,20,52,XX,00(XX是你要读的数据).用AA,60,50,DF,XX,00(XX是你要写的数据)写.不管seal还是unseal都可以.我试过了,开始我也是用穷举法,用发命令来侦测seal位,但算了一下,要255*255*255*255次,每10秒才能255次,所以要将近189天时间才能穷举完(当然运气好不用那么多时间).后来我仔细分析了指令.通过上述程序来进行读写,居然可以进行更改,我可是在SEAL的状态下,将密码2083,7A43改成2083,0043的哟,我是验证过的.你们可以一试.因为当时我记得我也问了willzhang,qiuuy,azhu,等人,只有好心人ylbingshan有如下回复:(BQ2084的解锁:20847A43BQ2085的解锁:20837A43如过解不了,可能是用了特殊码,各加厂的不一样.)不得以才自己去试的.通过这些事情:使我觉得,某些人太保守,某些人根本就没有去实验过.某些人认为是很秘密的东西,,,,,,,我是如实说.
经典
0
回复
txwpchen
LV.5
14
2006-08-26 11:22
@wz_net
谢谢azhu加分的支持,我也是刚刚接触到BQ系列的东西,里面还有很多的东西去摸索和研究.所以还要请坛里的各位高手不赐指教.坛里的确有很多高手,这点不容质疑.希望坛里高手指点一二,以免我们走弯路,瞎折腾.
大俠:
需向您請教一些關於VB(MSComm)的問題:

我在編寫一個數据采集的小程序(設備是HP34401A与電腦溝通,中間為232接口),當電壓小於10.0V時,數据與電腦溝通正常,但當電壓高於10V時,電腦顯示為1.0V (小數向前移位)
例如:有一個電池的電壓為:11.7V時,但電腦顯示為1.17V. (注:電表顯示是正常的)

煩大俠指教. Thanks!以下為原代碼:

Private Sub cmdexit_Click()
MSComm1.PortOpen = False
End
End Sub

Private Sub cmdRead_Click()

Dim Buf
MSComm1.Output = "READ?" + Chr(10)
TimeDelay 200
Buf = Trim(MSComm1.Input)
  If Len(Buf) = 0 Then
  txtReceive.Text = "HA HA "
Else
txtReceive.Text = Buf + Left(Buf, 7)
End If
End Sub

Private Sub Form_Load()
MSComm1.Settings = "9600,n,8,1"
  MSComm1.PortOpen = True
  MSComm1.Output = "SYST:RWL" + Chr(10)
  MSComm1.Output = "Conf: volt: DC 10; :Volt: DC: NPLC 0.02" + Chr(10)
End Sub
0
回复
wz_net
LV.5
15
2006-08-26 13:13
@txwpchen
大俠:需向您請教一些關於VB(MSComm)的問題:我在編寫一個數据采集的小程序(設備是HP34401A与電腦溝通,中間為232接口),當電壓小於10.0V時,數据與電腦溝通正常,但當電壓高於10V時,電腦顯示為1.0V(小數向前移位)例如:有一個電池的電壓為:11.7V時,但電腦顯示為1.17V.(注:電表顯示是正常的)煩大俠指教.Thanks!以下為原代碼:PrivateSubcmdexit_Click()MSComm1.PortOpen=FalseEndEndSubPrivateSubcmdRead_Click()DimBufMSComm1.Output="READ?"+Chr(10)TimeDelay200Buf=Trim(MSComm1.Input)  IfLen(Buf)=0Then  txtReceive.Text="HAHA"ElsetxtReceive.Text=Buf+Left(Buf,7)EndIfEndSubPrivateSubForm_Load()MSComm1.Settings="9600,n,8,1"  MSComm1.PortOpen=True  MSComm1.Output="SYST:RWL"+Chr(10)  MSComm1.Output="Conf:volt:DC10;:Volt:DC:NPLC0.02"+Chr(10)EndSub
老兄:出现此问题主要是你量程不对,你现在设置的量程是10V,所以读不到10V以上的电压,那么你可以将量程改大一些就可以了.具体可以联系wz_net@163.com 13760148258 其实原来我是专门做自动测试的. www.eatmc.com 希望同行多交流.
0
回复
wz_net
LV.5
16
2006-08-26 13:15
@wz_net
老兄:出现此问题主要是你量程不对,你现在设置的量程是10V,所以读不到10V以上的电压,那么你可以将量程改大一些就可以了.具体可以联系wz_net@163.com13760148258其实原来我是专门做自动测试的.www.eatmc.com希望同行多交流.
MSComm1.Output = "Conf: volt: DC 10; :Volt: DC: NPLC 0.02" + Chr(10)
:就是将conf: volt : 的设置改变一下.
0
回复
azhu
LV.8
17
2006-08-26 18:27
@wz_net
MSComm1.Output="Conf:volt:DC10;:Volt:DC:NPLC0.02"+Chr(10):就是将conf:volt:的设置改变一下.
王兄真是高手,佩服!有机会时还需向你多多请教.
0
回复
txwpchen
LV.5
18
2006-08-26 21:01
@wz_net
MSComm1.Output="Conf:volt:DC10;:Volt:DC:NPLC0.02"+Chr(10):就是将conf:volt:的设置改变一下.
應該怎么改!煩請指教.非常感激!!
0
回复
txwpchen
LV.5
19
2006-08-26 21:03
@txwpchen
應該怎么改!煩請指教.非常感激!!
這樣改可以嗎!
MSComm1.Output = "Conf: volt: DC 20; :Volt: DC: NPLC 0.02" + Chr(10)
0
回复
wz_net
LV.5
20
2006-08-26 22:28
@txwpchen
這樣改可以嗎!MSComm1.Output="Conf:volt:DC20;:Volt:DC:NPLC0.02"+Chr(10)
可以,但精度要降低.
0
回复
wz_net
LV.5
21
2006-08-26 22:30
@azhu
王兄真是高手,佩服!有机会时还需向你多多请教.
高手是你,俞峰大哥,在好几年前我就拜读了你的文章,真是佩服.我应该多向你学习.也感谢你的无私帮助.
0
回复
wz_net
LV.5
22
2006-08-26 22:32
@wz_net
可以,但精度要降低.
不过你可以改变采集位数,若时间不要求的话,可以用五位,六位半的精度.当然采集时间和精度要根据你的实际来进行控制.你只要注意此问题就行了.
0
回复
txwpchen
LV.5
23
2006-08-27 11:31
@wz_net
不过你可以改变采集位数,若时间不要求的话,可以用五位,六位半的精度.当然采集时间和精度要根据你的实际来进行控制.你只要注意此问题就行了.
老兄,
我有放寬電壓范圍,並精度也改為5位半.但是還是不行.
MSComm1.Output = "Conf:volt:DC 20;:Volt:DC:NPLC 1" + Chr(10).
煩請修正!
0
回复
wz_net
LV.5
24
2006-08-27 13:30
@txwpchen
老兄,我有放寬電壓范圍,並精度也改為5位半.但是還是不行.MSComm1.Output="Conf:volt:DC20;:Volt:DC:NPLC1"+Chr(10).煩請修正!
你还要注意一个问题,就是你读取数据后,有可能是采用的科学的进制法,所以你要在读了有效位以后还要考虑进制位.提取数据的时候也要将进制提取出来.然后对数据进行处理.
0
回复
qiuyy
LV.6
25
2006-08-27 22:34
@wz_net
具体做法:用EV2200工具,用VB进行编程.选择com控件,然后设置19200波特率等.用AA,60,51,DF,00,00;AA,60,00,00;AA,20,52,00,00,00;AA,20,52,XX,00(XX是你要读的数据).用AA,60,50,DF,XX,00(XX是你要写的数据)写.不管seal还是unseal都可以.我试过了,开始我也是用穷举法,用发命令来侦测seal位,但算了一下,要255*255*255*255次,每10秒才能255次,所以要将近189天时间才能穷举完(当然运气好不用那么多时间).后来我仔细分析了指令.通过上述程序来进行读写,居然可以进行更改,我可是在SEAL的状态下,将密码2083,7A43改成2083,0043的哟,我是验证过的.你们可以一试.因为当时我记得我也问了willzhang,qiuuy,azhu,等人,只有好心人ylbingshan有如下回复:(BQ2084的解锁:20847A43BQ2085的解锁:20837A43如过解不了,可能是用了特殊码,各加厂的不一样.)不得以才自己去试的.通过这些事情:使我觉得,某些人太保守,某些人根本就没有去实验过.某些人认为是很秘密的东西,,,,,,,我是如实说.
楼主的钻研精神非常可嘉.不过我对BQ208X的一类芯片我没有太多的研究兴趣.我认为这一类的芯片没有太多的应用价值.最近我在写一款FREESCALE的芯片来作计量管理,时间比较少.同时自己经营的一个小作坊杂事比较多,不能回复兄弟们的邮件.同时我认为大家要同心协力地打破TI的技术封锁.对于TI的芯片的应用,竟然有人申请了专利!受不了.

这段时间我会上传一些TI的所谓的非常有应用价值的文件给大家看看.另外我认为大家要把精力放在电芯和GAS的应用上,怎么样做好NB的工艺,怎么样作好电池的放电曲线,做好电池的性能,这才是最重要的.目前笔记本电池的最主要的问题摆在大陆工程师的面前就是制程,工艺,品质保障.对于我来讲,就算是我解开了TI的芯片的HEX没有太多的意思.因为不能给企业创利润.
再说知道了人家的密码,看到了别人设计的HEX,最终也是:知其然,不知其所以然!除了满足了好奇心,什么都得不到.

这里是一份别人给我的CEDV的东东,当然是换来的.据说是不错的东东,大家好好研究一下.1156689594.doc
0
回复
qiuyy
LV.6
26
2006-08-27 22:53
使用PIC的目的,有一部分是为了解决DEVICE NAME和MANUFACTURE DATA的长度不够的问题.
三菱的芯片都是SMBUS的协议的,只是莫名其妙地读不到数据,有些人就感到头晕了:难道不是SMBUS1.1?
三菱的芯片使用EV2200读不到信息,就是故意害你,鸟人日本人!事实上,一开始的时候,它的芯片就是在主模式和从模式的切换中,发给你一大串莫名其妙的数据,弄得你晕头转向.最近仔细分析它的波形的时候才知道.
笔记本电池还在很多老大难的问题摆在大家的面前:解决高低温放电的问题,解决1次和300次放电曲线的问题,解决电路设计可靠的问题.还有品质保障的问题.
0
回复
wz_net
LV.5
27
2006-08-28 09:43
@qiuyy
楼主的钻研精神非常可嘉.不过我对BQ208X的一类芯片我没有太多的研究兴趣.我认为这一类的芯片没有太多的应用价值.最近我在写一款FREESCALE的芯片来作计量管理,时间比较少.同时自己经营的一个小作坊杂事比较多,不能回复兄弟们的邮件.同时我认为大家要同心协力地打破TI的技术封锁.对于TI的芯片的应用,竟然有人申请了专利!受不了.这段时间我会上传一些TI的所谓的非常有应用价值的文件给大家看看.另外我认为大家要把精力放在电芯和GAS的应用上,怎么样做好NB的工艺,怎么样作好电池的放电曲线,做好电池的性能,这才是最重要的.目前笔记本电池的最主要的问题摆在大陆工程师的面前就是制程,工艺,品质保障.对于我来讲,就算是我解开了TI的芯片的HEX没有太多的意思.因为不能给企业创利润.再说知道了人家的密码,看到了别人设计的HEX,最终也是:知其然,不知其所以然!除了满足了好奇心,什么都得不到.这里是一份别人给我的CEDV的东东,当然是换来的.据说是不错的东东,大家好好研究一下.1156689594.doc
一句话:对qiuyy佩服!不是盲目佩服!佩服你至少能从另一个高度来进行笔记本电池的研究.这些目前我们是想都不敢想的.
0
回复
azhu
LV.8
28
2006-08-28 10:34
@qiuyy
楼主的钻研精神非常可嘉.不过我对BQ208X的一类芯片我没有太多的研究兴趣.我认为这一类的芯片没有太多的应用价值.最近我在写一款FREESCALE的芯片来作计量管理,时间比较少.同时自己经营的一个小作坊杂事比较多,不能回复兄弟们的邮件.同时我认为大家要同心协力地打破TI的技术封锁.对于TI的芯片的应用,竟然有人申请了专利!受不了.这段时间我会上传一些TI的所谓的非常有应用价值的文件给大家看看.另外我认为大家要把精力放在电芯和GAS的应用上,怎么样做好NB的工艺,怎么样作好电池的放电曲线,做好电池的性能,这才是最重要的.目前笔记本电池的最主要的问题摆在大陆工程师的面前就是制程,工艺,品质保障.对于我来讲,就算是我解开了TI的芯片的HEX没有太多的意思.因为不能给企业创利润.再说知道了人家的密码,看到了别人设计的HEX,最终也是:知其然,不知其所以然!除了满足了好奇心,什么都得不到.这里是一份别人给我的CEDV的东东,当然是换来的.据说是不错的东东,大家好好研究一下.1156689594.doc
我替大家感谢你了!电池论坛这一块有了你和WZ_NET等人,真是国人之幸呀.也给你加分了.
0
回复
yingpinglin
LV.2
29
2006-08-28 21:33
我看各位大侠讲得头头是道,所以我想请教个问题:我现在是电池装上去后显示在充电,但很快就充电完成100%,一但断开交流电,虽说电表显示还有95%或更多,但一下子就会断电,也就是断开交流电后电池使用不到30秒左右便断电了.后来我打开电池合,测量中间的一串电池(共3串)电压成负电压(取下中间一串电池后测量也是如此),我便新买了一对18650(2200mA)电池更换后,现在装上电池显示充电,但充电在一定状态后(如:充电74%),它始终停留在此状态,如关机再开机后有可能显示的充电百分数有可能有变化,但始终就是稍充进一点后便不再有增加.如果一断电后也是用不到几十秒就电池断电.断电特征也是电池没下降到正常时百分之五以下就断电.我也搞不清楚到底是什么原因,我电池刚用过半年保修期就出现这种事,让我哭笑不得呀,各位大侠帮我分析一下是怎么回事嘛!
0
回复
azhu
LV.8
30
2006-09-03 06:16
@yingpinglin
我看各位大侠讲得头头是道,所以我想请教个问题:我现在是电池装上去后显示在充电,但很快就充电完成100%,一但断开交流电,虽说电表显示还有95%或更多,但一下子就会断电,也就是断开交流电后电池使用不到30秒左右便断电了.后来我打开电池合,测量中间的一串电池(共3串)电压成负电压(取下中间一串电池后测量也是如此),我便新买了一对18650(2200mA)电池更换后,现在装上电池显示充电,但充电在一定状态后(如:充电74%),它始终停留在此状态,如关机再开机后有可能显示的充电百分数有可能有变化,但始终就是稍充进一点后便不再有增加.如果一断电后也是用不到几十秒就电池断电.断电特征也是电池没下降到正常时百分之五以下就断电.我也搞不清楚到底是什么原因,我电池刚用过半年保修期就出现这种事,让我哭笑不得呀,各位大侠帮我分析一下是怎么回事嘛!
你用其它方式(不是在笔记本电脑上)把电池完全放空,再放到笔记本电脑上充电,估计问题能够解决.
又:你新的电池装上时,剩余容量必须要原来的电池一致,如果剩余容量不一致,也会出现你说的问题.假设你原来的电池剩余容量是30%,新装进的剩余容量为60%,那么充电时,新装的电池会先充满,并被过充电到保护状态,因此显示的容量值无法上升了.
0
回复
shundetkd
LV.5
31
2006-09-03 23:27
支持原创!送上好评一个先~
其实通晓电池管理芯片,绝不等同于通讯笔记本电池,这两个概念是完全不一样的.
上段时间,Dell、Apple全球回收笔记本电池,其原因并非PCBA问题,而是电芯品质问题;年初时候Acer本本在台湾发生着火事故,判断是电池问题等等,这些问题均与电池管理芯片无关.
要真正通晓笔记本电池,第一个方面是必须通晓笔记本主板的基本设计、控制时序、PowerRoute、EC等等方面.毕竟电池是为主板服务的,主板要控制其充放电.不同时期的芯片组对电池的能力要求是完全不一样的,例如P4时代,其耗能非常巨大,常规的要求电池在8芯情况下能提供CP75W功率,那么其主要矛盾是转化成PCBA热量、电芯温度、高低温温度性、短路控制时间等问题了.主板芯片发展到现在的945了,因为SpeedStep技术应用与芯片组技术的提升,对电池能量的要求并不高了,通常只需要CP45W左右即可了,那么其主要矛盾反而变成了电池动态供电能力,毕竟10A/us不是开玩笑的.电池为何通讯,为何通讯这些内容,如何利用这些内容方便主板EC进行控制,这些都是需要通晓的,不然都只能是知其然不知其所然.
第二个方面是需要通晓一定的电源知识与DC-DC的设计.没有这些做功底,是无法明白主板如何实现具体充电,如何控制其充放电参数,如何由EC去控制PowerRoute.没有电源知识,也不知道PCBA上元器件的选择,例如Mos的选择,是以何种参数为优先考虑,温度Fuse是基于何种参数选取,不同类型的Fuse会导致何种后果,同时过流点设定是如何确定其基数范畴,响应是落在何处区间,PCb上铜箔布置应该如何布置才是完美的体现等等.
第三个方面是需要通讯通讯协议与其内容的背后.搞电池的都知道2060来来去去就那么几个参数,但是这些参数是如何规定的,其规定的背景是怎样的,参数之间应该如何设定才是能够完美地配合电芯与主板地需要等等.简单一点来说,部分主板采用的是smartcharge形式进行充电,那么主板是如考虑那几个参数进行调定的?电池发展到现在,并不局限于电池小板的简单保护于通讯,现在很多主板都开始进行动态对电池参数的设定了,不单是简单的校正,而是包括保护部分(其实这个小日本开始的比较早)参数的调定了.

笔记本电池不是一个独立的产品,所以它的特性决定了要通讯笔记本电池,那么起码要通晓多方面了,单单是简简单单一两个芯片,那么仅仅能被称为应用而已了.
0
回复