BQ34100基础问题
(1)我从BQ34Z100的CONTROL_STATUS中读出的数据为0x6004,这是不是意味着该芯片默认是处于SEALED模式,请问如何转换成UNSEALED模式呢?
(2)BQ34Z100有没有特定的编程手册呢?比如介绍其编程的参考I2C代码的……
谢谢
你好,
(1)确实是sealed模式,需要解锁,在EVSW的control里连续输入这2个指令,先输入0414 ,然后立刻输入 3672;然后在连续输入2次FFFF,这几条命令的前提是你没有修改过默认的key,如果修改过则按照修改的值,输入时记住关闭scanning,解锁后请下载官网的senc文件就可以恢复为seal文件了。
(2)I2C的话可以参考这个链接,http://www.ti.com/analog/docs/litabsmultiplefilelist.tsp?literatureNumber=slva413a&docCategoryId=1&familyId=412
谢谢,我是直接使用单片机与BQ34Z100的引脚进行通讯的,不太明白您说的输入指令时许,能说详细点吗?请问这个解锁方法在哪里有具体的描述呢?
单片机编程的话 无法下载senc文件和导出量产文件等,建议开发阶段还是购买一个EV2400或者EV2300进行开发。datasheet第15页有讲述相关内容。谢谢!
我使用单片机能及相关指令0x61 、 0x3e 、0x3f读出参数并进行修改后,在写回dataflash的时候 需要相关的BlocDataCheckSum(),不知每个BlockData的CheckSum在哪里查询呢?谢谢
0x60里查询。详细看34Z100的datasheet 14页,checksum计算如果只修改一个参数的话建议可以采用 先读出原来的checksum然后通过下面的公司算出新的checksum再写会。如果采用EVSW上位机软件的话,直接在DATAFLASH界面就可以完成修改,不需要用户自己查具体的地址以及计算checksum,可以提供开发的效率。
temp = mod( 255 - OLD_checksum – old value), 256)
NEW_checksum = 255 - mod( temp + new value, 256)
谢谢,DataSheet中并没有你说的这么详细,所以最后请教下,(1)是不是修改了Command Space中的数据后,再向0x60写入新的CheckSum后就能成功修改寄存器的数据呢?(2)类似与这种敏感底层的计算方法 有没有相关的技术文档可供参考呢,DataSheet中描述的很含糊…… 谢谢
请问:
temp = mod( 255 - OLD_checksum – old value), 256) NEW_checksum = 255 - mod( temp + new value, 256)
以上公式中的old value 与new alue 分别代表什么呢?
(1)如果能成功读出Dataflash的某个数值的话 说明你的时序,地址之类的是正确的,成功写入的条件还有1.芯片处於unsealed状态 2.电压高于Dataflash能够更新的数值 3. checksum正确写入 4.写入的数值在datasheet里面标示的数值范围内
(2)这个计算方法通过阅读datasheet稍微优化得到,datasheet里的方法是读出整个BLOCK的内容然后一个个算,这里读出old checksum相当于是简化了这一步,所以其实是一样的。因为一般用户都是采用EVSW进行参数修改等,比较少直接修改,所以没有传专门的技术文档到官网。通过这种直接的修改除了复杂以外,最大的缺点是不能修改一些不知道地址的参数,比如CHEM-ID,这个目前只能通过链接EV2300等然后通过软件进行下载更新。
就是要修改的数值原来的数值大小和新的数值,比如你要修改设计容量,对应的就是读出的原来设计容量值,以及要写入的设计容量值。
我这里上传了一个另外一个IC的修改例子供你参考。
非常感谢您的回复,我先测试一下。
请问一下,使用BQ34Z100进行电池管理,充电的时候,SOC逐渐增大,但是放电的时候,SOC瞬间变为0,再次改为充电时,SOC会接着原来的值继续增大,请问这是什么原因呢?
很有可能是因为CHEM-ID 不对以及没有进行golden learning,如果只用单片机进行通信的话是下载不了ID的,datasheet及相关资料只有标注CHEM-ID号码和Ra表的地址,实际CHEM-ID内的很多东西地址是没有公开的,一般用户只能通过开发套件进行下载ID,所以我觉得你应该没有下载到正确的ID。一般出现跳变的问题 我们首先排查的就是CHEM-ID和内阻表Qmax,然后温度和负载。其次,对于这些开发的问题一般都需要提供SENC文件和log数据,没有开发套件的话的这些数据都比较难获得。
谢谢,我在datasheet的“Table 20. Data Flash Summary”中找到了Chem ID这个寄存器,不知这是否是您提到的CHEM-ID?不用官方开发套件就不能进行开发吗?
是的,CHEM-ID不是单纯改这个参数就可以的,这个仅仅是给用户参考是否成功更新ID和debug检验ID号码一个标志而已,一般不是直接修改的,CHEM-ID里面的很多参数是不对用户开放的,只能通过bqCONFIG或者EVSW,GaugeStudio等进行修改然后这个值也自动更新。
不用官方套件开发的问题我已经提到过了:有几个问题是难以解决的
1.CHEM-ID只能采用默认ID,匹配度不算太好,34z100需要ID更加准确ID
2.无法导出量产文件,在进行完chem-ID,校准和golden learning后还需要一些步骤才能完成量产文件的导出
3.配置参数比较困难
4.debug时参数记录难
所以基本上不大可能不用开发套件就能完成开发的,所以不必要花过多的时间在研究如何使用单片机就能进行开发。