This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] BQ34Z100:更改电池监控器的配置

Guru**** 2460850 points
Other Parts Discussed in Thread: BQ34Z100-G1, BQSTUDIO

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/566238/bq34z100-changing-the-configuration-of-the-battery-monitor

器件型号:BQ34Z100
主题中讨论的其他器件: BQSTUDIO

大家好、  

我们正在进行一项设计、其中 BQ34Z100-G1电池监控器连接到 Arduino 微控制器。
我们尝试通过更改数据闪存的一些寄存器来更改电池监控器的配置。 我们能够正确读取数据闪存寄存器、但回写操作不能正常工作。  
在写入计算出的校验和后、我们将得到校验和值- 0x00。由于这个校验和问题、当我们在复位后回读时、写入闪存的数据不会反映。
有关详细信息、请查找随附的日志(battery_monitor.txt)。
我们尝试读取固件版本寄存器(子类 ID 56、偏移4)。 这将返回值- 0x00。  
电池监控器内部的默认固件是否存在此 e2e 链接中建议的任何问题 ?
请向我们指出此问题的可能原因。  
期待收到宝贵的建议。  
此致、
Avinash
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    下面是将固件版本更新为0001的事务日志。 新校验和将为 FE。 我读取了子类38H。 更改了固件版本参数和读取子类38H 以验证其是否已更改。


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Thomas:

    感谢您的回答。

    我们尝试通过将0x0001写入子类 ID 56 (0x38)偏移寄存器4来更改固件版本。
    但是、当我们回读时、这种变化也不会得到反映。

    我们已附加 Arduino 代码和相应的日志。
    您能不能查看此内容并建议我们如何继续?

    期待您的宝贵见解。

    我们已将源代码和日志文件放在下面。

    代码
    (二

    #include


    void setup()

    Wire.begin();

    Serial.begin(9600);
    while (!Serial);



    void loop()


    int reading=0;
    int flash[32];


    //读取开始

    // i2c 电源0x55 0x61 0x00
    serial.println ("读取开始");
    Wire.beginTransmission(85);
    Wire.write (byte (0x61));
    Wire.write (byte (0x00));
    wire.endTransmission ();

    // i2c 电源0x55 0x3E 0x38
    Wire.beginTransmission(85);
    Wire.write (byte (0x3E));
    Wire.write (byte (0x38));
    wire.endTransmission ();

    // i2c 电源0x55 0x3F 0x00
    Wire.beginTransmission(85);
    Wire.write (byte (0x3F));
    Wire.write (byte (0x00));
    wire.endTransmission ();

    延迟(1000);


    //i2c rd 0x55 0x40 (32字节)
    Wire.beginTransmission(85);
    serial.println ("读取32个字节\n 开始");
    Wire.write (byte (0x40));
    wire.endTransmission ();
    Wire.requestfrom (85、32);

    if (32 <= Wire.Available ())

    对于(int j=0;j<32;j++)

    flash[j]= Wire.read ();
    serial.println (flash[j]、hex);


    serial.println ("读取完成");

    //i2c rd 0x55 0x60 (1字节)
    Wire.beginTransmission(85);
    serial.println ("读取校验和\n");
    Wire.write (byte (0x60));
    wire.endTransmission ();
    Wire.requestfrom (85、1);
    如果(1 <= Wire.Available ())

    读数= Wire.read();
    serial.println (读数、十六进制);
    serial.println ("\n"\});


    //将固件版本更改为0x0001
    闪存[5]=0x1;


    /i2c 电源0x55 0x61 0x00
    Wire.beginTransmission(85);
    Wire.write (byte (0x61));
    Wire.write (byte (0x00));
    wire.endTransmission ();

    // i2c 电源0x55 0x3E 0x38
    Wire.beginTransmission(85);
    Wire.write (byte (0x3E));
    Wire.write (byte (0x30));
    wire.endTransmission ();

    // i2c 电源0x55 0x3F 0x00
    Wire.beginTransmission(85);
    Wire.write (byte (0x3F));
    Wire.write (byte (0x00));
    wire.endTransmission ();

    延迟(2000年);

    // i2c 电源0x55 0x40 0x00 0x00 0x00 0x00 0x00 0x01
    serial.println ("开始写入\n");
    Wire.beginTransmission(85);
    Wire.write (byte (0x40));
    对于(int j=0;j<6;j++)

    Wire.write (byte (flash[j]));
    serial.println (flash[j]、hex);

    wire.endTransmission ();
    serial.println ("写入完成\n");

    延迟(2000年);

    // i2c 电源0x55 0x60 0xFE
    serial.println ("写入校验和\n");
    Wire.beginTransmission(85);
    Wire.write (byte (0x60));
    Wire.write (byte (0xFE));
    wire.endTransmission ();
    serial.println ("已写入校验和\n");

    延迟(2000年);


    serial.println ("写后读回");
    // i2c 电源0x55 0x61 0x00
    Wire.beginTransmission(85);
    Wire.write (byte (0x61));
    Wire.write (byte (0x00));
    wire.endTransmission ();

    // i2c 电源0x55 0x3E 0x38
    Wire.beginTransmission(85);
    Wire.write (byte (0x3E));
    Wire.write (byte (0x38));
    wire.endTransmission ();

    // i2c 电源0x55 0x3F 0x00
    Wire.beginTransmission(85);
    Wire.write (byte (0x3F));
    Wire.write (byte (0x00));
    wire.endTransmission ();

    延迟(1000);

    //i2c rd 0x55 0x40 (32字节)
    Wire.beginTransmission(85);
    serial.println ("读取32个字节\n 开始");
    Wire.write (byte (0x40));
    wire.endTransmission ();
    Wire.requestfrom (85、32);

    if (32 <= Wire.Available ())

    对于(int j=0;j<32;j++)

    flash[j]= Wire.read ();
    serial.println (flash[j]、hex);



    //i2c rd 0x55 0x60 (1字节)
    Wire.beginTransmission(85);
    serial.println ("读取校验和\n");
    Wire.write (byte (0x60));
    wire.endTransmission ();
    Wire.requestfrom (85、1);
    如果(1 <= Wire.Available ())

    读数= Wire.read();
    serial.println (读数、十六进制);
    serial.println ("\n"\});

    serial.println ("读取完成");

    while (1);


    秘书长的报告

    日志文件
    (二
    读"开始"
    开始读取32字节

    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    读取完成
    读取校验和

    FF


    开始写入

    0
    0
    0
    0
    0
    1
    写入完成

    正在写入校验和

    写入校验和

    写后回读
    开始读取32字节

    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    读取校验和

    FF


    读取完成

    秘书长的报告

    此致、
    Avinash
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的代码看起来正确。 您可以使用示波器检查 I2C 传输、以确保器件对字节进行 ACK 处理。 也许地址应该是 AA 而不是55。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该程序是为7位 I2C 从器件地址编写的、因此地址是0x55而不是0xAA。
    此外、我们还能够正确读取数据闪存寄存器和相应的校验和。
    这证实了 I2C 通信是正确的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Avinash:

    感谢您的澄清。 正如 Tom 所说、请确保从微控制器捕获的范围地址与从 bqStudio 捕获的范围地址相匹配。 您是否有 I2C 监听器? 这对于调试 I2C 事务也非常有用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../Log.docx

    感谢 Damien、上面有响应的日志文件。

    *德州仪器数据闪存文件
    *文件创建时间:2017年1月14日星期六19:46:08
    *
    *器件型号100
    *固件版本0.16
    *内部版本号不可用
    *订单号不可用
    *
    * bqz 器件编号100
    * bqz 固件版本0.16
    * bqz 内部版本号17
    *
    *字段顺序:类名  子类名称  参数名称  参数值  显示单位
    配置 安全性 OT Chg 55 1°C
    配置 安全性 OT Chg Time 2.
    配置 安全性 OT Chg 恢复 50 1°C
    配置 安全性 OT DSG 60 1°C
    配置 安全性 OT DSG 时间 2.
    配置 安全性 OT DSG 恢复 55 1°C
    配置 充电抑制配置 CHG 抑制温度低 0 1°C
    配置 充电抑制配置 CHG 抑制温度高 45. 1°C
    配置 充电抑制配置 温度油液 5. 1°C
    配置 充电 挂起低温 -5. 1°C
    配置 充电 挂起高温 55 1°C
    配置 充电 PB EFF 效率 100 %
    配置 充电 PB 温度补偿 24.96 %
    配置 充电 PB 下降百分比 96 %
    配置 充电 PB 减速率 10. %
    配置 充电终止 锥形电流 100 放大器
    配置 充电终止 最小锥形容量 25 mAmpHr
    配置 充电终止 电池锥形电压 100 毫伏
    配置 充电终止 当前锥形窗口 40
    配置 充电终止 TCA 设置% 99 百分比
    配置 充电终止 TCA 清除百分比 95 百分比
    配置 充电终止 FC 设置% 100 百分比
    配置 充电终止 FC 清除百分比 98 百分比
    配置 充电终止 DODatEOC 增量 T 10. 1°C
    配置 充电终止 镍氢 Delta 温度 3. 1°C
    配置 充电终止 镍氢 Delta 温度时间 180
    配置 充电终止 镍氢关断 时间 100
    配置 充电终止 镍氢关断电流 240 放大器
    配置 充电终止 镍氢关断 温度 25 1°C
    配置 充电终止 镍氢电池负增量电压 17. 毫伏
    配置 充电终止 镍氢电池负增量时间 16.
    配置 充电终止 镍氢电池负电压 Delta 定电压 4200 毫伏
    配置 数据 制造日期 1980年1月1日 Day + Mo * 32 +(yr -1980年)*256
    配置 数据 序列号 1 十六进制
    配置 数据 周期计数 0 计数
    配置 数据 CC 阈值 900 mAmpHr
    配置 数据 最大误差限制 100 %
    配置 数据 设计容量 1000 MilliAmpHour
    配置 数据 设计能源 5400 MilliWattHour
    配置 数据 SOH 负载 I -400 毫安
    配置 数据 电池充电电压 T1-T2 4200 MV
    配置 数据 电池充电电压 T2-T3 4200 MV
    配置 数据 电池充电电压 T3-T4 4100 MV
    配置 数据 充电电流 T1-T2 10. 百分比
    配置 数据 充电电流 T2-T3 50 百分比
    配置 数据 充电电流 T3-T4 30 百分比
    配置 数据 JEITA T1 0 摄氏度
    配置 数据 JEITA T2 10. 摄氏度
    配置 数据 JEITA T3 45. 摄氏度
    配置 数据 JEITA T4 55 摄氏度
    配置 数据 设计能源规模 1 数字
    配置 数据 器件名称 bq34z100-G1 -
    配置 数据 制造商名称 德州仪器 -
    配置 数据 器件化学特性 狮子 -
    配置 放电 SOC1设置阈值 150 毫安时
    配置 放电 SOC1清除阈值 175. 毫安时
    配置 放电 SOCF 设置阈值 75 毫安时
    配置 放电 SOCF 清除阈值 100 毫安时
    配置 放电 电池 BL 设置电压阈值 2800 毫伏
    配置 放电 电池 BL 设定电压时间 2.
    配置 放电 电池 BL 清零电压阈值 2900 毫伏
    配置 放电 电芯 BH 设置电压阈值 4300 毫伏
    配置 放电 电芯 BH 电压时间 2.
    配置 放电 电芯 BH 清零电压阈值 4200 毫伏
    配置 放电 周期增量 0.05 %
    配置 制造商数据 包装批次代码 0 十六进制
    配置 制造商数据 PCB 批次代码 0 十六进制
    配置 制造商数据 固件版本 0 十六进制
    配置 制造商数据 硬件版本 0 十六进制
    配置 制造商数据 单元格修订 0 十六进制
    配置 制造商数据 DF 配置版本 0 十六进制
    配置 寿命数据 使用寿命最高温度 30 1°C
    配置 寿命数据 使用寿命最低温度 20. 1°C
    配置 寿命数据 使用寿命最大 Chg 电流 0 放大器
    配置 寿命数据 使用寿命最大 DSG 电流 0 mA
    配置 寿命数据 使用寿命最大电池组电压 160 20mV
    配置 寿命数据 终身最小电池组电压 175. 20mV
    配置 使用寿命温度样本 LT 闪存计数 0 计数
    配置 寄存器 包配置 41d9. 标志
    配置 寄存器 电池组配置 B AF 标志
    配置 寄存器 电池组配置 C 37. 标志
    配置 寄存器 LED_Comm 配置 0 标志
    配置 寄存器 警报配置 0 标志
    配置 寄存器 串联电池节数 1 数字
    配置 寿命分辨率 左温度分辨率 1 1°C
    配置 寿命分辨率 左侧电阻器 100 mA
    配置 寿命分辨率 左 V 电阻 1 20mV
    配置 寿命分辨率 LT 更新时间 60
    配置 LED 显示屏 LED 保持时间 4. 数字
    配置 电源 闪存更新正常电芯电压 2800 毫伏
    配置 电源 休眠电流 10. 放大器
    配置 电源 FS 等待 0
    系统数据 制造商信息 块 A 0 0 十六进制
    系统数据 制造商信息 块 A 1. 0 十六进制
    系统数据 制造商信息 块 A 2. 0 十六进制
    系统数据 制造商信息 块 A 3. 0 十六进制
    系统数据 制造商信息 块 A 4. 0 十六进制
    系统数据 制造商信息 块 A 5. 0 十六进制
    系统数据 制造商信息 块 A 6. 0 十六进制
    系统数据 制造商信息 块 A 7. 0 十六进制
    系统数据 制造商信息 块 A 8. 0 十六进制
    系统数据 制造商信息 块 A 9. 0 十六进制
    系统数据 制造商信息 块 A 10. 0 十六进制
    系统数据 制造商信息 块 A 11. 0 十六进制
    系统数据 制造商信息 块 A 12. 0 十六进制
    系统数据 制造商信息 块 A 13. 0 十六进制
    系统数据 制造商信息 块 A 14. 0 十六进制
    系统数据 制造商信息 块 A 15. 0 十六进制
    系统数据 制造商信息 块 A 16. 0 十六进制
    系统数据 制造商信息 块 A 17. 0 十六进制
    系统数据 制造商信息 块 A 18. 0 十六进制
    系统数据 制造商信息 A 组19. 0 十六进制
    系统数据 制造商信息 块 A 20. 0 十六进制
    系统数据 制造商信息 块 A 21. 0 十六进制
    系统数据 制造商信息 块 A 22. 0 十六进制
    系统数据 制造商信息 块 A 23. 0 十六进制
    系统数据 制造商信息 块 A 24. 0 十六进制
    系统数据 制造商信息 块 A 25. 0 十六进制
    系统数据 制造商信息 块 A 26. 0 十六进制
    系统数据 制造商信息 块 A 27. 0 十六进制
    系统数据 制造商信息 块 A 28. 0 十六进制
    系统数据 制造商信息 块 A 29. 0 十六进制
    系统数据 制造商信息 块 A 30 0 十六进制
    系统数据 制造商信息 块 A 31. 0 十六进制
    电量监测 IT 配置 负载选择 1 数字
    电量监测 IT 配置 加载模式 0 数字
    电量监测 IT 配置 电阻器电流 10. 放大器
    电量监测 IT 配置 最大分辨率系数 50 数字
    电量监测 IT 配置 最小分辨率系数 1 数字
    电量监测 IT 配置 RA 滤波器 500 数字
    电量监测 IT 配置 最小 PassedChg 镍氢电池- LA 第1个 Qmax 50 %
    电量监测 IT 配置 最大 Qmax 变化 100 %
    电量监测 IT 配置 电池终止电压 3000 毫伏
    电量监测 IT 配置 电芯项 V Delta 200 毫伏
    电量监测 IT 配置 重新发送时间 500
    电量监测 IT 配置 用户速率- mA 0 毫安
    电量监测 IT 配置 用户速率-供电 0 MW/CW
    电量监测 IT 配置 保留容量 mAh 0 MilliAmpHour
    电量监测 IT 配置 保留能源 0 MWH/CWH
    电量监测 IT 配置 最大比例反向网格 4. 数字
    电量监测 IT 配置 Cell Min DeltaV 0 毫伏
    电量监测 IT 配置 RA 最大增量 15. %
    电量监测 IT 配置 设计电阻 42. 穆罕默德
    电量监测 IT 配置 基准栅格 4. -
    电量监测 IT 配置 Qmax 最大增量% 10. mAmpHour
    电量监测 IT 配置 最大分辨率标度 32000年 数字
    电量监测 IT 配置 最小分辨率标度 1 数字
    电量监测 IT 配置 快速启动 SOC 10. %
    电量监测 IT 配置 为 HYS V Shift 充电 40 毫伏
    电量监测 IT 配置 平稳的放松时间 1000 S
    电量监测 电流阈值 DSG 电流阈值 60 放大器
    电量监测 电流阈值 CHG 电流阈值 75 放大器
    电量监测 电流阈值 退出电流 40 放大器
    电量监测 电流阈值 DSG 放松时间 60
    电量监测 电流阈值 放松时间 60
    电量监测 电流阈值 Cell Max IR Correct 400 MV
    电量监测 状态 Qmax Cell 0 1000 mAmpHr
    电量监测 状态 周期计数 0 数字
    电量监测 状态 更新状态 0 数字
    电量监测 状态 Chg Term 下的电芯 V 4200 毫伏
    电量监测 状态 平均 I 上次运行 -299 放大器
    电量监测 状态 平均 P 上次运行 -1131 MilliWattHour
    电量监测 状态 电芯增量电压 2. 毫伏
    电量监测 状态 t RISE 20. 数字
    电量监测 状态 t 时间常数 1000 数字
    RA 表 RA0表 RA 标志 FF55 十六进制
    RA 表 RA0表 RA 0 105. 数字
    RA 表 RA0表 RA 1. 100 数字
    RA 表 RA0表 RA 2. 113 数字
    RA 表 RA0表 RA 3. 143. 数字
    RA 表 RA0表 RA 4. 98 数字
    RA 表 RA0表 RA 5. 97 数字
    RA 表 RA0表 RA 6. 108. 数字
    RA 表 RA0表 RA 7. 89 数字
    RA 表 RA0表 RA 8. 86 数字
    RA 表 RA0表 RA 9. 85. 数字
    RA 表 RA0表 RA 10. 87 数字
    RA 表 RA0表 RA 11. 90 数字
    RA 表 RA0表 RA 12. 110 数字
    RA 表 RA0表 第13条 647 数字
    RA 表 RA0表 RA 14. 1500 数字
    RA 表 RA0x 表 RA 标志 FFFF 十六进制
    RA 表 RA0x 表 RA 0 105. 数字
    RA 表 RA0x 表 RA 1. 100 数字
    RA 表 RA0x 表 RA 2. 113 数字
    RA 表 RA0x 表 RA 3. 143. 数字
    RA 表 RA0x 表 RA 4. 98 数字
    RA 表 RA0x 表 RA 5. 97 数字
    RA 表 RA0x 表 RA 6. 108. 数字
    RA 表 RA0x 表 RA 7. 89 数字
    RA 表 RA0x 表 RA 8. 86 数字
    RA 表 RA0x 表 RA 9. 85. 数字
    RA 表 RA0x 表 RA 10. 87 数字
    RA 表 RA0x 表 RA 11. 90 数字
    RA 表 RA0x 表 RA 12. 110 数字
    RA 表 RA0x 表 第13条 647 数字
    RA 表 RA0x 表 RA 14. 1500 数字
    校准 数据 CC 增益 10.123. m Ω
    校准 数据 CC Delta 10.147. m Ω
    校准 数据 CC 偏移 -1200 数字
    校准 数据 电路板偏移 0 数字
    校准 数据 内部温度偏移 0 摄氏度
    校准 数据 外部温度偏移 0 摄氏度
    校准 数据 分压器 5000 毫伏
    校准 电流 死区 5. 放大器
    安全性 代码 密封至未密封 36720414 十六进制
    安全性 代码 未密封至满 FFFFFFFF 十六进制
    安全性 代码 AUHEN 键3 1234567 十六进制
    安全性 代码 AUHEN 键2 89abcdef 十六进制
    安全性 代码 AUHEN 键1 fedcba98 十六进制
    安全性 代码 AUTHEN Key0 76543210 十六进制

    很抱歉、我无法附加文件、这就是我在此处粘贴完整文件的原因。

    此致、
    Avinash