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.

[参考译文] BQ25892EVM-664:I2C 寄存器映射

Guru**** 2394305 points
Other Parts Discussed in Thread: BQ25892, BQ25890, BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/570223/bq25892evm-664-i2c-register-mapping

器件型号:BQ25892EVM-664
主题中讨论的其他器件:BQ25892BQ25890BQSTUDIO

您好!

我有一个 bq25892评估板、并设置了一个微控制器与其通信。 我可以对特定寄存器进行读取和写入。

但是、根据数据表、我得到的值对我来说似乎没有意义。 是否存在寄存器偏移或我缺少的内容?

例如、读取寄存器0x14返回0xCA、因此位5、4、3为001、这是数据表第54页未定义的、而不是011:BQ25890或000:BQ25892。

位1、0是10、也未定义为器件版本:01。

是否有任何关于我可能会出错的地方的建议?

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

    您能否发布所有读取的值?

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

    寄存器00数据0xB5 10110101
    寄存器01数据0x5B 01011011
    寄存器02数据0x90 10010000
    寄存器03数据0xFC 11111100
    寄存器04数据0x01 00000001
    寄存器05数据0x50 01010000
    寄存器06数据0x32 00110010
    寄存器07数据0xC0 11000000
    寄存器08数据0xFF 11111111
    寄存器09数据0xC0 11000000
    寄存器0A 数据0xBD 10111101
    寄存器0B 数据0x8F 10001111
    寄存器0C 数据0x48 01001000
    寄存器0D 数据0xC5 11000101
    寄存器0E 数据0x00 00000000
    寄存器0F 数据0xD4 11010100
    寄存器10数据0x1C 00011100
    寄存器11数据0x1B 00011011
    寄存器12数据0x19 00011001
    寄存器13数据0xEA 01110101
    寄存器14数据0xCA 11001010
    读数超过最后一个寄存器
    寄存器15数据0xFE 11111110
    寄存器16数据0x01 00000001
    寄存器17数据0x4A 01001010
    等等

    寄存器21-25均为0x00

    寄存器26-27 0xFF

    寄存器30及更高版本均为0x00

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

    您是否曾尝试使用 bqStudio 与 EVM 通信、以查看是否获得类似结果?
    在 bqStudio 中、您可以使用"Advanced Comm"选项卡来尝试使用 bqStudio 针对器件预先构建的 I2C 协议进行单次读取和多次读取。

    奇怪的是、您读取的寄存器多于器件允许的数量。 (即 Reg15-17)。

    除了 EVM 上的上拉电阻外、您的微控制器板上还有外部上拉电阻器吗? 如果您仅使用 EVM 的上拉电阻、则 JP4跳线是否连接到有效电源(如果您没有连接电池、则为 VSYS)。

    我建议您对 REG14[7]= 1应用单次写入来复位所有寄存器、然后尝试在不写入值的情况下对每个寄存器进行单次读取。

    请确保您遵循 bq25892数据表第9.2.16节中描述的 I2C 协议。 该部分还描述了单次读取或多次读取的实现。 如果不能同时执行、则不确定执行哪项操作。



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

    我没有 EV2300模块、因此我没有使用 bqStudio 软件。
    我将微控制器板上的上拉电阻器用于 i2c 总线-因此我没有设置上拉跳线。

    我尝试写入 REG_RST、但它没有任何影响-但是、如果您查看从 REG14读取的数据、则 REG_RST 位已设置。

    目前我只执行单字节读取(和写入)。 我相信我正在正确遵循协议、但如果我的逻辑分析仪能为您发送一份捕获数据、这将有所帮助。

    此致、

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

    您好 Ben、

    REG_RST 在置1后不应为1。 读取后它复位为0。  

    是的、从逻辑分析仪进行的捕获会非常有用。

    此致、

    Joel H

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

    您使用什么 I2C 地址与充电器通信?


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

    连接后、冷启动延迟1秒后发送。

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

    您好 Ben、  

    您能为我验证以下几点吗:

    1) 1)您的 SDA/SCL 线路上是否有任何其他器件?

    2) 2) I2C 的运行频率是多少? 400kHz 还是100kHz? 您能否以较低的频率运行它?

    3) 3)放大 SDA 和 SCL 的上升沿、以确保它们处于 I2C 时序协议范围内。

    4) 4)您能否将上拉跳线添加到电路板上、以代替您的微控制器上的上拉电阻?

    此致、

    Joel H