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.

[参考译文] BQ40Z80EVM-020:BQ40Z80EVM-020 单元增益校准偏移

Guru**** 2589265 points
Other Parts Discussed in Thread: BQ40Z80EVM-020

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1574219/bq40z80evm-020-bq40z80evm-020-cell-gain-calibration-offset

部件号:BQ40Z80EVM-020


工具/软件:

我目前正在使用  MOLICK INR-217000-P45B 和 BQ40Z80EVM-020 校准 6S1P 电池组。

遗憾的是、在进行校准时、我会看到电芯 1 和电芯 2-6 之间存在 475mV 的差异。

我已尝试通过 CALIBRATION 选项卡进行校准、使用 DMM 在外部测量电芯、并输入电芯 1 (4106mV)、VC6-PACK (24640mV) 和 VSS (24260mV) 的值。

遗憾的是、校准后电量监测计的读数为 27143mV(比实际值高 3V)、寄存器中的电芯电压为电芯 1:3681mV、电芯 2-6:4102mV。  

电芯 1、2、3、4、5 的外部读数 6 全部平衡为 4106mV。  

未使用电芯 7。  我已经使用跳线设置和数据存储器来确保不使用 VC7SENSE、VC7EN、CB7EN 选项。

我还尝试使用 Advanced Comm SMB 通过以下步骤进行校准:

  1. 启用校准 (CAL_EN 或将字写入 0x00、0x002D)
  2. 在 ManufacturerBlock Access 上开始流式传输 ADC/CC 数据(将字写入 0x00、0xF081)
  3. 在 ManufacturerBlockAccess 上读取数据(读取块 0x23)
  4. 执行多次并使用脚本获取平均值

这似乎确实带来了更好的增益、但最终、Cell 1 和 Cell 2-6 之间仍然存在这种差异。

您是否有关于导致此问题的原因的任何信息? 我是否可以修改任何偏移或每个电芯配置?  

我希望有任何关于这一问题的根源的推理!

我正在尝试使用 GPCPackager 执行 Relax -> discharge -> Relax 来获取 ChemID、因此我尚未对该代码进行编程、也没有执行 IT Track。  

