请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:BQ28Z620 主题中讨论的其他器件: BQ25798、 BQSTUDIO
工具/软件:
目前、我们已将贵公司的 BQ28Z620 芯片与 BQ25798 芯片配合用于实际工程。 但是、我们发现了一个问题、即电路板在开启时应该具有 70°–80mA 的电流、但我们使用 bq28z620 读回的数据为 0、并且我们 EE 同事在 BQStudio 上读回的数据是 80mA
一段时间后、电流如图所示
我想问、造成这种情况的可能原因是什么
逻辑分析仪读取的相关代码和数据如下
#define BQ28Z620_CMD__CURRENT 0x0C static int read_reg(const msdk_device_t *dev, uint8_t reg, uint8_t *value, uint8_t size) { int ret = MSDK_STATUS__ERROR; const bq28z620_cfg_t *const dev_config = (const bq28z620_cfg_t *const)dev->config; ret = msdk_i2c_read_reg(dev_config->i2c_dev, dev_config->i2c_addr, reg, value, size); return ret; } static int read_current(const msdk_device_t *dev, int16_t *milli_ampere) { uint8_t current_data[2] = {0}; int res = MSDK_STATUS__ERROR; res = read_reg(dev, BQ28Z620_CMD__CURRENT, current_data, sizeof(current_data)); if (MSDK_STATUS__OK == res) { uint16_t raw_value = (current_data[0] << 8) | current_data[1]; if(!(raw_value & 0x8000)) { *milli_ampere = (int16_t)raw_value; } else { *milli_ampere = -(int16_t)(raw_value & 0x7FFF); } } return res; } msdk_status_t bq28z620_property_get(const msdk_device_t *dev, msdk_fuel_gauge_property_t prop, msdk_fuel_gauge_propval_t *val) { MSDK_ASSERT(dev != NULL); MSDK_LOG_DBG("bq28z620_property_get: dev 0x%08x, prop %d", dev, prop); int res = MSDK_STATUS__ERROR; switch(prop) { case MSDK_FUEL_GAUGE_PROP_CURRENT: { int16_t mA = 0; res =read_current(dev, &mA); val->current = (int32_t)mA; } break; default: res = MSDK_STATUS__NOT_SUPPORTED; break; } return res; }


此致!
光圈