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.

[参考译文] BQ78350-R1A:BQ78350-R1A 中的 SMBus 读取错误、BQ76940的电压为32768mV

Guru**** 2524460 points
Other Parts Discussed in Thread: EV2400, BQ76940, BQ78350-R1A, BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1202471/bq78350-r1a-smbus-read-bug-in-bq78350-r1a-with-bq76940-at-32768mv

器件型号:BQ78350-R1A
主题中讨论的其他器件:BQ76940、EV2400、 BQSTUDIO

当报告的电压为32768mV 时、带有 BQ76940的 BQ78350-R1A 似乎有一个故障。

这一点在借助 PIC Micro 对 SMBUS 进行位拆裂时得到确认、并通过 EV2400和 BQ Studio 直接对器件进行确认。

如果要报告的电压刚好是32768、该器件将返回垃圾数据。

有任何解决方案吗?

当器件的电压接近32768mV 时、示例数据。

有趣的是、该器件未"看到"这些不良电压、它会平稳地运行、而不会出现任何错误标志。

电压
32749
32747
32749
32749
32747
32756
32740
32748
32749
32738
32738
32739
32754
32567
32760
32765
31966年
32748
32765
32762
32757
32754
32558
29695
31985年
48383
32746
28858
45108
45055
45104
35854
35851
35852
33551
32966
33740
33741
33742
17345
17153
32771
16432
16382
35895
35896
32836
16433
16433
17199
17198

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

    您运行该测试时、监测计会针对每个单独的电池电压报告什么?

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

    尊敬的 Dominik:

    这是 BQ Studio 的完整日志。

    最初、我的充电器制造商在整个电池组上发现了这个问题、我使用测试夹具重新创建它、该测试夹具允许我以0.1%的电阻分压器作为"电池"斜升"电池电压"。 这让我能够得到电压上的32768 (0x8000)并获得怪异的行为。 很明显、当我命中时。

    e2e.ti.com/.../2023_2D00_03_2D00_03_5F00_voltage_5F00_tests.csv

    电池电压看起来正常、一个示例是:

    电压报告为17345、而电芯电压为:

    3638 3636 3637 3646 3644 3656 3643 3640 3643

    这是 BQ Studio 提供的芯片信息、

    此致、

    -Adrian

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

    很抱歉我的回复出现延迟。

    电量监测计只对电池电压求和、然后将其乘以比例因子。 我看不到结果在您报告时损坏的方法。 我知道、你可以使用 EV2400和 Bit-Bang 式 smbus 来重现此情况、但我想知道 SDA 电压电平完整性是否存在问题。 你能尝试更强的上拉吗?

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

    我在 BQ Studio 和电池之间记录了电压读数事务。 这是一个"错误"的电压读数。

    我注意到 EV2400使用 SMBus CRC、因此如果 SDA 数据不正确、我预计 BQ Studio 会扼流圈。

    本周我已被放大、但我有一个计划、在记录电池和电池组电压的同时、将一个电池组缓慢放电至超过32.768V 的电压。 然后、我将看到当单元格总和为32768mV 时的数据是否存在干扰。

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

    感谢大家呈现出这样的通信图。 我再把这个问题分配给 bqStudio 专家 Shirish。

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

    尊敬的 Adrian:

    波形中的数据为数据低电平= 0xD6数据高电平= 0x83。 这转换为33750mV。 此时、bqStudio 体现了什么价值?

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

    尊敬的 Shirish:

    BQ Studio 正确报告33750mV。

    如果您查看第二个注释中的 CSV 文件、您可以看到单个电池电压以及 BQ Studio 报告的总电压。

    我可以看到、"坏"电压使用电量监测计输出的正确 CRC 正确地通过 SMBus。 我们已经看到这与 BQ studio 和 Bit-Banged PIC 通信.

    这就是我认为问题在于电量监测计本身的原因。 所报告的电压似乎存在不连续性。 如果电芯电压合计达32768 (0x8000)、则电量监测计将损坏电压数据。

    我希望这个周末安排一个测试、将电池组缓慢放电至32768mV 以上、并通过 BQ Studio 进行记录。 绘制该数据应该会发现任何中断。

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

    尊敬的 Shirish:

    我在周末记录了一些数据、并有很好的数据显示问题:

    首先、这是 BQ Studio 生成的原始 CSV 文件。

    /cfs-file/__key/communityserver-discussions-components-files/196/2023_2D00_03_2D00_26_5F00_slow_5F00_dchg_5F00_past32768.csv

    这是通过真实电池组记录的、第三个芯片显示了该问题(我尝试的每个芯片都显示了该问题)。 使用和不使用 CRC 时会出现该问题、使用和不使用 EV2400时会出现该问题。

    这是对使用 CRC 的 EV2400进行的。 BQ Studio 中未记录任何 CRC 错误、".log.err"文件中有一个温度读取 NACK 条目。 在数千次读取中没有其他错误。

    2023年03月26日15:29:38、TS1温度、772、器件无确认。

    我以-200mA 超过32768mV 的电压缓慢地对电池组放电、然后缓慢地应用充电+100mA 以悬停在32768周围、以获得大量损坏的数据。

    这里是根据该数据绘制的一些图像、

    我用黑色绘制了报告的电芯电压之和、用红色绘制了报告的电芯电压之和。 在成千上万的读数(记住 BQ Studio 轮询整个数据集、而不仅仅是电压)后、唯一的不良数据是电压数据、这是电芯总和将达到32768mV 时的数据。 CRC 正确、但电压数据垃圾桶。

    我非常确信 BQ 固件的代码中有一个错误、该错误会从各个电芯数据中生成报告的电压。

    放大 Y 轴可以更清楚地看到问题:

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

    尊敬的 Adrian:

    感谢您的记录。 由于您可以在多个 EVM 上使用 bqStudio 再现、我们应该能够尝试它并获得相同的结果。

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

    我正在尝试让 EVM 对其进行测试

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

    谢谢 Shirish,我可以私下分享我的 SREC golden 文件和原理图,以显示我如何在需要时配置 AFE。

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

    尊敬的 Adrian:

    谢谢。 我能够使用类似的设置重现一些不良读数。

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

    谢谢 Shirish,

    我有点放心,这不是我的设置... 硬件和固件之间有很多地方会出现问题、我通常确信我做了一些错误!

    但同时希望这还没有为您创造大量的工作。

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

    尊敬的 Adrian:

    我为此输入了一个 TT、正在等待一个时间表。

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

    尊敬的 Adrian:

    我认为、您需要使用权变措施、即对主机上的电池电压求和、以获得电池组电压、从而避免该问题。 我想你可能已经实现了,到现在:-)

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

    收缩、

    我的终端客户不使用电压来做任何决定、但我的充电器制造商使用电压对其充电算法进行了仔细检查。 他们已经在其算法中添加了错误检查、以查看连续电压读数之间的差异。

    他们不能直接读取单个电池的电压、因为不使用 TI 芯片的电池组有第二个电源。 各电芯的电压不属于 SMBus 标准、也不属于二次电池供电方。 否则、我们将不得不针对每个供应商的芯片对 SMBus 例程进行编码。

    SMBus 电池组的美妙之处在于、您基本上可以"免费"地从电池组中获取良好的 AD 数据。 充电器或终端设备可以使用电压和电流、而不是插入自己的 AD 芯片。 但是、如果数据损坏、则会失去 SMBus 的作用。

    因此、我们目前的标称"正常"状态、但我很想看到这是芯片的勘误表。 像这样的小虫子需要永远找不到,并吃了开发时间和金钱。