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.

[参考译文] TCA9535:关于使用 LPC 55S16微控制器的 TCA 9535接口的怀疑

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1228853/tca9535-doubt-regarding-tca-9535-interface-with-lpc-55s16-microcontroller

器件型号:TCA9535

您好!

我使用 TCA9535 (I/O 扩展器)接口与 LPC55S16微控制器。 我们使用 I2C 通信与 I/O 扩展器进行通信。 使用给定器件地址、寄存器地址设置 I2C、16位数据通过 TCA9535。但 I/O 扩展器无法使用给定配置进行响应。

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

    请展示原理图、并告诉我们您的固件尝试使用的地址。 示波器引线会有所帮助。

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

    I/O 扩展器或55S16微控制器的原理图。 下图显示我们的 I2C 向所需的从器件(I/O 扩展器)发送从器件地址、寄存器地址和16位数据。

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

    这是看起来不错的写入事务的开始;TCA9535会使用正确的 ACK 进行响应。 (因此原理图可能没有什么问题。)

    使用寄存器地址3写入两个(或更多)字节的情况不太常见。 你要做什么? 实际上会发生什么情况?

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

    尊敬的 Vignesh:

    使用给定的器件地址、寄存器地址和16位数据通过 TCA9535设置 I2C。但 I/O 扩展器无法使用给定的配置进行响应。

    在上述陈述中、IO 扩展器无法响应给定的配置是什么意思?  

    您希望从 TCA9535获得什么响应?  

    正如 Clemens 提到的、该器件已正确确认。 您发送的目标地址后跟寄存器地址0x03 (输出端口1)、后跟0xFF、然后是由 o 范围切断的另一字节数据。 是否通过先写入输出端口1、然后写入输出端口0来利用自动递增功能? 您期望输出数据是什么?  

    此致、

    泰勒

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

    不存在自动递增功能。 我尝试配置和控制端口1本身。 TCA9535正确确认所有数据。 但我无法在引脚上看到任何电压差(均为0V)。  

    在 TCA9535中是否需要使用 INT 引脚?

    此外、1个数据帧传输是否足以实现引脚的单一控制或所需的连续数据传输?

    我们在几乎一个星期的时间内遇到了麻烦,我们最好以正确的方式来获得输出

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

    您是否更改了配置寄存器以将引脚设置为输出? 加电时、所有引脚均为输入。

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

    我发送0x02配置(也尝试了0x03)、后跟从器件地址。

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

    配置寄存器为寄存器6和7。 请参阅数据表的第7.6.1节。

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

    感谢您的答复。寄存器的配置部分运行得很好。我不确定输出端口0、1寄存器的用途是什么。(0x03和0x04)

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

    当配置寄存器中的某个位设置为1时、输出端口寄存器中的相应位会被忽略。
    当配置寄存器中的某个位设置为0时、输出端口寄存器中的相应位会设置引脚的状态。

    输出端口寄存器为0x02和0x03。

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

    如何评估该寄存器0x02和0x03。在使用该寄存器时、我没有看到输出端口有任何差异

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

    请展示您的代码。

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

    尊敬的 Vignesh:

    没有自动递增功能

    TCA9535支持自动递增、这意味着如果您读取输入端口寄存器1、下一个端口读取将是输入端口寄存器2。  

    是否需要在 TCA9535中使用 INT PIN?

    INT 引脚是外部输出、MCU 可以使用该输出来判断 TCA9535上的输入端口是否已更改状态。 然后、此中断可由 MCU 提供服务、以读取导致变化的输入端口寄存器、从而清除中断。  

    正如 Clemens 提到的、需要对配置端口进行配置、以便将 p 端口设置为输出。 您似乎已经使该部件正常工作。  

    为了正确写入任一输出端口寄存器、您必须遵循数据表图7-7中的示例。  

    这需要发送一个正确的 I2C 从器件地址、后跟一个写入位。 接下来是命令字节(对于输出端口寄存器为0x02或0x03)。 然后将数据提供给指定端口、该端口应将 p 端口输出设置为高或低逻辑。  

    此处的代码或示波器捕获将会有所帮助、以确保您与 TCA9535正确连接。

    此致、

    泰勒

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

    感谢您的支持。