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.

[参考译文] BQ25792:我们多久可以更改一次充电电流限制?

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1349048/bq25792-how-often-we-can-change-the-charging-current-limit

器件型号:BQ25792

我正在使用数据驱动技术做一些实验、以进行更 可靠的 SoC 估计。

这些数据驱动技术要求数据具有足够的动态性。 在这种情况下、充电电流在完全充电过程中会在几乎整个范围内变化几次。

可以在具有10mA 步进的50mA - 5000mA 之间配置 ICHG。 在不干扰充电器功能的情况下、我们设置新值和新值的速度有多快?

例如、对于最大2050mA 充电、我们具有200个步长和不同的值。 如果一个步骤我可以 每10秒递增(或更改)一次、则每一步需要2000秒尝试一次。 理想情况下、在整个充电周期内、应在该过程中旋转至少50或100次、以便在50或100个不同的充电状态下测量相同的充电电流。 这将使得55.5小时。 整个充电过程要短得多、因此10秒的时间内的值已经减慢了。 当然、200个阶跃可以降低、并且仅使用大约50个值。

可能充电电流 IF 可以在最长2秒或更短的周期内进行更改、这样我们就可以很好地满足数据驱动方法的要求。

当然、在正常工作模式下、它仍将使用恒定的充电电流值。 当我们使用一节电池来训练算法时、开始时、就需要这种动态变化。 最终、随着电池老化、另一个完整的充电/放电周期必须变为动态周期。

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

    尊敬的 Tibor:

    我没有该类型的数据。  我的最佳估算是 I2C 写入完成时间(根据 I2C 规范)加上转换器响应时间(~ 1ms)加上稳定时间(~0.5ms)。   

    转换器封装热受限。  由于热调节、在充电器开始限制输出功率之前、可能无法达到5A。  我建议在实验中使用750kHz 开关频率、并使 VBUS 略高于电池稳压电压(即在降压模式下)。

    此致、

    杰夫  

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

    谢谢 Jeff。
    这已经很好地表明我可以进行实验。

    还不错的提示是开关频率越高。 我需要明确地将 VBUS 设置为略高于电池稳压电压的值、还是可以让它设置、因为它现在固定在20V 左右。 它是由 USB-C PD 芯片固定的。  
    最后、我不会做直到5A、可能在我的情况下、最大2A 是健康的。 此外、最低值对于非常低的电压并不重要。 我认为、不知何故、这些值应该分布在正常使用情况下、例如、对于我的电池、只要离该中心的距离更远、变化的分辨率就可以变得不那么严格。

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

    尊敬的 Tibor:

    如果仅为2A、则任何 VBUS 至 BATREG 设置在 Fsw=1.5Mhz 时都没有问题。

    此致、

    杰夫

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

    当我动态更改充电电流时、我有几个问题。  

    现在、我将通过 UART 命令更改电流限制、因此没有机会如此快地更改(如 ms 级)。 执行了相同的操作。 不幸的是、 我注意到了 BMS 芯片的一个奇怪的状态。 指示是否接收或不接收 ISR 的标志寄存器(默认情况下、所有 ISR 都应保持为0并接收 ISR 事件)、其中一些会显示值1、从这一点来看、ADC 寄存器永远不会改变、也不会进行充电。
    主机微控制器绝不会设置这些来自芯片本身的标志位。

    我对这种状态实施了某种检测(例如、持续10次所有 ADC 都具有重复的值)、并且主机 MCU 正在使用与引导时相同的配置设置来启动 BMS 芯片的复位。 在大多数情况下、这种做法强制对正常过程进行热重新配置、并且 ADC 寄存器再次开始继续。

    一旦我降低充电电流变化的频率、问题就会急剧减少。

    我还尝试了 一个特定的顺序、例如、首先我进入高阻态模式、然后设置新的充电限制值和禁用高阻态模式、重新启用充电。  一些改进值得注意,但未能完全解决。

    下一步是将充电电流更改算法移至主机控制器、而不是通过 UART、我可以对绝对值进行更小的更改、 由于执行更精细、并且更有可能避免了更改、从而使芯片的内部状态机处于"合理"状态。 我仍然 怀疑这会有什么价值,因此我留下了最后 可能的改变。

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

    尊敬的 Tibor:

    充电器有一个 WD 计时器、该计时器会在到期时将许多寄存器复位、包括 ADC 和充电电流。  您的 UART 主机是写入 WD 位还是禁用 WD 计时器?

    此致、

    杰夫

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

    尊敬的 Jeff:

    我禁用看门狗。 然后、在动态电池特性分析期间、我初始化一个周期为250ms 的计时器、这将读取 ADC 区域中的一个寄存器块、并通过 UART 发送。 在 PC 端、来自 ADC 的这些周期性记录保存在 csv 文件中。 当我收到记录时、我还会保存时间戳、在主机 MCU 侧有一个计数器。 从计数器和时间戳中、我看到周期性 ADC 读取运行良好、没有任何明显延迟。

    当 ADC 记录重复这些值时、从那时起、所有值都是无限相同的。 此时、我可以停止数据捕获应用、只需通过 Putty 手动连接、然后我可以使用控制台解析器读取所有 ADC 值。 在那里、我仍然会看到相同的错误值。 然后我通过命令行发出芯片重新初始化命令、这实际上会调用相同的设置序列[4S 电池、VSYSMIN、VREG、ICHG、IBAT_REG、 EN_IBAT、禁用 WD、IINDPM (2A)]、并且在大多数情况下芯片开始重新读取正确的 ADC 值、我可以对此进行充电。 我现在还从自动脚本调用同样的逻辑、该脚本会记录本实验的 ADC 值、实际上、当它检测到问题时、会在 UART 上发送芯片重新初始化调用、就像我手动操作一样。

    当我更改充电电流限制时、现在在我更改该值之前、我先进入高阻态模式、停止充电位、然后更改电流并将其放回高阻态和充电位、以便我继续充电、问题似乎少得多。 不幸的是,至少两次我仍然看到它。

    在主机 MCU 中、我添加了250ms 周期循环、检查所有标志寄存器是否仍然为零、如果未为零、则自动发出另一种类型的 csv 记录、为28、29、2A、2C、2D、1B、1C、1D、1E、1F、20、21寄存器、并自动保存为十六进制格式的另一个 csv、靠近时间戳列。   我很快就会检测到并跟踪这种情况。

    当然、在正常操作下、我不会像现在为构建基于动态模式分解的模型跟踪一些动态数据那样更改充电电流。 我选择了这种更先进的数据驱动技术、因为它似乎是最先进的可靠方法之一、没有很大的计算负载。 这种方法的唯一负担是它需要相对动态的数据才能分解动态。 一个完整的充电/放电周期就足以构建该模型、然后它可以运行、直到电池缓慢耗尽。 如果我们愿意、稍后我们可以在现场、器件中重复单个动态充电/放电周期、精度再次恢复。 好的一点是,模型很容易从设备转移到设备,因此不需要在整个设备车队玩相同的。

    实际上、我已经记录了两个完整周期、但由于这个问题、两次测量都不得不削减。 至少有一次、我希望在没有任何切口的情况下获得成功的测量。 当前形式的 DMD 无法处理间隙、但当我修复该问题并重新启动时、电池动态模式已经会显著进入另一种状态。

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

    尊敬的 Tibor:

    如果 ADC 测量重复、则 EN_ADC = 1很可能会由于看门狗计时器过期而复位为 EN_ADC = 0。  您可以在 REG0x10中禁用 WD 计时器。

    此致、

    杰夫

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

    当主机 MCU 启动时、WD 被禁用。 出于某些未知原因、当该问题出现时、REG0x10也变为8F、因此它需要周期性的 WD_RST、我不会执行该操作、因为我希望被禁用。

    现在、我在测量环路中添加了对 WD 禁用状态的检查、以及在捕捉到更改状态时执行芯片重新配置、包括禁用 WD。 同时我在控制台上打印。

    有时我遇到了非法状态,很容易被复制几次,尽管完全恢复和控制脚本重新启动。 那么这个问题就不会出现。 这似乎取决于电池的状态或一些模拟值。 此外、现在我已禁用对输入电流值的操作、从而消除了这种可能性。

    当我尝试在没有问题中断测量的情况下完成完整充电/放电周期时、我仍在思考如何诊断导致重新启用 WD 的原因、包括一些保留值也会发生变化。 现在我问了另一个板、只是想感受一下其行为是否完全一样。

    据我所知、问题仅在电池处于充电状态时发生、在放电期间从不发生。

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

    尊敬的 Tibor:

    除非 VBUS 和 BAT 电压降至各自的 UVLO 值以下、否则寄存器不会复位。  或者对 REG0x09[6]中的 RESET ALL 寄存器位执行 I2C 写入操作。   但这会复位所有寄存器。

    此致、

    杰夫