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.

[参考译文] BQ28Z610:正确的 I2C 命令读回和数据映射

Guru**** 2589265 points
Other Parts Discussed in Thread: BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/817292/bq28z610-proper-i2c-command-read-back-and-data-mapping

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

尊敬的先生:

从下面的 I2C 回读使用 BQ Studio、我想与您确认什么是正确的命令、以及我们如何读取和转换制造商日期、序列号和安全状态的值? 我无法从技术参考中找到有关此内容的任何信息。 需要您的帮助。

 

希望尽快收到您的回复!

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

    这些值以小端字节序表示在数据中、因此您 必须翻转 LSB 和 MSB 才能获取实际数据。 例如、如果1000mAh 的容量以十六进制表示为0x3E 08、则在 bqstudio 返回的数据部分中、该容量将显示为0x08 0x3E。

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

    您好、Batt、

    我们遵循技术参考 SLUUA65C 中规定的小端字节序格式。 实际上,我们只需发出0x08即可成功读取 Voltage()。 但是,我们在 AltManufacturerAccess()中的寄存器有问题。 我们想知道尝试读取 AltManufacturerAccess()时的命令序列是什么。  

    谢谢、

    Kat

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

    您好 Kat、

    TRM 的第12.2节对此进行了讨论。 对于 altmfg 访问、只需在0x3E 进行通信并以小端字节序发送命令。

    例如、

    发送 MAC Gauging(),通过 AltManufacturerAccess()启用它。
    1.禁用 Impedance Track 后,将 Gauging()(0x0021)发送到 AltManufacturerAccess()
    (A) I2C 写入、起始地址= 0x3E (或0x00)。 数据= 21 00 (数据必须以小端字节序发送)。
    2、已启用、ManufacturingStatus ()[GAUGEN_EN]= 1。
    示例:通过 AltManufacturerAccess()读取 Chemical ID()(0x0006)。
    1.将 Chemical ID()发送到 AltManufacturerAccess()。
    (A) I2C 写入、起始地址= 0x3E (或0x00)。 发送的数据= 06 00 (数据必须以小端字节序发送)。
    2.从 AltManufacturerAccess()和 MfgMACData()读取结果。
    (a) I2C 读取、起始地址= 0x3E 长度= 36字节。 响应的前4个字节将是06 00 10 12。
    (b)前两个字节"06 00"是 MAC 命令(用于验证)。
    (C)后两个字节"10 12"是小端字节序中的 Chem ID。 即、0x1210代表 ChemID 1210。
    (D) 36字节块的最后两个字节将是校验和和长度。 长度
    是6。 校验和为0xFF–(第一个长度之和–2个字节)。 长度和校验和
    用于验证块响应。
    建议将“命令专用”操作发送到0x00和0x01,并为设置命令
    以相同的方式回读。 这样做的原因是、它始终可以重置任何传统支持选项
    可能有效;但是、某些传统支持选项使用0x3E 和0x3F 进行其他用途。 但是、
    0x3E 和0x3F 可以一直安全地用于块读取。 为了实现向后兼容性、需要执行的请求
    器件编号或版本将报告0x00/0x01上的读取值。 两个 MAC 的响应字
    命令 dev 和版本(0x0001和0x0002)应将0xFFA5报告为传统响应。 这种情况
    表示实际响应位于扩展块上的主机的令牌。 "命令
    只有”操作在字写入后立即发生。

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

    您好、Batt、

    我们能够使用这些步骤读取化学 ID。 但是、我们不仅要读取化学 ID。 我们还需要从 AltManufacturerAccess()中阅读其它详细信息,例如:Manufacturer Date、Serial Number 和 Safety Status。 例如、我们必须在制造商日期(0x004D)的小端字节序数据之后执行0x3E、然后从0x3E 读取36个字节。

    问题是、我们如何确定制造商日期字节以及如何转换这些字节。 SLUUA65C 的解释非常模糊和不清楚。  

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

    您好 Kathleen、

    过程相同。 该命令的唯一作用是返回作为数据的前2个字节发送的命令、后跟小端字节序中的数据。

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

    您好、Batt、

    如何将0x4E35的制造商日期读数转换为 MM/DD/YYYY 格式?

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

    十进制的0x4e35为20021

    1、除以512、得到年份= 39、加上1980、得到年份、2019

    2.将其余的1除以32得到1个月

    余数为21,即日期

    日期为2019年1月21日