主题中讨论的其他器件: AM5718、 LM63LM64LM96X63EVM、 LM96063、 PCA9545A
您好!
设置 或请求 I2C 有效通道时、开关按预期响应。 但是、在尝试与连接到任何通道的器件进行通信时、"通道侧"没有任何活动。 所有通道都卡在逻辑高电平。 它就像导通栅极晶体管永远不会导通并让任何东西通过。
根据数据表图17和第18页、右侧的2.6V 电压应该正常。 不过、我不确定未使用的中断和未使用的通道。 上拉至3.3V 是否会导致任何问题?
此致
F
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 有效通道时、开关按预期响应。 但是、在尝试与连接到任何通道的器件进行通信时、"通道侧"没有任何活动。 所有通道都卡在逻辑高电平。 它就像导通栅极晶体管永远不会导通并让任何东西通过。
根据数据表图17和第18页、右侧的2.6V 电压应该正常。 不过、我不确定未使用的中断和未使用的通道。 上拉至3.3V 是否会导致任何问题?
此致
F
这里是一些来自主器件侧(引脚18和19)的示波器图像。 开关的地址为0x71 (不是原理图中所示的0x70)。
主器件发送111 0001 0 (地址= 0x71、这是一个写操作)并且开关用一个 ACK 进行响应。 那么、从设备似乎会在主设备开始发送控制寄存器之前释放线路、这会导致短时干扰、但这无关紧要。 控制位为0000 0001、此位应激活开关上的通道0。 之后、时钟保持低电平。 不知道到底是什么情况、但开关似乎出于某种原因使时钟拉伸。
下一幅图像是主器件读回控制寄存器。
主器件发送111 0001 1 (地址= 0x71、这是一个读取)并且开关用一个 ACK 进行响应。 开关将0000 0001发送回主器件、这与主器件在第一步中写入的内容相对应。 主器件用 NACK 进行应答、表示它已完成对总线的读取。 再次进行。 开关似乎使用时钟拉伸。
最后一个映像、主器件尝试与通道0上的器件通信。 地址为101 0000 (0x50)。 由于通道侧死区、没有任何答案、因此我们得到了一个 NACK。 紫色探针是通道侧的 SCL 线。
此致
/F
更多信息。 交换机的另一个实例也表明不起作用:
此开关上的下游器件是四 个 LM96063风扇控制器、该设计在很大程度上基于 LM63LM64LM96x63EVM。 此 EVM 可以正常工作、但使用 PCA9545A 开关代替 TCA9545A 开关。 它们应该是相同的、不是吗? 实际上、我们在 另一个定制电路板上使用 PCA9545A 开关、它在该电路板上也能正常工作。 这两个开关之间是否有任何差异会导致 PCA9545A 工作、但 不会导致 TCA9545A 工作?
/F
您好、Fredda、
我发现奇怪的是、示波器显示 ACK 后时钟线锁存为低电平。 您已经指出、它看起来像是 TCA9545A 时钟拉伸、但据我所知、由于我们的器件不需要太多时间、因此该器件无法进行时钟拉伸、因为我们通常会移除器件 SCL 线路上的下拉 FET 解析他们接收到的数据。 我猜主器件是在我正确的情况下将 SCL 线路保持在低电平的器件(需要检查设计文件)。
我还注意到、当 SDA 再次拉低时、SCL 线路在一个点后确实会恢复为高电平。 由于 I2C 是漏极开路、因此器件无法主动将线路驱动为高电平、这意味着以下两点之一:
答:如果从机执行了时钟扩展、那么它必须已经释放 SCL 线路并且主机重新开始控制
B:主器件控制了整个时间并在重新通信之前等待了一段时间
刚刚检查了设计文件,看起来我们的设备不能执行时钟扩展,因此很可能是主设备或与交换机地址相同的另一个设备执行时钟扩展.........
我看到过主器件将 I2C 线路驱动为低电平(并保持低电平)并且仅在需要发送1时才将线路释放为高电平的情况(请检查下面的编辑)。 在成功检测到停止条件之前、我们的器件实际上不会启用开关的通道、因此我想知道主器件是否会将 SCL 上的线路拉低、从而导致器件永远不会看到停止条件、因此从不会实际开启通道。
我建议检查主器件的代码、以确认它是否由于某些奇怪的原因而进行时钟拉伸。
谢谢、
-Bobby
编辑:我记忆了类似的情况、但两条线都保持在低电平而不是 SCL。 不过、这可能是同一个问题。