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:访问数据闪存时出错

Guru**** 2539500 points
Other Parts Discussed in Thread: BQ27Z746, BQ28Z610

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1414925/bq27z746-trouble-accessing-data-flash

器件型号:BQ27Z746
Thread 中讨论的其他器件: BQ28Z610

工具与软件:

我有一个包含 BQ27Z746的电池组。  我可以使用单字节地址读取正常参数、但在读取数据闪存表时遇到问题。  

我将按照技术参考手册第134页的16.2.67数据闪存访问() 0x4000-0x5FFF 中的说明操作。  

我特别对0x420E 和0x420F 的最大和最小温度字段感兴趣。  

我首先写入0x55 0x3E 0x0E 0x42。  然后、我应该能够读取0x55 0x0E 0x42 Max Temp Min Temp。  

我在读取时未获取地址或最大/最小温度。  是否有标志会阻止我读取数据闪存?

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

    Gene、您好!  

    您应该只是从0x0060寿命数据块1读取、然后参考寄存器的 GG 和 HH 字节。 请参阅从器件 TRM 获取的以下图像、了解寄存器的布局。  

    此致、  

    Robert。  

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

    我没有成功读取寿命数据块1。  读取尝试会返回所有零、但 Max Avg Discharge Current 的不合理数字除外。

    1. 是否可能未启用寿命数据?

    2. 您能告诉我应该在 I2C 总线上发送什么数据来读取寿命数据块吗?  我对技术参考手册第134页的指令解释可能有误。

    感谢您的帮助。

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

    Gene、您好!  

    是的、您必须启用寿命数据收集、请查看从 bq27z746 TRM 获取的以下图像。  

    要读取寿命数据块1 0x0060、您只需将0x0060写入0x3E、然后您可以从0x40读回数据。  

    此致、  

    Robert。  

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

    迄今取得的进展:

    我有两家来自两家不同电池供应商的电池组、它们都使用 BQ27Z746芯片  我可以在0x0060读取寿命数据块1。  报告的最大/最小电压和电流似乎正常。  但是、两个电池包都报告最大/最小温度值为零。

    寄存器0x06和0x28会返回有效的温度值。  如何获得终身最低/最高电池温度?  寿命数据块1似乎未更新。

    谢谢

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

    Gene、您好!  

    您应该能够通过读取0x0060寿命数据块1来读取温度寿命参数。  

    此致、  

    Robert。  

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

    读取寿命数据块1会在温度的存储器位置返回零。  其他字段正常。

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

    Gene、您好!  

    这很奇怪、因为温度的缺省值不是0。 您正在阅读的其他数据是否合理?  

    此致、

    Robert。  

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

    谢谢 Robert

    其他数据有意义:- 0x0060:

           28 0f 00 00 5d 03 0b FE 1D 16 00 00 00 00 00 00 00

    我认为我没有正确启用寿命数据。  周期数也不会更新。

    我刚刚发现、我们的电池供应商更换了28Z610。  此器件与27Z746类似、因此我认为这不是问题。

    我希望你不介意-我开始了一个新的票在"提出一个相关问题"下的信息,我如何尝试启用寿命数据记录。

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

    Gene、您好!  

    我认为我们可以保留此主题的对话、以尽可能避免混淆、并删除另一个主题。  

    我刚发现我们的电池供应商转为使用28Z610。

    当您这么说时、您意味着要尝试通信的电量监测计是 bq28z610、而不是 bq27z746?  

    此致、  

    Robert。  

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

    是、

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

    我们的电池包制造商向我们发送的电池包已禁用寿命记录。  我们希望启用寿命记录并显示电池寿命的最高和最低温度。

    电池组使用 T.I. BQ28Z610作为电池电量监测计。  我可以通过 I2C 对此芯片进行读取和写入。

    制造时收到的蓄电池:

    AltManufacturingAccess () 0x0057 ManufacturingStatus   = 0x0018

    AltManufacturingAccess () 0x0060寿命数据块1具有以下十六进制数据:

                  00 00 00 00 00 00 00 00 00 00 7f 00 00 00 00 00 00 00

    我通过将0x00写入 AltManufacturingAccess () 0x0023 Lifetime Data Collection 来启用寿命记录。

    我通过将0x00写入 AltManufacturingAccess () 0x0028寿命数据复位来复位寿命数据。

    现在使用电池:

    AltManufacturingAccess () 0x0057 ManufacturingStatus   = 0x0038

    AltManufacturingAccess () 0x0060寿命数据块1具有以下十六进制数据:

                  28 0f 00 00 5d 03 0b FE 1D 16 00 00 00 00 00 00 00

    如您所见、应包含最高和最低温度信息的字段为零、且没有更新。  同样、0x002A 处的周期计数不更新。

    启用寿命数据记录还需要执行哪些操作?  我是否需要复位 BQ28Z610?

     

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

    Gene、您好!  

    要在 BQ28Z610电量计上启用寿命数据记录、您需要确保 ManufacturingStatus[LF_EN]= 1。  

    此致、  

    Robert。