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.

[参考译文] BQ25713:在调试充电功能时无法读取芯片 ID

Guru**** 657930 points
Other Parts Discussed in Thread: BQ25713, BQ25700A, BQSTUDIO, EV2400
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/987257/bq25713-cannot-read-chip-id-when-debugging-the-charging-function

器件型号:BQ25713
主题中讨论的其他器件:BQ25700BQ25700ABQSTUDIOEV2400

大家好、

我的一个笔记本项目、在调试充电功能时、发现无法读取芯片 ID。  退货信息如下:  

DTS 配置如下:

bq25700: bq25700@6b {
                compatible = "ti,bq25703";
                reg = <0x6b>;
                extcon = <&usb2phy0>;
                interrupt-parent = <&gpio0>;
                interrupts = <RK_PB7 IRQ_TYPE_LEVEL_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&charger_ok_int>;
                ti,charge-current = <1500000>;
                ti,max-charge-voltage = <8704000>;
                ti,max-input-voltage = <20000000>;
                ti,max-input-current = <6000000>;
                ti,input-current-sdp = <500000>;
                ti,input-current-dcp = <2000000>;
                ti,input-current-cdp = <2000000>;
                ti,input-current-dc = <2000000>;
                ti,minimum-sys-voltage = <6700000>;
                ti,otg-voltage = <5000000>;
                ti,otg-current = <500000>;
                ti,input-current = <500000>;
                pd-charge-only = <0>;
                status = "okay";
        };

电路图设计如下:

您可以帮助 分析此问题的原因吗?

谢谢、

此致

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

    尊敬的 Lumina:

     

    按芯片 ID,您是否参考下面显示的 DeviceID()寄存器?

     

     

    请确认主机 MCU 在尝试读取芯片 ID 时读回的寄存器地址。 BQ25713的 DeviceID()寄存器地址为2Fh。 但是、您的日志中提到了 BQ25700。 BQ25700A 是一款 SMBus 器件,其 DeviceID()寄存器地址为 FFh,这是不同的。

     

    您是否能够正常读取和写入其他寄存器?

     

    此致、

    Angelo

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

    您好、Angelo、

    我们将 ID 寄存器地址更改为0x2F、但仍然无法读取芯片 ID、其他寄存器无法正常读取和写入。

    而不是。 在 BQ25713的数据表中、我们知道 I2C 的地址为0xD6、当我们读取它时不会返回。

    您能帮助分析问题的原因吗?

    谢谢、

    此致

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

    尊敬的 Lumina:

     

    感谢您澄清您无法读取或写入任何寄存器,而不仅仅是 DeviceID()寄存器。 您可以尝试使用 I2C 器件地址0x6B 而不是0xD6吗?

     

    此致、

    Angelo

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

    您好、Angelo、

    我尝试使用 I2C 器件地址0x6B 而不是0xD6、但没有返回。  无论如何、我已经更新了完整的日志信息、您可以查看 it.e2e.ti.com/.../log_5F00_kernel_5F00_0315.txt

    顺便说一下、硬件原理图设计是否有问题?  我可以做些什么来帮助您(您的团队)找到并解决此问题?

    谢谢、

    此致

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

    尊敬的 Lumina:

     

    我认为您的原理图不会导致这些 I2C 通信问题。 请尝试以下步骤、以便我们可以对其进行调试:

     

    1. 如果您将 EV2400与 BQStudio 配合使用、I2C 通信是否正常? 这将快速向我们显示是否存在软件问题。
    2. 在尝试读取或写入寄存器的过程中、请捕获显示 SDA 和 SCL 的波形。 我们希望了解当您使用自己的主机 MCU 与 BQ25713进行通信时、是否满足数据表中表8.6中的时序要求。 您还可以在使用 EV2400和 BQStudio 时捕获 SDA 和 SCL 波形、以便我们可以将时序与您自己的 MCU 进行比较。

    此致、

    Angelo

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

    您好、Angelo、

    很抱歉、我没有用于测试的 EV2400。 但我捕获了显示 SDA 和 SCL 的波形、如下所示:

    谢谢、

    此致

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

    尊敬的 Lumina:

     

    感谢您分享波形。 请参阅下面我的评论。 如果可能、我强烈建议订购 EV2400。 如果我们可以将 EV2400+BQStudio 通信与您自己的主机 MCU 进行比较、调试过程肯定会更快。 这是最明确的前进道路。

     

    此外、如果您手头有 BQ25713 EVM、则可以尝试使用您自己的主机 MCU 与 EVM 进行通信。 这是测试您自己软件的另一种方法。 现在、最好通过使用已知良好的软件(EV2400+BQStudio)测试您的电路板或使用已知良好的硬件(BQ25713 EVM)测试您的软件来消除尽可能多的不必要的变量。

     

     

    上面波形中的上升和下降时间非常慢(由于某种原因明显慢于您的另一波形)。 看起来上升和下降时间都大约为2us、但 BQ25713数据表中定义的最大上升和下降时间仅为300ns。 极慢的上升和下降时间可能解释了为什么 SDA 只在其中一个脉冲上升一半、然后它已经下降了。 请在尽可能靠近 BQ25713引脚的位置探测 SDA 和 SCL。 换句话说、在原理图中探测 I2C2_SCL_3.3V 和 I2C2_SDA_3.3V、而不是 I2C2_SCL_CHARGE 和 I2C2_SDA_CHARGE。

     

     

    有关上面波形的几个注释:

    • 第1个字节为0xD7、而不是0x67。
    • 第一个字节的第8位是方向位。 如果第一个字节为0xD6、这是写入操作、而0xD7是读取操作。 但是、您的波形中显示的通信不是寄存器读取的正确格式。 正确的格式如下所示、您的波形似乎缺少前2个字节。 在您的波形之前、我们在图像中看不到更多 SDA/SCL 活动吗?
    • 对于寄存器读取、请不要忘记必须在前2个字节之后发送的第二个起始条件。 如需更多信息、请参阅以下 E2E 主题以及末尾显示寄存器读取正确波形的示例:https://e2e.ti.com/support/power-management/f/power-management-forum/899423/bq25713-i2c---debug-lack-of-answer

     

    现在、让我们重点从寄存器0x2E 中读取制造商和器件 ID (与上面的 E2E 线程相同、因此您可以尝试使 I2C 通信波形与末尾的示例匹配)。 此外、如果您有一个逻辑分析仪、这样我们就可以在单个映像中看到所有 I2C 通信、并且字节已经解码。

     

    此致、

    Angelo

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

    您好、Angelo、

    非常感谢。

    我们已经解决了这个问题。

    此致

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

    尊敬的 Lumina:

     

    非常感谢您的更新。 我很高兴问题得到解决。 请您分享一下问题是什么? 这可能有助于我们在将来调试类似的情况。

     

    此致、

    Angelo