主题中讨论的其他器件:TCA9548A、 PCA9306
大家好、团队、
是否有任何 I2C 开关可以分离所有通道? 这意味着、如果一个通道因某种逻辑错误拉低、所有其他通道仍可正常工作、器件可以检测并隔离异常通道。
谢谢。
Johnny
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.
您好、Johnny、
我将接管 Max。
您似乎已经选择了我们的8通道多路复用器、但我建议使用 TCA9548A、因为它与 PCA 系列相同、但更具成本优势、Vcc 范围更宽、在 PCA 系列中解决了 POR 错误、 并且与我们的 PCA 系列引脚对引脚兼容。
您的原始请求似乎不是大约8通道多路复用器、而是一个多路复用器、它可以检测总线何时锁存(例如 SDA 拉低并永久保持低电平)并禁用通道。 我是对的吗? 如果是、我们没有内置了这种集功能的多路复用器。
我可以看到的解决此问题的最简单的解决方案是在每个通道前面放置一个具有使能引脚(如 PCA9306)的电平转换器、并让主器件检查 I2C 线路是否存在此问题。 如果主器件检测到这种情况、它可以通过电平转换器禁用每个通道、直到能够检测导致问题的通道。 隔离导致问题的通道后、主器件需要在 SCL 上发送9个脉冲、以尝试取消初始侦听损坏数据的总线上的任何从器件。 <-这仍然有效、但以下是一种更好的方法:
TCA9548A 有一个复位引脚、如果主器件看到 SDA 线路被锁存、那么它可以向复位发送一个 GPIO 信号、这将禁用所有通道。 当主器件释放 RESET 引脚时、它随后可以逐个启用每个通道、直到它找到锁存为低电平的通道、然后在软件中记住不启用该通道。 之后、它只需重新复位器件一次、并正常运行。 使用此方法时、您还需要启用所有未卡住的通道并发送9个时钟脉冲、以确保 I2C 器件状态机不会出现毛刺脉冲。
谢谢、
-Bobby
编辑:我正在寻找另一种方法、因此我将在此问题上与您联系。 请稍后查看此帖子。