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.

[参考译文] BQ40Z60:SM 总线:请求充电电流和充电电压时出错

Guru**** 2454880 points
Other Parts Discussed in Thread: BQSTUDIO

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/669325/bq40z60-sm-bus-error-requesting-the-charging-current-and-charging-voltage

器件型号:BQ40Z60
主题中讨论的其他器件:BQSTUDIO

您好!

我无法正确读取这些寄存器、也不知道我做了什么错误。

当我请求遥测时、这里是 I2C 总线:

 (笑声)

0.521482437500000、I2C BM、Setup 写入[0x0B]+ ACK
0.521583375000000、I2C BM、0x51 + ACK
0.521870062500000、I2C BM、SETUP READ to [0x0B]+ ACK
0.522220000000000、I2C BM、0x01 + ACK
0.522298625000000、I2C BM、0x00 + ACK
0.522452187500000、I2C BM、0x00 + ACK
0.522607437500000、I2C BM、0x00 + ACK
0.522762312500000、I2C BM、0x00 + ACK
0.523197812500000、I2C BM、Setup Write to [0x0B]+ ACK
0.523299375000000、I2C BM、0x0E + ACK
0.523657437500000、I2C BM、Setup 读取至[0x0B]+ ACK
0.52396500000000、I2C BM、0x2F + NAK
0.524305187500000、I2C BM、Setup 写入[0x0B]+ ACK
0.524406812500000、I2C BM、0x14 + ACK
0.524640125000000、I2C BM、SETUP READ to [0x0B]+ ACK
0.524938875000000、I2C BM、0x2F + ACK
0.525094187500000、I2C BM、0x00 + NAK
0.525308250000000、I2C BM、Setup Write to [0x0B]+ ACK
0.525409312500000、I2C BM、0x15 + ACK
0.525641625000000、I2C BM、SETUP READ to [0x0B]+ ACK
0.525940375000000、I2C BM、0x2F + ACK
0.526095687500000、I2C BM、0x00 + NAK
0.526316812500000、I2C BM、Setup Write to [0x0B]+ ACK
0.5264187500000、I2C BM、0x1C + ACK
0.526648562500000、I2C BM、Setup 读取至[0x05]+ NAK
0.526738812500000、I2C BM、0x00 + NAK
0.527046000000000、I2C BM、0x00 + ACK

(笑声)

如您所见、BQ 不会使用 ID 0x14 (所需充电电流)和0x15 (所需充电电压)更新遥测。  

当 Battery Management Studio 是请求遥测的用户时、这里是 I2C 总线:

 (笑声)

0.296033375000000、I2C BM、Setup Write to [0x0B]+ ACK
0.296232312500000、I2C BM、0x13 + ACK
0.296585312500000、I2C BM、Setup 读取至[0x0B]+ ACK
0.296856687500000、I2C BM、0xFF + ACK
0.297102750000000、I2C BM、0xFF + ACK
0.297416937500000、I2C BM、0xB4 + NAK
0.312036437500000、I2C BM、Setup Write to [0x0B]+ ACK
0.31223312500000、I2C BM、0x14 + ACK
0.312587250000000、I2C BM、SETUP READ to [0x0B]+ ACK
0.312860625000000、I2C BM、0x00 + ACK
0.313136375000000、I2C BM、0x00 + ACK
0.313411187500000、I2C BM、0xF2 + NAK
0.328039812500000、I2C BM、Setup Write to [0x0B]+ ACK
0.328238750000000、I2C BM、0x15 + ACK
0.328625375000000、I2C BM、SETUP READ to [0x0B]+ ACK
0.328895812500000、I2C BM、0x00 + ACK
0.329158875000000、I2C BM、0x00 + ACK
0.329417375000000、I2C BM、0xE4 + NAK
0.344029625000000、I2C BM、Setup Write to [0x0B]+ ACK
0.344231687500000、I2C BM、0x16 + ACK
0.344565937500000、I2C BM、SETUP READ to [0x0B]+ ACK
0.344858312500000、I2C BM、0xD0 + ACK
0.345129500000000、I2C BM、0x4A + ACK
0.345388062500000、I2C BM、0x95 + NAK

(笑声)

这样遥测就可以完美地发送。 您对此问题有什么看法吗?

我在 Battery Management Studio 的启动过程中看到了以下帧、我找不到有关它们的任何文档:

 

