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.

[参考译文] PCF8574:打开连接在PCF8754中的8个继电器的步骤

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/575418/pcf8574-steps-to-switch-on-8-relays-connected-in-pcf8754

部件号:PCF8574

您好,

我正在处理一个项目,使用 PIC18F4620 MCU和PCF8574打开8个端口引脚中的8个连接继电器。 谈到I2C通信,首先我要发送起始位,然后发送从属地址和0xFF,以打开8端口引脚中的所有继电器。 这种处理PCF8574的方式是否正确? 或者 ,在端口引脚上发送输出高电压(0xFF)之前,我是否应该发送任何命令来配置PCF8574的端口方向。 任何人是否可以指导我在PIC18F4620和PCF8574之间进行I2C通信。 我的应用程序只需要端口写入模式。 我不想从PCF8574读取端口功能。 下面是用于连接PIC18F4620 MCU和PCF8574的原理图。 请提出解决方案。

谢谢!

Muthu

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

    您好,Muthu:

    如果只想写入,请确保在 最后一个地址位之后的末尾切换写入位。  请记住,它必须循环浏览班次记录。  

    Francis Houde  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Francis Houde,
    谢谢。 我有一些关于IO扩展器功能的问题要问。

    问题1. 发送从属地址后,是否应发送任何命令字节以配置PCF8574端口针脚方向(输入或输出)?

    问题2. 我需要在所有8个端口引脚上写入逻辑高电平。 地址为从属后,我应该发送哪个字节以使所有8个端口引脚都处于逻辑高位?

    问题3. 在我们方面,我正在尝试使用0xFF使8端口引脚逻辑高电压(5V)。 当我在写入此0xFF后测量端口针脚处的电压时,我得到的是0.8V,而不是5V。


    请提出解决方案。


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

    您好,Francis Houde,

    PCF8574 NXP部件工作正常,但TI的相同部件不工作。 我看不出来规格有什么不同。 我可以在TI的PCF8574中看到设备在发送地址和数据(0xFF)后确认,但它没有保持 我所写的状态(0xFF)。当我将0xFF写入数据时,P0-P7会在几毫秒内保持。 之后,它将进入关闭状态。 以下是我们的示意图

    谢谢!

    Muthu

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

    您好,Muthu:

    您能否用 示波器记录I2C事务以便我可以看到它?  我想确保信号看起来正常,并确保格式正确。

    Francis Houde

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

    您好,Francis Houde,

    附加示波器图像。 在这种情况下,对于前8个时钟,我正在发送地址0x44 (包括写位0)。 然后,在第九个时钟,从机以LOW响应。 对于接下来 的8个时钟,我正在发送数据0x01。 然后从机以0响应。

    谢谢!

    穆赫图

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

    您好,Francis Houde,

    请找到附带说明的图片,以便您可以轻松地进行进一步查询。

    谢谢!

    Muthu

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

    您好,Francis Houde,

    我仍在等待您的回复。 如果TI-PCF8574正常,我们将批量购买。 否则,我们必须迁移NXP。 希望我们将得到TI的激励。

    谢谢!

    Muthu

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

    很抱歉耽误你的时间- Francis现在不在办公室,所以我为他看一下。

    根据您提供的波形捕获,我想指出几件事。 我在您的原理图上看到,您的三个地址行都被拉低;如果是这种情况,则应用于"写入"操作的设备地址是0x40。 此外,数据表还指出,要进行完整的设备编程,需要两个字节的数据传输(请参见图12以及Francis在其上一篇文章中引用的图注)。 我建议在波形中的ACK之后再添加8个0xFF数据周期;P[7:0]输出应在第三个ACK之后有效。

    我希望这能有所帮助,如果您仍有问题,请告诉我。

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

    您好,Max,

    谢谢。 双字节编程是什么意思? 现在,我正在发送salve地址,后跟数据(0xFF),以将端口引脚设置为输出逻辑高。 根据数据表,这是双字节编程。

    如果我理解这方面的任何错误,请告诉我。

    谢谢!

    Muthu

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

    在上面复制的图片Francis中,有三个8位事务。 第一个通信从地址并指示操作是读还是写。 第二两个分别定义P[7:0]值。 我意识到这有点奇怪,因为只有8个端口值要分配,但您可以尝试在地址后两次发送P[7:0]值吗? 图中显示了在写入和确认第二个数据字节(如果包括地址,则为第三个字节)之前,实际未从内部移位寄存器传输到输出端口的配置值。

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

    我们已经尝试过这种做法,没有区别。

    但是,现在我们已通过将设备更换为PCF8574at / 3.518 来解决问题,这绝对符合规范。

    仍然无法了解TI为何不工作。 根据数据表,我看不到任何差异。

    此致,
    Muthu