Other Parts Discussed in Thread: TMAG5273
器件型号: TMAG5273
从 先前的讨论中继续:
所述的行为可以概括如下:如果在单个 I2C 总线上有(至少)两个器件、并在两个器件之间交替使用 TX 和 Rx 命令;那么总线上的其他数据可能会影响要通信的第一个器件的 CRC 计算结果、即使该数据正在发送到另一个器件也是如此。
在链接的讨论中、我发现我们的两个 TMAG5273 器件中有一个 CRC 计算错误、但采用了从未改变的方式、因此我找到了一种权变措施。
再试验一下、我发现、如果我在不存在的器件中插入了一条虚拟 TX 消息、那么该器件的地址将影响其中一个 TMAG6180 的 CRC 计算。 对于任何给定地址、对 CRC 计算的影响是可重复的、但我尚未找到预测该影响的方法。
在我们的代码中、设置后、我们依次向每个器件发送转换触发消息 (0x98 0x00)、等待、然后使用特殊的 1 字节 Rx 命令从每个器件获取数据。 数据始终是合理的、但第一个器件的 CRC 总是错误的、如链接讨论中所述。
如果我 在每个转换触发消息之前插入虚拟消息、这似乎会对 CRC 计算产生进一步影响。 如果我将其插入触发消息之后或 Rx 消息之后、则该消息无效。
因此、假设我没有出错(!)、芯片中是否可能存在错误、在某些情况下会影响 CRC 计算、可能涉及总线上其他器件的地址?