0.000009062500000、I2C BM、Setup Write to [0x0B]+ ACK
0.000186187500000、I2C BM、0x22 + ACK
0.000516125000000、I2C BM、0x3E + NAK
0.027006000000000、I2C BM、Setup Write to [0x0B]+ ACK
0.027204000000000、I2C BM、0x20 + ACK
0.027510750000000、I2C BM、0x3E + NAK
0.054025625000000、I2C BM、Setup 写入[0x0B]+ ACK
0.054201875000000、I2C BM、0x22 + ACK
0.054508437500000、I2C BM、0x3E + NAK
0.188916687500000、I2C BM、Setup Write to [0x0B]+ ACK
0.189097687500000、I2C BM、0x2F + ACK
0.190385812500000、I2C BM、SETUP READ to [0x0B]+ ACK
0.190592062500000、I2C BM、0x0B + ACK
0.190918812500000、I2C BM、0x46 + ACK
0.191230875000000、I2C BM、0x00 + ACK
0.191628562500000、I2C BM、0x00 + ACK
0.192008125000000、I2C BM、0x13 + ACK
0.192351625000000、I2C BM、0x00 + ACK
0.192610375000000、I2C BM、0x13 + ACK
0.192938500000000、I2C BM、0x00 + ACK
0.193300937500000、I2C BM、0x03 + ACK
0.193664250000000、I2C BM、0x85 + ACK
0.194010500000000、I2C BM、0x02 + ACK
0.194287312500000、I2C BM、0x00 + ACK
0.194627812500000、I2C BM、0x9A + NAK

