主题中讨论的其他器件: TCA9539
您好!
我在单个 I2C 总线上以100KHz 使用四个 TCA9555器件。 它们按预期工作、但在某些情况下(即施加在电路板上的强 EMI)、总线被阻断、无法恢复(除非将电源切换为关闭)。 由于该器件没有复位输入、我想知道是否可以使用 SDA 和 SCL 线路以某种方式将 I2C 总线重新启动到空闲状态。 这是否可行?
此致、
Gaston
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.
您好!
我在单个 I2C 总线上以100KHz 使用四个 TCA9555器件。 它们按预期工作、但在某些情况下(即施加在电路板上的强 EMI)、总线被阻断、无法恢复(除非将电源切换为关闭)。 由于该器件没有复位输入、我想知道是否可以使用 SDA 和 SCL 线路以某种方式将 I2C 总线重新启动到空闲状态。 这是否可行?
此致、
Gaston
Gaston、您好!
"在哪里可以找到有关这种"重复"方法的一些信息?"
虽然 我提到了18个时钟脉冲、以确保器件释放总线标准状态为9个时钟脉冲、但这在 I2C 标准中有所规定。
标准第20页上有一个 snip-it:
"它是否与器件的特定功能相关"
不可以、因为这应该适用于所有 I2C 从器件。 这是因为从器件的状态机不再与实际的 I2C 时钟保持一致。 这可能是由于噪声、热插拔事件、在线路上产生振铃的寄生电感或与 I2C 时钟线路的串扰造成的。 9个时钟脉冲应该复位从器件的状态机、以便它可以看到一个停止条件。
我还应该提到、有些器件具有"阻塞总线恢复"功能、该功能实际上会检测 SDA 线是否被锁存为低电平、并自动生成9个时钟脉冲以尝试释放总线。
谢谢、
-Bobby