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.

[参考译文] TCA9539:I2C 端口0和端口1检测问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1332322/tca9539-i2c-port-0-and-port1-detection-issue

器件型号:TCA9539

尊敬的团队:

我们已成功扫描 TCA9539器件、但将 I/O 引脚配置为输出面临挑战。 按照数据表说明、我们尝试通过将0x02 (输出端口0)写入0x06 (配置端口0)来将 P00配置为输出:

i2cset -f -y 2 0x74 0x02 0x06

但是、尽管如此、当在/sys/class/gpio 下进行检查并使用万用表进行检查时、相应 GPIO 的状态没有变化。

您能否提供有关如何将这些引脚正确配置为端口0引脚2的输出的指导?

等待您的响应。

谢谢。此致、

米斯蒂里·维沙尔

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

    您必须在寄存器2中设置所需的引脚值、并且必须在寄存器6中配置它们的方向:

    i2cset -y 2 0x74 0x02 0x...
    i2cset -y 2 0x74 0x06 0x00

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

    尊敬的 Vishal:

    克莱门斯在这里是正确的。 您必须设置输出端口和配置寄存器中的两个位、P0x 引脚上的输出才能正常工作。 这需要两个 i2cset 命令。  

    用于端口0引脚2作为输出

    i2cset -y 2 0x74 0x02 0x...
    i2cset -y 2 0x74 0x06 0x00

    此致、

    泰勒

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

    尊敬的先生:

    感谢您的 指导。 现在我们可以访问端口了。

    我们设法配置了引脚 p0至 P17、P12和 P13除外。 与其他引脚不同、这些 GPIO 默认为高电平状态。 我掌握了、向输出端口寄存器写入值决定了 GPIO 值的变化、同时向配置端口寄存器写入0。
    您能解释一下是什么决定了写入输出寄存器的值吗?

    对于引脚 p0至 p7、写入输出端口0寄存器的值为0x01、0x02、0x04、0x08、0x10 0x20、0x40和0x80。 这些引脚的默认 GPIO 状态为0、但在写入这些值后会变为1。 同样、对于引脚 P10至 P17、除了 P12和 P13外、遵循相同的模式、其默认状态(值1)不变。

    请分享您的输入  

    谢谢。此致、

    米斯蒂里·维沙尔

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

    尊敬的 Vishal:

    端口1是否配置为输出?  

    配置寄存器分为两个端口。  

    要将两个端口都配置为输出、您需要向这两个配置端口寄存器写入数据。  

    这将包括...

    i2cset -y 2 0x74 0x06 0x00

    i2cset -y 2 0x74 0x07 0x00

    第一个 i2cset 命令将端口0设置为所有输出(P00 - P07)

    第二个 i2cset 命令会将端口1设置为所有输出(P10 - P17)

    此致、

    泰勒