事情这样的,我用的电池电量管理芯片是BQ3050,调试、配置、校准都很正常,已经进行过5次以上的充放电学习
但是在看芯片的技术文档的时候,看到寄存器Operation Cfg A中有这样的一段描述,其寄存器中第7、8位为预留位,预留并且必须设定为0,我就很好奇如果设置成1会怎么样,所以我就改了配置,变成0x01DD(不能配置的是第7.8位,本来应该是0x128),一开始没感觉有什么变化,然后我按了一下LED显示的按键,5个灯亮了,但是光很弱(目测电流可能都没1mA),然后就变成无法通讯了,而灯就一直微亮并闪烁,无法关闭,随即测试电路上的各测试点发现,DSG和CHG对应的mos管一直处于关闭状态,电路无法正常放电与充电
尝试解决:
1.将配置改回来,奈何此时基本已无法通讯了,刷新多次无用
2.将电池移除,在接入,无效
3.将适配器和电池都移除,在接上,无效
目前彻底断电中,所以就只能来这里找寻大能了,我很奇怪一个寄存器的配置怎么会导致这么严重的后果,从现象上看,芯片是默认系统出了什么致命的错误,然后锁死了能控制的几个MOS管,整个电路强制报废 的感觉,
对了,还有个现象,就是这时候的芯片只要通电,LED灯就会亮,已经无法控制了
这种情况还能恢复吗?要怎么恢复呢?
aaron aaron1:
补充一下通信时反馈的代码
Error reading Data Flash Subclass Voltage .code=5/3
这两种代码出现的几率大概是6/4
Star Xu:
回复 aaron aaron1:
重新烧一下FW应该能恢复正常的。
Richard Tang:
回复 Star Xu:
首先,文档里面说明了这两个位必须保留为0,所以,修改为1是不行的。
这种情况下,只能想办法看能否恢复通讯然后重新烧写程序,可以尝试一下去掉LED,减小功耗,看是否通讯能够正常。如果不可以的话,那就没有办法恢复过来了。
Achilles Hu:
估计芯片废掉的可能性比较大。具体原因不名~
不知道能用IIC读写到不,这个方法你可以尝试一下。要看你对芯片的理解了,估计难度会不小,原因你懂的。
手册的开放度是有限的,毕竟不是半导体内部员工。