主题中讨论的其他部件: BQ2060
各位专家,您好!
客户通过 I2C通信使用BQ20Z95 ,无法匹配PEC。 他们收到的PEC与计算得出的PEC不匹配。 通过I2C,它们读取的是3字节,而不是PEC的2字节,
您能否确认这是否正确? 这可能是什么问题?
提前感谢。
此致,
马文
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.
您好,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计算。 我需要使用逻辑分析器来查看完整的事务以进行确认。
剩余容量是命令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
这会有帮助吗?
此致,
马文
您好,Wyatt:
当我们通过I2C通信读取设计电压相关信息时,随附示波器波形。
具有write 0x16的地址
命令0x19
地址读为0x17
BYTE1 0x40
BYTE2 0x38
收到的PEC为0x47
但计算结果为0xFF
当我们尝试通过发送SMBus的读取命令序列来读取数据时,我们将获得的数据为't','e','x','a','s',','i','n','t','。
请您确认可能是什么问题
提前感谢!
此致,
Venkata Praveen