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.

[参考译文] BQ20Z95:无法匹配PEC

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1088804/bq20z95-unable-to-match-pec

部件号:BQ20Z95
主题中讨论的其他部件: BQ2060

各位专家,您好!

客户通过 I2C通信使用BQ20Z95 ,无法匹配PEC。 他们收到的PEC与计算得出的PEC不匹配。 通过I2C,它们读取的是3字节,而不是PEC的2字节,  

您能否确认这是否正确? 这可能是什么问题?

提前感谢。

此致,

马文

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

    您好,Marvin,

    您是否可以共享逻辑分析仪捕获他们遇到的问题?

    此致,

    Wyatt Keller

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

    您好,Wyatt:

    客户目前没有逻辑分析器。因此他们共享正在使用的协议。 请参阅以下内容:

    上拉电阻器:4.7 k ohm电阻器(时钟和数据线)。

    通信频率:100 kHz

    I2C协议:
    1.当我们尝试逐个读取有关电池数据的所有寄存器/命令(从1到26)时(没有PEC),我们能够正确读取数据。

    当我们尝试逐个读取有关电池数据的所有寄存器/命令(从1到26)时(使用PEC),我们能够正确读取数据,但收到的PEC与CRC多项式计算不匹配。

    请查看以下示例
    数据-- 0x16,0x01,0x17,0xE8,0x03 --收到的PEC是0x56,而不是0xD9
    数据-- 0x16,0x01,0x17,0xD0,0x07 -- PEC是0x1B,而不是0x6D

    我希望这能有所帮助。 如果您需要更多信息,请告诉我。

    此致,

    马文

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

    您好,Marvin,

    他们尝试使用哪些命令? 我想确保我了解他们正在尝试实施的内容。

    PEC字节是整个数据包的组合,而不仅仅是发送或接收的数据。

    此致,

    Wyatt Keller

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

    您好,Wyatt:

    以下是客户的回应:

    "是的,我们知道PEC字节是5字节的整包的组合。
    正如从bq2060获取的屏幕截图所示,我们请求的剩余容量的命令为0x16,回复数据包为

    0x16,0x01,0x17,0xE8,0x03 --收到的PEC是0x56而不是0xD9

    我希望这能有所帮助。

    此致,

    马文

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

    您好,Marvin,

    我不确定他们是否正确实施了PEC计算。 我需要使用逻辑分析器来查看完整的事务以进行确认。

    剩余容量是命令0x0F,因此我不确定它们发送和接收的内容,这对于校验和的计算非常重要。

    您可以在此处使用计算器: http://www.sunshine2k.de/coding/javascript/crc/crc_js.html

    并在此处提供指南: https://www.ti.com/lit/pdf/slua475

    我可以告诉他们没有使用整个数据包-包括设备地址,但我无法使用提供的数据来确认这一点。

    此致,

    Wyatt Keller

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

    您好,Wyatt:

    感谢您的回复。 客户仍然无法生成逻辑分析仪的捕获 ,而是提供了以下信息:


    请确认我们是否通过I2C接收PEC读取3个字节?

    以下是我们遵循的内容

    电池地址写入为0x16
    命令为0x01 (RemainingCapacityAlarm())
    蓄电池地址读数为0x17
    数据是0x03E8(1000)

    收到的PEC为0x56

    PEC计算结果为0xD9

    这会有帮助吗?

    此致,

    马文

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

    您好,Marvin,

    我不确定它们的含义是什么,我们读取的接收PEC是3字节,它们需要读取3字节,因为量规将发送PEC字节和2字节,用于剩余容量警报。

    当我对发送的数据进行PEC计算时,我得到的值与量表和客户计算的值不同。

    这就是我希望在可能的情况下看到实际数据传输的原因。 如果他们不需要校验和,则可以始终禁用PEC。

    此致,

    Wyatt Keller

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

    您好,Wyatt:

    当我们通过I2C通信读取设计电压相关信息时,随附示波器波形。

    具有write 0x16的地址

    命令0x19

    地址读为0x17

    BYTE1 0x40

    BYTE2 0x38

    收到的PEC为0x47

    但计算结果为0xFF

    当我们尝试通过发送SMBus的读取命令序列来读取数据时,我们将获得的数据为't','e','x','a','s',','i','n','t','。

    请您确认可能是什么问题

    提前感谢!

    此致,

    Venkata Praveen

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

    您好Venkata:

    执行读取时,您需要发送重复的开始。 根据到目前为止的对话,我认为您是在地址0x17字节之前进行停止/启动,而不是重复启动。 示波器捕获似乎指示相同,但分辨率不够高,无法确定。