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.

[参考译文] TCA9554:I2C 未检测到

Guru**** 2390755 points
Other Parts Discussed in Thread: TCA9554

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/725968/tca9554-i2c-does-not-detect

器件型号:TCA9554

您好!

我在 其中一个项目中使用了 TCA9554PWR 8位 GPIO 扩展器、但器件在 I2C 总线上未检测到。

但在同一总线上、其他器件会被检测到。 IC 的 VCC 电源和 I2C 的电压电平为1.8V。

所有的地址输入引脚都是固定的。因此、读写地址是0x40和0x41、但当我们尝试访问器件时、我们不会从器件中获取任何 ackonwledge。

谢谢、

R.Rohith yadav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rohith、

    当您尝试与 TCA9554通信时、能否提供 SDA/SCL 线路的示波器截图?

    您是否正在尝试通过执行读取或写入来获取 ACK?

    谢谢、

    -Bobby

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bobby、

    请找到 i2c 线随附的示波器截图、我们尝试从 GPIO 扩展器获取 ACK、但未检测到扩展器、因此我们得到了否定应答。

    在下图中、我们尝试从器件中读取数据、但我们得到了一个 NACK。

    谢谢、

    R.Rohith yadav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rohith、

    我认为问题是因为您尚未解决器件的内部指针问题。 为此、您需要先执行写入事务、然后通过提供8位控制寄存器来设置内部指针。 在执行停止然后启动条件(或重新启动)之后、您可以执行读取。

    我在您发送的 O-示波器照片上没有看到任何信号完整性问题、上升时间看起来不错。 一些 SCL 上的小下冲、但没关系。

    如果您仍在接收 NACK、请尝试进行写操作并发送范围快照。

    谢谢、

    -Bobby

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bobby、

    感谢您的回复。

    现在、我们能够检测到 GPIO 扩展器、现在我们可以正确读取和写入。

    但是、在上电期间、所有 GPIO 默认处于输入模式、在尝试将 GPIO 更改为输出模式时、我们会遇到 IO 错误。

    错误消息:

    root@Tegra-Ubuntu:/home/nvidia echo out >/sys/class/gpio/gpio236/direction
    Bash: echo:write error: remote I/O error.(Bash: echo:写入错误:远程 I/O 错误。

    这是我们在尝试将 GPIO 的方向设置为输出时收到的消息

     

    谢谢、

    R.Rohith yadav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rohith、

    很高兴听到您现在能够执行读取和写入操作。

    我不确定该错误消息意味着什么、因为编码/软件不是我的强项。 我想知道您是否在尝试以任何原因写入时收到 NACK (例如、可能尝试写入只读寄存器)。

    我认为、如果您执行写入事务(将 GPIO 设置为输出)、可以看到 SDA/SCL 线路的样子、这样我们就可以验证写入是否正常进行。 (我们应该会在每个数据字节传输到我们的器件后看到 ACK)。 读取事务应反映我们发送到器件的相同值。

    谢谢、
    -Bobby
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rohith、

    您仍有问题吗? 如果是、您是否有机会按照 Bobby 的建议监控 SDA/SCL 线路?

    此致、
    最大