(笑声)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alfredo、
    您的职位已分配给我们的一位专家。

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

    你好!

    谢谢。 似乎我只能读取一些寄存器。 我的内部温度有同样的问题、BMS 可以很好地得到它、但我无法读取它。  

    这是我的配置文件、以防它有用。 我使用的是软件版本 v15。

    e2e.ti.com/.../3225.data.gg.csv.zip

    此致、

    Alfredo

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

    你(们)好

    您是否有任何可用的反馈?

    总结问题:我无法获得以下值:

    ID

    名称

    0x14

    充电电流

    0x15

    充电电压

    0x72

    内部温度

    当我请求它们时、我会得到先前请求的遥测值。

    我对所有 PCB 都有相同的问题。 它们更新为 v15。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alfredo、
    监测计在 I2C 日志中成功地将0x14、0x15和0x1C 的值返回到主机、但该值对于0x14和0x15来说太小。
    主机是否将值覆盖为0x14和0x15? 如果 CVRD 位设置为1、主机可以设置充电电压()和 Chargngcurrent ()
    如果您转到 bqStudio 中的高级通信 SMB、您可以读取字数据。 请将数据与您在 SMBus 上监视的值进行比较。

    0.524305187500000、I2C BM、Setup 写入[0x0B]+ ACK
    0.524406812500000、I2C BM、0x14 + ACK
    0.524640125000000、I2C BM、SETUP READ to [0x0B]+ ACK
    0.524938875000000、I2C BM、0x2F + ACK
    0.525094187500000、I2C BM、0x00 + NAK
    0.525308250000000、I2C BM、Setup Write to [0x0B]+ ACK
    0.525409312500000、I2C BM、0x15 + ACK
    0.525641625000000、I2C BM、SETUP READ to [0x0B]+ ACK
    0.525940375000000、I2C BM、0x2F + ACK
    0.526095687500000、I2C BM、0x00 + NAK
    0.526316812500000、I2C BM、Setup Write to [0x0B]+ ACK
    0.5264187500000、I2C BM、0x1C + ACK
    0.526648562500000、I2C BM、Setup 读取至[0x05]+ NAK
    0.526738812500000、I2C BM、0x00 + NAK
    0.527046000000000、I2C BM、0x00 + ACK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jasper、

    感谢您的回答。 是的、监测计会发送值、但不是正确的值。 如果您看到来自 SMBus 的数据、则他返回的数据是0x0E 的值、这是我在0x14和0x15之前请求的数据。 我不知道会发生什么情况、但看起来 I2C 缓冲器没有更新。

    我确信我不会夸大这些值、因为我在接收到不正确的数据时正在正常充电。 不管怎样、我检查了 CVRD 是否设置为0。

    我还检查了高级通信 SMB 是否具有正确的值(它不同于我断开 EV2300并连接主设备时获得的值)。

    我不知道您是否阅读了我之前的答案、但我发现我也遇到了0x72问题。

    在上瘾的情况下、我尝试通过制造商访问获取数据。 通过这种方法、我可以得到0x72、但我仍然遇到与0x14和0x15相同的问题

    在这里、您可以看到具有制造商访问权限的 SMBus:
    0.034903687500000、I2C BM、Setup Write to [0x0B]+ ACK //此处我请求0x72、然后我正确获取
    0.035000687500000、I2C BM、0x44 + ACK
    0.035336750000000、I2C BM、0x02 + ACK
    0.035485500000000、I2C BM、0x72 + ACK
    0.035630375000000、I2C BM、0x00 + ACK
    0.035774812500000、I2C BM、0xE4 + ACK
    0.047124000000000、I2C BM、Setup 写入[0x0B]+ ACK
    0.047221000000000、I2C BM、0x44 + ACK
    0.058701000000000、I2C BM、SETUP READ to [0x0B]+ ACK
    0.058871312500000、I2C BM、0x10 + ACK
    0.059021562500000、I2C BM、0x72 + ACK
    0.059172750000000、I2C BM、0x00 + ACK
    0.059323937500000、I2C BM、0x6B + ACK
    0.059475125000000、I2C BM、0x0B + ACK
    0.059626312500000、I2C BM、0x84 + NAK
    0.065374875000000、I2C BM、Setup Write to [0x0B]+ ACK //此处我请求0x0E 并正确获取它
    0.065472000000000、I2C BM、0x0E + ACK
    0.068301812500000、I2C BM、SETUP READ to [0x0B]+ ACK
    0.068471000000000、I2C BM、0x46 + NAK
    0.071499187500000、I2C BM、Setup Write to [0x0B]+ ACK //此处我请求0x14并获取0x72¿的数据?
    0.071596250000000、I2C BM、0x44 + ACK
    0.072084250000000、I2C BM、0x02 + ACK
    0.07233062500000、I2C BM、0x14 + ACK
    0.072378000000000、I2C BM、0x00 + ACK
    0.072522437500000、I2C BM、0x6f + ACK
    0.083867437500000、I2C BM、Setup Write to [0x0B]+ ACK
    0.083964562500000、I2C BM、0x44 + ACK
    0.09545500000000、I2C BM、SETUP READ to [0x0B]+ ACK
    0.095616687500000、I2C BM、0x10 + ACK
    0.095766875000000、I2C BM、0x72 + ACK
    0.095918000000000、I2C BM、0x00 + ACK
    0.006069187500000、I2C BM、0x6B + ACK
    0.096220312500000、I2C BM、0x0B + ACK
    0.096371437500000、I2C BM、0x84 + NAK
    0.102304937500000、I2C BM、Setup Write to [0x0B]+ ACK //此处我请求0x15、我再次获取0x72 μ¿的数据?
    0.102401937500000、I2C BM、0x44 + ACK
    0.102889687500000、I2C BM、0x02 + ACK
    0.103038500000000、I2C BM、0x15 + ACK
    0.103183437500000、I2C BM、0x00 + ACK
    0.103327812500000、I2C BM、0x7A + ACK
    0.114650375000000、I2C BM、Setup Write to [0x0B]+ ACK
    0.114747437500000、I2C BM、0x44 + ACK
    0.126229437500000、I2C BM、SETUP READ to [0x0B]+ ACK
    0.126400312500000、I2C BM、0x10 + ACK
    0.126550500000000、I2C BM、0x72 + ACK
    0.126701750000000、I2C BM、0x00 + ACK
    0.126852937500000、I2C BM、0x6B + ACK
    0.127004062500000、I2C BM、0x0B + ACK
    0.127155125000000、I2C BM、0x84 + NAK
    0.132891125000000、I2C BM、Setup Write to [0x0B]+ ACK //此处我请求0x17并正确获取它
    0.132988187500000、I2C BM、0x17 + ACK
    0.135830125000000、I2C BM、SETUP READ to [0x0B]+ ACK
    0.135999312500000、I2C BM、0x00 + ACK
    0.136148562500000、I2C BM、0x00 + NAK

    此致、
    Alfredo
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alfredo、
    您的时钟频率是多少? 您是否会在命令之间提供更多的延迟时间?
    请仅在系统和 bqStudio 中以100kHz 的频率从0x14读取2个字节。 发布命令以比较两种情况、找出根本原因。 如果您可以共享示波器快照或逻辑数据、则会更好。