以下是出现问题时的快照。 波形显示了由主器件以59ms 驱动的长时钟低电平;这会影响 ACK 到重复启动的时间周期、然后影响 ACK 到 ACK 的时间周期。
如光标所示、ACK 完成35 ms 后、UCD 似乎工作异常。 (由于 UCD 驱动的某些使能输出似乎无法正常工作)
要放大波形、主器件写入0x8E 命令、然后 UCD 将其 ACK。 此外、时钟被驱动为低电平、时间为59ms。
在之前 的0x8E 命令中、主写入器0x00和0x0C 写入 UCD。 波形显示的时钟拉伸时间非常长、为77us。 与其他事务相比、与 UCD 的其他事务只有10~20us 的时钟拉伸时间。
我们不确定在本次交易中 UCD 内部是否存在问题?
作为以下波形、主器件将以更长的时钟拉伸周期(~77us)写入0x00和0x0C。
由于这个问题、似乎很少有人会与您一起检查项目;尽管主器件似乎在 ACK 上驱动得太长、无法重复启动周期。
1. DPM 在较长的时钟拉伸时间(~77us)上是否有问题?
2. 当 UCD 获得到重复启动周期(~59ms)的非常长的 ACK 时、可能会发生什么情况?
3.由于 SMBus 超时(怀疑35ms 是超时情况),UCD 是否仍能在其 FW 定义的逻辑上正常工作? 不希望 SMBus 事务影响 SMBus 函数之外的另一个函数。
4. 如果怀疑35ms 的时间是正确的、那么 UCD 能否在35ms 内将超时行为置为有效? 即、我们希望 UCD 没有什么不同、因为 SMBus 在35ms 时钟低电平下运行。
在本例中、主器件为 MCP2221。
感谢您的关注、如果有、敬请推荐。