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.

[参考译文] BQ28Z620:读取的电压和 SOC 值不准确

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1524210/bq28z620-the-voltage-and-soc-values-read-are-inaccurate

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

工具/软件:

您好团队:

我们在官方电路板上读取的电池电压和 SOC 值不准确。 SOC 值返回0x80、即128、电压值返回0x8000、即32768。 代码如下所示、
在读取电压时、我们最初使用 EVK 进行测试。 小终端读回的值不正确、而大终端模式读回的数据是正确的。 因此、我们使用了大型端子模式。 我们是否需要在正式的电路板中使用小型端子模式? 如果为0x0080、则该值也不正确
您能帮助我们确定哪个器件可能是问题吗? 此外、在官方电路板上使用 bq28z620时、我们还需要注意哪些其他问题?

通过使用逻辑分析捕获数据、发现读回后、数据位0x00+NAK 和 sda/SCL 都处于低电平、并且时钟在过程中没有继续

此致!

光圈

typedef struct __attribute__((packed)) {
    uint8_t high_byte;  /*buf[0] */
    uint8_t low_byte;  /*buf[1] */
} bq28z620_voltage_t;

typedef struct __attribute__((packed)) {
    uint8_t low_byte;
    uint8_t high_byte;
} bq28z620_reg_t;

static int read_voltage(const msdk_device_t *dev, uint16_t *milli_volts)
{
    bq28z620_voltage_t voltage_data = {0};
    int res = MSDK_STATUS__ERROR;

    res = read_reg(dev, BQ28Z620_CMD__VOLTAGE, (uint8_t *)&voltage_data);

    if (MSDK_STATUS__OK == res){

        *milli_volts = (voltage_data.high_byte << 8) | voltage_data.low_byte;
    }
    MSDK_LOG_DBG("milli_volts: %d", *milli_volts);

    return res;
}

static int read_relative_soc(const msdk_device_t *dev, uint16_t *percent)
{
    bq28z620_reg_t soc_data = {0};
    int res = MSDK_STATUS__ERROR;

    res = read_reg(dev, BQ28Z620_CMD__RELATIVE_STATE_OF_CHARGE,(uint8_t *)&soc_data);

    if (MSDK_STATUS__OK == res){

        *percent = (soc_data.high_byte << 8) | soc_data.low_byte;
    }

    return res;
}

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

    您好:  

    请确保您读取的地址正确无误。 有关所用固件版本的最新地址映射、请参阅 BQStudio。 下面是一个常见问题解答 、介绍了如何使用 BQStudio 查看数据闪存地址映射。  

    此致、  

    Jonny。