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.

[参考译文] BQ40Z50:有关 ManufacturerBlockAccess ()命令0x0006和0x0021的问题

Guru**** 2563960 points
Other Parts Discussed in Thread: BQ40Z50, BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1420787/bq40z50-question-about-manufacturerblockaccess-command-0x0006-and-0x0021

器件型号:BQ40Z50
Thread 中讨论的其他器件: BQSTUDIO

工具与软件:

您好!

  我现在正在尝试访问电池组上 BQ40Z50的寄存器。 电池组 通过 I2C 接口连接到 MCU 而不是 bqStudio。

  通过引用 TRM、我使用 ManufacturerBlockAccess ()命令(0x44)读取 MAC 数据。 我尝试按照 TRM 中的示例 在开头访问 Chemical ID。

1. 将 Chemical ID ()发送给 ManufacturerBlockAccess ()

  - SMBus 块写入:0x0B+W | 0x44 | 0x02 | 0x06 | 0x00

2. SMBus 块读取:0x0B+w | 0x44 | STA | 0x0B+R、返回的数据为 0x16 0x00 0x00 0x00 ..........

 

  从 TRM 来看、返回值应为四个字节、格式为:0x04 0x06 0x00 0xDD 0xdd。 Chemical ID 命令似乎无法读回正确的值。

  为了确保硬件接口正确、我还尝试了0x0001和0x0002命令。 虽然内容可能不正确、但我认为格式符合预期。

    返回值0x0001: 0x04 0x01 0x00 0x34、0x9E

    返回值0x0002: 0x0D 0x02 0x00 0x9E 0x34 0x00 0x01 0x00 0x16 0x00 0x00 0x02 0x00

 

有关 ManufacturerBlockAccess ()命令的一些问题。

1. TRM 中的示例在命令0x0006之前发送命令0x0021。 这是必要的步骤吗?

2. Device Type 寄存器(0x0001)的返回值表明其类型为0x9E34。 在哪里可以找到器件类型的定义?

3.固件版本(0x0002)的返回值显示 BQ40Z50的固件版本为0.01。 它是否太旧了、无法支持正确的 MAC 访问?

4.错误的固件版本是否导致读取化学 ID 失败? 或者命令格式有错误?

  谢谢。

       Todd

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

    Todd、您好!

    Unknown 说:
    1. TRM 中的示例在命令0x0006之前发送命令0x0021。 是否是必要步骤?[/QUOT]

    这不是必要的步骤。 这只是为了展示如何通过 ManufacturerBlockAccess 发送命令的示例。

    Unknown 说:
    2. Device Type (0x0001)的返回值显示其类型为0x9E34。 在哪里可以找到设备类型的定义?

    由于正在使用 bq40z50、因此输出应该为00 45。

    Unknown 说:
    3. 固件版本(0x0002)的返回值显示 BQ40Z50的固件版本为0.01。 是否太旧而无法支持正确的 MAC 访问?

    这个特性应该能够与所有 bq40z50版本一起工作、所以我认为您可以。

    读取化学品 ID 失败是否是由错误的固件版本导致的? 或者命令格式中有错误?

    我认为此处使用的流程是正确的、是否有可能接收到通信的逻辑分析仪捕获、以便我们可以检查结构?

    此致、

    Anthony

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

    Anthony、您好!

      很抱歉我的回复晚了!

      我找不到用于捕获通信数据的逻辑分析器。 我只是展示了在读取化学 ID 时通过示波器捕获的数据。

    1. 这张图片显示了从 MCU 发出的数据:0x16 + W | 0x44 (cmd)| 0x02 (len)

    2. 这张图片显示了化学 ID 的 LSB (0x06 )。 请忽略图片的左侧。 它只是上一张图片的右侧扩展。

    3. 这张图片显示了化学 ID 的 MSB (0x00 )。 从器件接收到 ACK 后、MCU 启动块读取操作。 然后它会发出地址(0x16)|命令(0x44)

    4. 从从从器件接收到 ACK 后、MCU 发送0x16 + W。然后、从器件响应数据长度为0x16、多个字节为0x00。

      请帮助我检查 MCU 和 bq40z50之间的通信数据是否正确。

      谢谢。

           Todd

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

    Todd、您好!

    感谢您的澄清、我认为初始写入配置已经足够、但是、如果 chemID 为0001、此命令的回读长度只应为0x04、命令和 chemID 作为数据(看起来像06 00 01 00)。

    以下是使用 bqStudio 后的捕获:

    写入:

    读取:

    您能否确认是否在当前配置上设置了以下 HPE 位?

    此致、

    Anthony