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.

[参考译文] BQ76942:电压栅校准-增益和偏移单元

Guru**** 2554500 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1043674/bq76942-volgate-calibration---gain-and-offset-unit

器件型号:BQ76942

你好!

我们一直致力于实现"BQ769x2校准和 OTP 编程指南"中介绍的电池电压、TOS 和电池组引脚电压校准序列。 我们使用两点校准序列、并计算测量点之间的差值。 电池电压对我们来说很好、但我们在这两个引脚上有一些问题。

问题1:

根据 手册、READ_CAL1 (0xf081)命令具有12个字节的响应、但 AFE 在此命令上返回14个字节。 最后几个字节是什么、仍然正确的是 TOS 和 PACK 引脚偏移在字节6和8中与手册中的状态相同?

问题2:

我们以 mV 的用户电压操作 AFE。  公式中的失调电压和增益预期输入是多少? 对于电池校准、这是可行的、但当我们将公式应用于 PACK 和 TOS 引脚时、计算结果超出了 Int16范围。 (例如、我们在这里输入20V 和16V、在下面的公式中、差异将是4000mV 或400cV)

问题3:

pack 和 tos 引脚的偏移值不包含在示例代码中。 这是因为它没有被使用吗? 文档指出、它的计算方式与电池电压的计算方式相同。 这是否意味 着除数在以下公式中应为2^16:

 

此致

/Erik Almqvist

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

    文档参考:

    BQ769x2校准和 OTP 编程指南(修订版 A)


    《BQ76942技术参考手册》(修订版 A)(TI.com)

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

    您好 Erik、

    问题1: 您回答正确,Read_CAL_()实际上确实返回14个字节。 当前未记录最后2个字节、但它们包含器件的单元格映射。 如 TRM 中所示、TOS 和 PACK 引脚 ADC 计数仍以字节6和8为单位。

    问题2: userV 设置对于 PACK/TOS/LD 增益不重要。 参考 BQ769x2校准和 OTP 编程指南中的代码示例、应用的电压应以 mV 的形式输入到方程式中。 userV 设置不会影响 ADC 计数。

    问题3: Vdiv 偏移以 userV 为单位、因此务必根据 userV 设置进行设置。 它的计算方法与使用2^16作为除数的电池电压相同。 此参数用于电池组电压、TOS 电压和 LD 电压、因此它将影响所有3个测量值。

    此致、

    Matt

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

    你好!

    感谢 Matt 的输入!

    关于问题2:)  

    我们提出这一要求是因为技术参考手册建议输入应为 CV。

    我们编写此代码是因为我们得到的值超出范围。在公式中、我们使用以下值作为输入:

    Voltage1 = 20000mV

    Voltage2 = 17500mV

    ADC 计数 V1 = 3853 (从 READ_CAL1读取的平均值)

    ADC 计数 V2 = 3370 (  从 READ_CAL1读取的平均值)

    公式变为:

    TOS 增益= 2^16*(20000-17500)/(3853-3370)= 2^16 (2500/ 483)= 2^16 *(5.175...)  


     它超出校准:电压:TOS 增益寄存器的 UINT16范围。 如果使用 CV、我们将有一个介于0和1之间的值与2^16 ->相乘、该值将在 uint16范围内。 (遗憾的是、这仍然会在校准序列后提供不良的读数)。

    编辑:您能不能发现此计算中出现的不按顺序的情况吗?

    简短的单独说明:

    而 我在 线上有了 BQ769x2校准和 OTP 编程指南(修订版 A)的 Guru 和作者。 在进行电流计算时-我们在找到这句话时遇到了巨大的问题,该句子涉及到 READ_CAL1在 CC2Counts 中使用的字节,因为文档中的其他地方没有提到:

    最好在技术参考文档中稍微强调或提及该部分。 (它是否与适用于 READ_CAL1的电压寄存器的类似?)

    此致

    /Erik Almqvist

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

    您好 Erik、

    很抱歉,对于问题2,我在对你的回答中犯了一个错误。 计算结果应以伏特为单位。 在应用手册的示例代码中、我看到了4200-2500用于此计算、我认为这是以 mV 为单位的、但这是堆叠电压、对于本示例为10节电池、因此它是42000mV 和25000mV。  

    感谢您提供有关 READ_CAL1 ()寄存器的 CC2计数的注释。 我将把这一信息传递给 TRM 的文档所有者、以便我们在下一个修订中更清楚地说明这一点。

    此致、

    Matt

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

    再次感谢 Matt 的回复!

    我 很显然、我想直线方程有一些问题... 所以、我理解它是正确的:

    我们使用的是 mV 的 userV。 那么、我们应该在增益计算中使用 CV、然后应用 mV 的 VDIV 偏移公式? 还是应在计算后转换为 userV?


    数字示例:

    Voltage1 = 17500mV

    Voltage2 = 20000mV

    ADC 计数 V1 = 3370 (从 READ_CAL1读取的平均值)

    ADC 计数 V2 = 3853 (  从 READ_CAL1读取的平均值)

    公式变为:

    TOS 增益= 2^16*(2000-1750)/(3853-3370)= 2^16 (250 / 483)= 2^16 *(0.5175...) = 33915

    VDiv ~=(33915 * 3370 / 2^16)- 17500 μ s = 1744 - 17500 =-15756       <--感觉不对

    感觉它应该接近0。 如果我们在上面的 Vdiv 偏移方程中有 CV -我们将有1743-1750、如果我们将 CV 设为-6  、这在 VDiv 偏移默认为零的情况下感觉是可以的。  

    或者,我们是否应该在 CV (1744-1750 =-6)中针对 umla 进行 VDiv 偏移计算,然后在存储到 userV 之前将此结果转换为 mV (-6 *10 = 60)?

    此致

    Erik Almqvist

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

    您好 Erik、

    您的最后一条陈述是正确的-您应该计算 CV 中的 VDiv 偏移、然后根据您的 userV 设置转换此结果。 由于您的 userV 设置为 mV、因此您希望将此值存储为60。 因此 Vdiv 偏移比较复杂、因为该参数由器件根据 userV 设置进行解释。

    此致、

    Matt

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

    感谢 Matt 的支持! 非常感谢!

    此致

    /Erik