主题中讨论的其他器件: BQ27010、 BQ27000
工具/软件:Linux
您好、先生、
我的项目在 Android 设备(Linux 内核4.4)中使用 bq28z610监测计。 我知道 bq28z610电量监测计驱动器是 bq27xxx_battery.c、但 bq28z610无法满足某些电池配置要求。
下面是一些问题:
1. 在 bq27xxx_battery.c 中,我需要修改电池状态的配置标志位以定义 Marco,但我无法将电池状态的某些 Marco 标志位与 bq28z610数据表匹配(EX:BQ27XXX_FLAG_SOCF、BQ27XXX_FLAG_SOC1、BQ27XXX_FLAG_OTD、BQ27XXX_OTC_FLAG)
您能告诉我 bq28z610数据表中的哪些标志配置是校正。
/* BQ27XXX 标志*/
#define BQ27XXX_FLAG_DSC 位(0)
#define BQ27XXX_FLAG_SOCF 位(1)/*最终充电状态阈值*
#define BQ27XXX_FLAG_SOC1 位(2)/*充电状态阈值1 */
#define BQ27XXX_FLAG_FC 位(9)
#define BQ27XXX_FLAG_OTD 位(14)
#define BQ27XXX_FLAG_OTC 位(15)
#define BQ27XXX_FLAG_UT 位(14)
#define BQ27XXX_FLAG_OT 位(15)
[bq28z610数据表]
2.我需要添加 bq28z610 i2c 电池信息寄存器、但我找不到用于 i2c 通信的 NAC (标称可用容量)寄存器。 它用于通过接收的 POWER_SUPPLY_PROP_CHARGE_NOW 获取标称可用容量的电池信息。
您能不能告诉我 bq28z610数据表上的 NAC i2c 寄存器是什么。
/*
* bq27xxx_reg_index -寄存器名称
*
*这些是器件寄存器映射数组的索引。
*
enum bq27xxx_reg_index{
BQ27XXX_REG_CTRL = 0、 /* Control */
BQ27XXX_REG_TEMP、 /*温度*
BQ27XXX_REG_INT_TEMP、 /*内部温度*
BQ27XXX_REG_VOLT、 /*电压*
BQ27XXX_REG_AI、 /*平均电流*
BQ27XXX_REG_FLAGS、 /* Flags *
BQ27XXX_REG_TTE、 //空时间*/
BQ27XXX_REG_TTF、 //完成时间*/
BQ27XXX_REG_tes、 /*待机空闲时间*
BQ27XXX_REG_TTECP、 //恒定功率下的时间到空*/
BQ27XXX_REG_NAC、 /*标称可用容量*/
BQ27XXX_REG_FCC、 /*满充电容量*/
BQ27XXX_REG_CYCT、 /*周期计数*/
BQ27XXX_REG_AE、 /*可用能量*
BQ27XXX_REG_SOC、 /*充电状态*
BQ27XXX_REG_DCAP、 //设计容量*/
BQ27XXX_REG_AP、 /*平均功率*
};
[为参考 bq28z610数据表添加了以下内容]
/*[Pegatron][Terry_Tzeng@pegatroncorp.com ][2018/02/07]添加 BQ28Z610电量监测计寄存器-开始*
静态 u8 bq28z610_regs[]={
0x00、 /*控制 */
0x06、 /* TEMP */
0x28、 /* INT TEMP */
0x08、 /*伏 */
0x14、 /* AVG 电流 */
0x0A、 /*标志 */
0x16、 /* TTE */
0x18、 /* TTF */
0x1C、 /* tes */
INVALID_REG_ADDR、 /* TTECP -恒定功率下的空时间 */
?、 /* NAC -标称可用容量*/
0x12、 /* FCC */
0x2A、 /* CYCT */
INVALID_REG_ADDR、 /* AE -可用能量 */
0x2C、 /* SOC */
0x3C、 /* DCAP */
0x22、 /* AP */
};
/*[Pegatron][Terry_Tzeng@pegatroncorp.com ][2018/02/07]添加了 BQ28Z610电量监测计寄存器- End */
静态内联 int bq27xxx_battery_read_NAC (struct bq27xxx_device_info *di)
{
INT 标志;
if (di->chip =BQ27000 || di->chip =BQ27010){
flags = bq27xxx_read (di、BQ27XXX_REG_flags、true);
IF (标志>= 0 &&(标志& BQ27000_FLAG_CI))
return -ENODATA;
}
返回 bq27xxx_battery_read_charge (di、BQ27XXX_REG_NAC);
}
BR、Terry
