主题中讨论的其他器件: BQSTUDIO
您好!
我正在尝试禁用 BQ27426芯片上的"电池插入启用"。
我已经按照技术参考指南(SLUUBB0 - 2015年12月)编写了扩展数据闪存寄存器。 我直接通过 I2C 从 MCU 连接芯片、而不是通过 BQStudio 软件连接。 我的方法如下:
- 解开设备的密封圈
- 查询状态寄存器中的密封位以检查它是否已被清零
- 进入配置更新模式
- 查询标志寄存器中的 CFGMODE 位以检查其是否已置位。
- 启用块存储器控制
- (将0x00写入 BlockDataControl()命令寄存器
- 将子类 ID 偏移设置为64以访问存储 OpConfig OpConfigB OpConfigC OpConfigD 的(类)配置(子类)寄存器
- 将0x40写入 DataBlockClass()寄存器
- 将寄存器读入32字节长的数组
- 注意:在这个阶段、我不能正确读取第一个字节的复位默认值。 本参考指南说明了 OPConfig 的默认值为0x6578、其中我读取了0x0078。 我还将 OpConfig B C 和 D 的默认值读取为与参考手册中引用的值相同。
- 将新值写入读取数组的前两个字节、以更改 OpConfigCalculate 的新校验和位(与应用示例中所述的相同过程)
- 注意:我未能成功写入高字节并读回写入的相同值。 我能够写入低字节并读回写入的值。 我只想清除 OpConfig 高字节中的 BIE 位。 根据参考手册中的默认值、我计算出我需要将0x44写回高字节。
- 将新校验和写入 BlockDataChecksum ()寄存器- 注意:这是成功的,我没有收到 NACT 返回
- 通过发送软复位命令退出 CFG 更新。
按照相同的过程、我能够访问状态子类中的字节并重写它们。 我无法对 OpConfig 寄存器执行相同的操作。 我也无法复位器件并读回 OpConfig 高字节的参考手册值、但我可以读回寄存器子类中的所有其他字节。
我已经尝试在命令之间添加计时延迟、但没有成功的结果。
我是否缺少写入 OpConfig 寄存器的先决条件? 在为该芯片配置 OpConfig 寄存器的文档中、我找不到许多示例或参考。
谢谢、