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.

[参考译文] BQ76PL455A:bq76PL455A /电池电压公式

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/594711/bq76pl455a-bq76pl455a-equation-for-cell-voltage

器件型号:BQ76PL455A

您好!

让我询问 一下数据表中7.3.3.4 VSENSE 输入通道所描述的电池电压公式。

  1. VREF 是否意味着 V ADC_REF_25为2.5V (典型值)?  
  2. 我认为这个等式中的"(2xVREF)/65535)"表示1LSB、那么请告诉我为什么 VREF 乘以2。 我知道 ADC 的1LSB 基本上是由"VREF/2^n"计算得出的。
  3. 我相信、这个等式中的"65535 "表示2^16、尽管内部 ADC 为14位。  7.3.3.2平均值时描述的是平均值吗?
  4. READ_ADC_VALUE 应该读取哪一个值? 我在下面的主题中问过类似的问题、但 我没有清楚地理解。

e2e.ti.com/.../2185230

此致、

Satoshi / Japan Disty

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

    您是正确的... VREF 是 ADC 的2.5V 基准电压。

    要获得更深入的细节、我必须更深入地探究。 不过、我可以告诉您如何更具体地计算电池电压...


    电池电压存储在 pl455的双字节寄存器中。 高字节和低字节组合在一起(这是2^16的来源)。 该16位信息是 ADC 读取值。 例如、0x3333 = 1V。

    当 TMS570等主机 MCU 读取电池数据时、它必须将信息存储在变量中并解析传入的数据包。 作为一个通用示例、假设您只有一个具有16节电池的模块。 要读取单元格16、您需要将455数据存储到数组中(示例代码中的 bFrame)。

    bFrame [0]将包含作为数据包标头的字节。
    bFrame [1]将包含电芯16电压的高字节
    bFrame [2]将包含电芯16电压的低字节
    bFrame [3]将包含电芯16电压的高字节
    bFrame [4]将包含电芯16电压的低字节
    ...依此类推、直到最后两个字节。 这些组成了 CRC 字节。

    要获得完整的 ADC 读取值、必须将这两个字节组合在一起。 这可以通过将高字节移动8位来完成、并按位与低字节进行 OR-ing

    ADC_READ_VALUE =(bFrame [1]<<8)| bFrame [2]

    然后、可以通过乘以系数来计算电池电压。 对于 TMS570、我要说使用浮点表示法5/65535、以十进制形式。 如果将数据设置为 int、则编译器可能会将5/65535截断为0、并且电池电压读数为0V

    电池电压计算(未指定数据类型)如下所示:



    CELL_Sample =((bFrame [1]<<8)| bFrame [2])* 0.0000762951 (对于电池16)
    CELL_Sample =((bFrame [3]<<8)| bFrame [4])* 0.0000762951 (对于电池15)
    … 等等