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.

[参考译文] BQ27Z746:针对 BQ27z746的驱动程序代码参考问题

Guru**** 2540720 points
Other Parts Discussed in Thread: BQ27000, BQ27Z746, BQSTUDIO, BQ27426, EV2400

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1203684/bq27z746-questions-from-driver-code-reference-for-bq27z746

器件型号:BQ27Z746
主题中讨论的其他器件: BQSTUDIOBQ27426EV2400、BQ27000

Gauge 团队、您好!  

我的一位客户在开发采用 bq27z746的电池模块的同时、参考了以下链接的驱动程序代码。  您能帮助回答以下问题吗?  

[用于 bq27z746 IC 的共享 TI 电池驱动程序
/bq27xxx_battery.c : https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/power/supply/bq27xxx_battery.c?h=v6.1.11
bq27xxx_battery_i2c.c : https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/power/supply/bq27xxx_battery_i2c.c?h=v6.1.11 


问题1: 上述驱动器中有许多芯片数据、但没有可用于 bq27z746芯片 那么、我们应该将哪个芯片数据作为参考呢?

问题2.  bq27z746芯片的 UNSEAL_KEY 的值是多少。

问题3: 实现  bq27z746_dm_regs ,我们添加了如下所示的默认数据。

静态结构 bq27xxx_dm_reg bq27z746_dm_regs[]={

    [BQ27XXX_DM_DESIGN_CAPACITY ] ={82、12  、2、032767}、

    [BQ27XXX_DM_DESIGN_ENCE]  ={82、14  、2、032767}、

    [BQ27XXX_DM_TERMINATE_VOLTAGE]={82、18、22802800370 0}、

};

 请检查并分享已更新  bq27z746_dm_regs   数据(如果需要)。]  


 

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

    TI 不维护 Linux 驱动程序。 这些都由开放源码社区维护。

    bq27z746具有用于配置的数据闪存以及用于监测结果的 SBS 命令。 我建议在生产期间使用 bqStudio 中的黄金映像配置电量监测计(使用.bq.fs 格式、请参阅 /cfs-file/__key/communityserver-discussions-components-files/196/5164.Flash-Stream-File-Format.pdf)、并编写一个最小驱动程序、仅使用 SBS 命令(例如命令0x2C/2D、相对充电状态)读取电量监测结果。 无需复杂的驱动器即可配置测量仪表。

    对于此监测计、您不需要使用 Q3进行编程、因为它应该在生产期间使用 Golden Image 进行编程、这与其他监测计(例如 bq27426)不同、后者需要驱动程序来对 Design Capacity 等参数进行编程。

    我们的想法是使用.bq.fs 文件对闪存进行完整编程、然后将电量监测计视为报告结果的黑盒。

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

    您好!

    感谢您的回答。

    是否有某种方法可以配置后期制作数据?

    假设器件与终端用户在一起。 在这种情况下、我们如何使用软件来更改芯片上的电池参数(RSOC、DesignCap 等)?

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

    可以、您可以更新数据存储器参数。 请参阅 TRM www.ti.com/.../sluuca6.pdf、 15.2.63数据闪存访问() 0x4000–0x5FFF。

    请注意、地址取决于固件版本。 如果您在首选项、数据存储器中启用 Advanced View、则可以在 bqStudio 中获取每个参数的地址。

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

    只有当器件实际存在并连接到 EV2400等时、才能进行此数据更新、对吧?

    假设我们要 通过终端用户存在的设备上的软件更新来更新数据。

    那么、 我们如何在没有设备的情况下更新该器件上的数据。

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

    当电量监测计通过 I2C 连接到主机 uC 时、您可以使用 TRM 中的说明或从 FS 文件中"播放" I2C 指令来更新电量监测计。

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

    大家好。 感谢您的回答。

     当要求在市场上发布的手机上更新参数的突然变化时、您能否帮助分享分步指南。

    我是新手、因此请详细解释。 谢谢你。  

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

    TRM www.ti.com/.../sluuca6.pdf、 15.2.63数据闪存访问() 0x4000–0x5FFF 中提供了分步指令。 请注意、为了使电量监测计接受按照 TRM 中的说明写入的数据、您必须将校验和写入寄存器0x60、并将总长度(地址字节数加数据字节数加2 (校验和长度字节))写入寄存器0x61。
    校验和为(0xFF-(地址和数据字节之和)& 0xFF)

    每个参数的地址都位于 bqStudio 的"数据存储器"中。 请在"窗口->首选项"中启用"显示高级视图"。 所有全局设置以查看地址。

    请注意、在写入数据闪存之前、电量监测计必须解封。 请参阅 TRM、 10.3安全模式

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

    选项位

    #define BQ27XXX_O_ZERO 位(0)
    #define BQ27XXX_O_OTDC 位(1)/*具有 OTC/OTD 过热标志*/
    #define BQ27XXX_O_UTOT bit (2)/*具有 OT 过热标志*/
    #define BQ27XXX_O_CFGUP 位(3)
    #define BQ27XXX_O_RAM 位(4)
    #define BQ27Z746_O_BITS 位(5)
    #define BQ27XXX_O_SOC_SI 位(6)/* SoC 是单个寄存器*/
    #define BQ27XXX_O_HAS_CI 位(7)/*具有容量不准确的标志*/
    #define BQ27XXX_O_MUL_CHEM 位(8)/*支持多种化学物质*/

    标志位

    /* BQ27XXX 标志*/
    #define BQ27XXX_FLAG_DSC 位(0)
    #define BQ27XXX_FLAG_SOCF 位(1)/*最终充电状态阈值*/
    #define BQ27XXX_FLAG_SOC1位(2)/*充电状态阈值1 */
    #define BQ27XXX_FLAG_CFGUP 位(4)
    #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)

    /* BQ27000对 Flags 寄存器具有不同的布局*/
    #define BQ27000_FLAG_EDVF 位(0)/*最终放电结束电压标志*/
    #define BQ27000_FLAG_EDV1位(1)/*第一个放电结束电压标志*/
    #define BQ27000_FLAG_CI bit (4)/*容量不准确的标志*/
    #define BQ27000_FLAG_FC 位(5)
    #define BQ27000_FLAG_CHGS 位(7)/*充电状态标志*/

    /* BQ27Z746具有不同的标志寄存器布局*/
    #define BQ27Z746_FLAG_FDC 位(4)/*电池完全放电*/
    #define BQ27Z746_FLAG_FC 位(5)/*电池已充满电*/
    #define BQ27Z746_FLAG_DIS_CH 位(6)/*电池正在放电*/

    对于 IC、BQ27Z746、我们使用哪些选项和标志位?

    此外、在 TRM 中、我们在哪里可以参考  

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

    Flags 位在 TRM www.ti.com/.../sluuca6.pdf、 15.1.6 0x0A/0B BatteryStatus ()中。

    >对于我们的 IC、BQ27Z746、我们使用哪些选项和标志位?

    这些位是只读的、因此您不必使用它们。 他们无法控制监测计、但可以向主机通知监测计和电池的情况。

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

    您好!  

    感谢您的持续支持~

    我已经使用 bqStudio 的 golden 映像创建了一个.bq.fs 文件。

    下一步是什么?

    使用.bq.fs 文件刷写电量监测计。 需要哪些硬件设置。

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

    您可以使用任何系统通过 I2C 与电量监测计通信、并执行.bq.fs 文件中的所有写入指令。

    请参阅 https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1107287/faq-bqstudio-what-is-the-ti-bms-flashstream-file-format

    TI 不销售生产工具。 客户通常在其生产环境中解析 FlashStream 文件、并将指令转换为 I2C 命令。

    也可以通过主机 uC 和简单的驱动程序来实现。