谢谢

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

    这是我正在使用的一个脚本来轻松转换从 ManufacturerData 读取的 0xF081 块。

    DEF TO_int16 (lo、hi):
      VAL = LO |(hi << 8)
      如果 val >= 0x8000:
        VAL -= 0x10000
      返回 val


    DEF parse_block_read (hex_str):
      data =[int (x、16) for x in hex_str.replace(“\n",“,"、")“).split ()]
      帧={
        “ZZ":“:DATA[0]、
        “YY":“:DATA[1]、
        “i":“:TO_Int16 (data[2]、data[3])、
        “C1":“:TO_Int16 (data[4]、data[5])、
        “C2":“:TO_Int16 (data[6]、data[7])、
        “C3":“:to_int16 (data[8]、data[9])、
        “C4":“:TO_Int16 (data[10]、data[11])、
        “C5":“:TO_Int16 (DATA[12]、DATA[13])、
        “C6":“:TO_Int16 (DATA[14]、DATA[15])、
        “Pack":“:TO_Int16 (data[16]、data[17])、
        “bat":“:to_int16 (data[18]、data[19])、
        “I1":“:TO_Int16 (data[20]、data[21])、
        “I2":“:TO_Int16 (data[22]、data[23])、
        “i3-":“:TO_Int16 (DATA[24]、DATA[25])、
        “I4":“:TO_Int16 (data[26]、data[27])、
        “I5":“:TO_Int16 (data[28]、data[29])、
        “I6":“:TO_Int16 (data[30]、data[31])、
      }
      返回机架


    DEF CALCULATE_GAIN(标签,ADC_VALUE、known_MV):
      如果标签在(“Pack",“,"BAT"、"BAT")“)中“ 中:
        返回 (known_MV * 65536)/(ADC_VALUE * 2)
      否则:
        返回 (known_MV * 65536)/ ADC_VALUE


    如果__NAME__=“__MAIN__":“:
      #已知施加的电压,单位为 mV
      Ref_Voltages ={
        “C1":“:4105、
        “C2":“:4105、
        “C3":“:4106,
        “C4":“:4105、
        “C5":“:4105、
        “C6":“:4106,
        “Pack"(“(包装(包装):24640、
        “BAT":“:24260、
      }

      BLOCK_READS =[
        “""AE 01“ 01 FA“ FA FF E2 4D C0 56
        C5 56 BD 56 BF 56 BD 56
        77 46 66 53 FE FF FF FF FF FF FF
        FB FF 01 00 F9 FF F9 FF“"",“,</s>“ 、

        “"0A 01“ 01 F8 FF E4 4D BE 56
        C5 56 be 56 be 56 be 56 bf 56
        77 46 66 53 FE FF FC FF
        FE FF FE FF FA FF F9 FF“"",“,</s>“ 、

        “"49 01“ 01 FB FF E4 4D BE 56
        C5 56 Be 56 BC 56 Be 56
        91 46 69 53 FD FF FC FF
        FD FF FF FF FF FF FF FF FF FF FF F6 FF“"",“,</s>“ 、

        “"69 01“ 01 FB FF E4 4D BE 56
        C4 56 是 56 是 56 是 56
        90 46 67 53 FE FF FD FF
        FE FF FB FF FF FF FF FF FF FF F6 FF“"",“,</s>“ 、

        “"8F 01“ 01 FB FF E3 4D BF 56
        C4 56 Be 56 BC 56 BD 56
        91 46 67 53 FD FF FF FF FF
        FD FF FE FF FC FF F8 FF“""</s>“ “
      ]

      all_frames = block_reads 中 b 的[parse_block_read (b)]

      Print(“===平均收益===“)
      AVG_ADCS ={}
      对于标签、请参阅 ref_voltages.items():中的 MV
        AVG_adc = sum (f[label]表示 fall _frames 中的 f)/len (all_frames)
        AVG_ADCs[label]= avg_adc
        增益= calculate_gain(标签,avg_adc、mv)
        GAIN_INT = int (round (GAIN))
        Print (f“{label}:Avg adc ={avg_adc:.2f}、“
           f“mV={mv}、gain={gain:.2f}({gain_int}、0x{gain_int:04X})“)

      #额外的摘要行
      AVG_ADC_c1c6 = sum ([C1“、“C2",“,"C3"、"C3",“,"C4"“"C4",、,"C5"“"C5",“,"C5"、"C5",“,"C5"“"C5",、,"C6"]“"C6"]中“中 c、 c 的“ 的 avg_adc[c]“ avg_adc[c])、)/“/ 6“ 6
      AVG_MV_c1c6 =[“C1",“,"C2"、"C2",“,"C3"“"C3",、,"C4"“"C4",“,"C5"、"C5",“,"C5"“"C5",、,"C5"“"C5",“,"C6"]、"C6"]中“中 c“ c 的、 的 ref_voltages[c]“ ref_voltages[c])“)/、/ 6“ 6</s>“
      gain_c1c6 = calculate_gain(“C1-C6",“,avg_adc_c1c6、avg_adc_c1c6、avg_mv_c1c6)
      打印 (f“C1–C6 组合:Avg adc={avg_adc1c6:.2f}、“
         f“mv={avg_mv_c1c6:.2f}、gain={gain_c1c6:.2f}“
         f“({int (round (gain_c1c6))}、0x{int (round (gain_c1c6)):04X})

      AVG_adc2c6 = sum ([C2“、“C3",“,"C4"、"C4",“,"C5"“"C5",、,"C6"]“"C6"]中“中 c、 c 的“ 的 avg_adc[c]“ avg_adc[c])/ 5
      AVG_MV_c2c6 = SUM ([C2“、“C3",“,"C4"、"C4",“,"C5"“"C5",、,"C6"]“"C6"]中“中 c、 c 的“ 的 ref_voltages[c]“ ref_voltages[c])/ 5
      gain_c2c6 = calculate_gain(“C2-C6",“,avg_adc_c2c6、avg_adc_c2c6、avg_mv_c2c6)
      打印 (f“C2–C6 组合:Avg adc={avg_adc2c6:.2f}、“
         f“mv={avg_mv_c2c6:.2f}、gain={gain_c2c6:.2f}“
         f“({int (round (gain_c2c6))}、0x{int (round (gain_c2c6)):04X})

    以下是计算得出的增益:

    ===平均增益===
    C1:平均 ADC = 19939.40、mV = 4105、增益= 13492.15 (13492、0x34B4)
    C2:平均 ADC=22206.60、mV=4105、增益=12114.65 (12115、0x2F53)
    C3:平均 ADC=22212.60、mV=4106、增益=121144.33 (12114、0x2F52)
    C4:平均 ADC=22205.80、mV=4105、增益=12115.09 (12115、0x2F53)
    C5:平均 ADC=22205.40、mV=4105、增益=12115.31 (12115、0x2F53)
    C6:平均 ADC = 22205.80、mV = 4106、增益= 12118.04 (12118、0x2F56)
    PACK:平均 ADC = 18054.40、mV = 24640、增益= 44720.60 (44721、0xAEB1)
    BAT:平均 ADC = 21351.00、mV = 24260、增益= 37232.53 (37233、0x9171)
    C1–C6 组合:平均 ADC = 21829.27、mV = 4105.33、增益= 12325.06 (12325、0x3025)
    C2–C6 组合:平均 ADC = 22207.24、mV = 4105.40、增益= 12115.49 (12115、0x2F53)

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

    当我通过“Calibration"菜单“菜单进行校准时、会得到一些增益。 最大的差异在于电芯增益、它与 ManufacturerData 读数中的电芯 1 异常值增益非常相似、而不是 C2-C6 中的一致增益。

    电芯增益:13581

    电池组增益:44020

    VSS 增益:37825

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

    我们的跳线配置设置为:

    Pin13/J21[1、2]/J14[2、3]= ADCIN2/GPIO
    Pin15/J8[1、2]/J6[2、3]=/DISP
    Pin20/J15[2、3]= LEDCNTLA
    PIN21/J17[1、2]= LEDCNTLB
    PIN22/J16[1、2]= LEDCNTLC
    J18[2、3]= EXT2400 SMBD1

    J5[1、2] J6[2、3] J7[2、3] J8[1、2] J10[2、 3] J14[1、2] J15[2、3] J16[1、2] J17[1、2] J18[1、 2] J20[1、2] J21[1、2] J22[1、2]

    最初、我没有选择 CB7EN 跳线配置、并且未安装 VC7SENSE 跳线。  

    我现在已通过跳线配置和寄存器设置(未反映在我的日志/导出数据中)确保 CB7EN、VC7EN、VC7SENSE 已禁用。  

    MFP16[SEL0][SEL1]= 10 (GPIO); 引脚 16/J10[2、3]、 避免选择 CB7EN

    MFP12[SEL0][SEL1][SEL2]= 011 (GPIO);引脚 12/J7[2、3]、避免选择 VC7SENSE

    MFP15[SEL0][SEL1]= 01 (DISP);引脚 15/J6[2、3]避免选择 VC7EN

    遗憾的是、更新此配置后电芯读数没有变化。

     如果使用这些跳线设置在 6S 上完成充电循环并使 6P 和 7P 之间保持短路、那么电池组会出现什么行为?

    这是我的错误!

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

    我们在 Cell Configuration Data Memory Settings(电池配置数据存储器设置)中设置了 6S:

    CC2、CC1、CC0(位 2–0):电芯数

    1、1、0 = 6 节电芯

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

    e2e.ti.com/.../lasttry.gg.csve2e.ti.com/.../lasttry.log

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

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

    订购另一个 EVM 已解决此问题。 我们可能已经交换了电池组电芯并从 1N 交换到 6P、而不是 6P 到 1N、从而导致模拟前端过压并损坏路径。 更便宜的解决方案可能是替换过压保护器