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.

[参考译文] Linux/BQ28Z610:如何配置 bq28z610到 Linux 驱动程序(bq27xxx_battery.c)

Guru**** 2448780 points
Other Parts Discussed in Thread: BQ28Z610, BQ27010, BQ27000

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/668148/linux-bq28z610-how-to-configure-bq28z610-to-linux-driver-bq27xxx_battery-c

器件型号:BQ28Z610
主题中讨论的其他器件: BQ27010BQ27000

工具/软件: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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这些是适用于较新监测计的稍新的驱动器:
    processors.wiki.ti.com/.../Android_Software_Solutions_for_TI_Single-cell_Gas_Gauges
    它不包括对 bq28z610的直接支持、但它应该比旧的 bq27xxx 更容易适应。
    NAC 不是重要的寄存器。 您不必使用驱动器中的所有寄存器、不同的监测计具有不同的寄存器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、先生、

    我检查 NAC (标称可用容量)特性是否与电源的反馈 POWER_SUPPLY_PROP_CHARGE_NOW 事件有关。

    注意:什么是 POWER_SUPPLY_PROP_CHARGE_NOW。  

         它是用于获取属性的电池信息、即时表示容量、单位仅为 mAh。

    此事件是我的项目中的客户要求。  在 bq28z610中接收到 POWER_SUPPLY_PROP_CHARGE_NOW 时、如何替换 NAC 功能?

    BR、Terry

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为 bq28z610中的剩余容量寄存器可用于 POWER_SUPPLY_PROP_CHARGE_NOW。
    我有适用于 bq28z610的参考驱动程序、请留言、稍后我会给您发送。

    弗龙