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.

[参考译文] BQ76905:BQ76905 不响应任何 I2C 通信

Guru**** 2652575 points

Other Parts Discussed in Thread: BQ76905, ISO1540

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1586368/bq76905-bq76905-does-not-respond-to-any-i2c-communication

器件型号: BQ76905
主题: ISO1540 中讨论的其他器件

您好:

我很难让我的设计正常运行。 不过、BQ76905 对我尝试从板上的 ESP32 微控制器发送到该微控制器的任何 I2C 消息都没有响应。 ESP32 设法在电路板上找到所有其他 I2C 器件、而不会出现任何问题。

该电路如下所示:
image.png

尝试与 BMS 通信的 ESP32 通过 ISO1540 连接、以隔离所有电压。 它按如下方式连接:
image.png

我已移除所有可能干扰两个电路之间隔离的其他元件。 然而、这并没有产生任何影响。

由于稳压器输出确实提供 3.3V 电压、因此 BMS 似乎确实可以正确上电。  

I2C 信号看起来也正常:
image.png

所有信号都是相对于 ESP GND 测量的。 这解释了为什么 BMS I2C 信号大约比 ESP32 I2C 信号低 13V。 这是正确的、因为低侧 MOSFET 尚未导通。

如有任何帮助、将不胜感激。 当信息缺失时、也请通知我! 为了共同找到解决办法、我绝对愿意讨论这一问题。

此致、

PIM

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

    在仔细查看我自己的原理图后、我发现 WAKE 电路应该具有某种限流电阻器来限制流经二极管的电流:

    在其电流配置下、它很可能会将内部 REGOUT LDO 拉至 其 短路电流限制状态。 D12 的正向电压和 D15 的齐纳电压共同约为 2.2-2.5V。 这意味着剩余电压需要在 U19、D12 或 D15 中“耗散“。 只要 U19 处于导通状态、所有这些元件都具有非常低的电阻。

    我打算重新设计电流电路、增加一个与 D12 串联的 1k 电阻器。 将电流限制在大约 800uA:



    这将确保设计更清洁的毛皮,但这是否可以避免 IC 正常启动? 或者这是否会导致我在 I2C 通信(可能是)中看到问题?

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

    在进行了更多研究后、我在该论坛上找到了很多帖子、这些帖子看起来像该 IC 的 I2C 地址为 0x08、而不是数据表中提到的 0x10。 这两个线程似乎使用 0x08 作为该芯片的地址:
    BQ76905:BQ76905 CRC 通信问题

     MSPM0L1306:当 MSPM0L1306 使用示例代码进行 BQ76905 时、I2C 通信卡住 

    我在该设计中使用另一个地址为 0x08 的芯片。  如果 BQ76905 的 I2C 地址确实为 0x08、则此线路当然会产生问题。
    有人能确认一下我的 I2C 地址吗?

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

    有人可以帮我解决这个问题吗? 我设法把我非常开放的问题减少到两个简单的封闭式问题,应该是相当简单的答案。 我已经在这个问题上停留了几个月,如果有人能帮助我,将会得到很大的帮助。

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

    我取得了一些简短的进展、但我似乎比以往更无法通过 IC 进行通信。
    我通过删除另一个 IC(我将 I2C 地址编织为 0x08 (HUSB238))、尝试查看 I2C 地址是否确实为 0x08。 切割该器件的 I2C 引脚后、我仍然可以在地址 0x08 上找到一个器件、指示 I2C 地址确实为 0x08。

    这感觉就像一个伟大的成功! 我已经准备了一些代码来将 BQ76905 设置为自主模式。 我让这个代码运行来看看它是否有帮助。 代码执行以下操作:
    -读取电池状态寄存器 (0x12)
    -检查器件是否已处于自主模式(检查 0x100 处的位是否设置为高电平)
    -如果没有处于自主模式(这是情况),通过将 0b00001100 写入寄存器 0x68 来禁用 MOSFET ,然后写入配置更新消息 (0x90 to 0x00)
    -轮询芯片直到芯片处于更新配置模式,重复读取寄存器 0x12 并检查是否设置了 CFGUPDATE 标志(按位与 0x20 )

    电池状态寄存器首先给出 0x00。 然而、在两次轮询后、它给出了以下结果:0xC4A。 该值没有变化。

    值得一提的是、在第一次 I2C 扫描之后、I2C 不断在所有消息上收到 NACK。

    尝试将器件设置为自主模式一次后、它将完全关闭、无法恢复。 稳压器输出已关闭、我似乎无法再唤醒芯片。

    通过查看 WAKE 电路、我注意到器件无法从深度睡眠状态(稳压器输出关闭)中唤醒。 因此、我修改了电路、使其直接由第一个电池电芯电压供电。 这将始终处于开启状态。 电路现在如下所示:

    但这没有任何帮助。 芯片似乎已经崩溃、我无法再进行任何通信、也无法开启稳压器输出。