Other Parts Discussed in Thread: BQ76925
大家好、
我的客户有一些问题:
1.当发生 I2C 故障时如何处理 BQ76925? 故障是 I2C 总线瞬态首先短路、然后通过软件恢复。
2.如何复位 BQ76925?
背景是、我的客户发现在 I2C 发生故障后、他们仍然可以使用 I2C 通信、但电压感应数据在发生故障前仍保留数据且不更新。 他们想知道如何解决这个问题。
谢谢!
此致、
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.
您好 Xing、
BQ76925没有复位引脚。 如果 I2C 由于干扰或瞬态短路而卡住、导致 BQ76925等响应器件将总线保持在低电平、主机应发送时钟来清除总线、直到从器件释放总线。 似乎主机正在执行此操作。 BQ76925的状态可能会因总线错误而发生变化、因此所有寄存器都应重新写入所需的值。
BQ76925有2种复位方法、一种是电池连接、另一种是从关断状态唤醒。 电池连接在系统中不实用。 如果主机由单独的电源供电、则可以通过将其发送到睡眠模式、等待 V3P3下降并使用警报信号唤醒器件来复位该器件。 这将复位逻辑并且 POR 位被置位。 如果主机由 V3P3供电、则需要进行其他一些干预才能从睡眠模式中唤醒。
BQ76925是一款模拟输出监控器。 MCU 必须将输出数字化为一个值。 如果瞬态仅锁定总线、它们可能不会更改 CELL_CTL 寄存器的设置、该寄存器决定在 VCOUT 上输出哪个电芯或源极、而 POWER_CTL 寄存器具有用于 VCOUT 驱动器的使能位。 如果在瞬态事件中未更改这些寄存器、则 BQ76925应输出相同的模拟值。 如果瞬态如此严重、导致 BQ76925复位、则 POR 位应与状态寄存器中的值相同、并且所有寄存器值都需要恢复。 在故障恢复后将5个控制寄存器恢复为已知值可能是一个好做法。 主机 MCU 在系统中通过 BQ76925读取电池电压、将 VCOUT 设置为所需的选择、转换 MCU 中的值、计算电压并将 CELL_CTL 寄存器提升为下一个值并重复此操作。 如果电池电压未更新、请检查序列例程或 ADC 是否存在翻转。 CELL_CTL 中还提供 VSS 和基准电压、用于在 VCOUT 上输出以进行诊断检查。