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.

[参考译文] TXB0104:当一个端口被拉高而 B 端口被拉低时、TXB0104的行为

Guru**** 2610895 points
Other Parts Discussed in Thread: TXB0104, SN74AXC4T245

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

https://e2e.ti.com/support/logic-group/logic/f/logic-forum/843383/txb0104-behavior-of-txb0104-when-a-port-is-pulled-high-and-b-port-is-pulled-low

器件型号:TXB0104
主题中讨论的其他器件: SN74AXC4T245

您好!

我使用 TXB0104是我的设计、用于在 FPGA (在1.8V 下运行)和 MCU (在3.3V 下运行)之间连接4个 GPIO。

测试时观察到异常行为:

在该设计中、我们将端口 A 侧的50K pu 提供至1.8V。

在 B 端口、对于3个引脚(B1、B2、B3)、50K PU 被提供为3.3V、而对于 B0引脚、则提供下拉电阻。

我们需要 MCU 在 B0、B1、B2、B3上将这些 GPIO 读取为0111 (设计要求)。 请注意、A0上拉电阻已连接。

GPIO 的方向是端口 A 到端口 B (FPGA 到 MCU)。

现在、当 FPGA 不驱动端口上的任何内容(FPGA 引脚为三态)时、我们希望 MCU 将 B0-B3读取为0111、但情况并非如此。 我们实际探测 B0-B3、并在 B0引脚上观察到0V、在其他引脚.T 上观察到3.3V

当我移除 A0引脚的 PU 电阻器时、MCU 开始将其读取为0111。

在这种情况下、电压也与 BO 上的0V 和其他引脚上的3.3V 相同。 那么、这里的问题是什么? 您能解释一下此问题的根本原因吗? 简单地说:如果一个端口被拉高,如果 B 端口被拉低,如果方向是 A 到 B,那么 B 上应该是什么?

此致、

Vijetha

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

    TXB 没有方向;当 OE 为高电平时、两侧的输入缓冲器和输出驱动器始终处于激活状态。

    50 kΩ 上拉/下拉电阻器弱于 TXB 的输出、因此在启用 TXB 时电阻器对信号电平没有影响。 您只能在 TXB 被禁用时读取电阻器。

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

    那么、该问题的根本原因是什么?

    当 A0引脚具有 PU 且没有人驱动 A0引脚时、并且当 B0引脚具有下拉 MCU GPIO (连接到 B0)时、不会读取逻辑0 (使用示波器进行物理探测并观察到0V)。

    当 A0引脚的 PU 被移除并且没有人驱动 A0引脚时、连接到 B0 引脚 的 MCU GPIO (对于该引脚、有50K 下拉电阻)开始读取逻辑0 (即使现在使用示波器进行物理探测、观察到0V)。

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

    正如我说过的、TXB 没有方向。 它始终驱动全部四个 B 引脚和全部四个 A 引脚。 您不能使用上拉/下拉电阻器。

    如果您有单向信号、则应使用具有适当缓冲器的转换器、如 SN74AXC4T245。

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

    您好!

    选择 TXB0104是因为它具有不带方向控制的双向功能、因为我们用于 FPGA GPIO (连接到 A 端口)和 MCU GPIO (连接到 B 端口)之间数据通信的软件协议尚未最终确定、因此我们不知道这些 GPIO 的方向。 因此、我们选择了 TXB0104。 如果我们确定方向流、我们可能已经按照您的建议选择了单向转换器。

    我们在几天前收到了 PCB、为了进行测试、我们考虑数据流方向是 A 到 B

    尽管 IC 的任一端口不需要/建议使用 PU、但我们特意将它们连接到 A 和 B 端口、因为我们希望 MCU 读取其 GPIO (连接到 B 端口) 与0111相同、即使 FPGA 未在端口 A 上驱动其 GPIO 上的任何东西。是的、我们在数据表中看到了不建议使用上拉电阻的注释、但数据表中也提到、如果您连接 PU、则最小值为50K。 我们的设计需要 PU、因此我们遵循了数据表建议。

    现在问题是、A0引脚上有50K PU、B0引脚上有50K 下拉电阻、但 MCU 在 A0引脚上的 PU 基础上没有将该 B0引脚读作逻辑0。 当这个 PU 被移除时、它读取为逻辑0。 这种观察的原因/根本原因是什么? 基本上、我们想知道端口引脚上是否有 PU、B 端口引脚上是否有 PD、以及数据流是否被视为 A 到 B (甚至是 B 到 A)、问题是什么、IC 将如何工作?  

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

    A 侧和 B 侧是对称的。 如果 A 和 B 引脚反向拉动、则该通道上的逻辑电平由随机机会决定。

    为了能够读取两侧的 PU/PD 状态、必须将 OE 拉至低电平。 OE 是否可以在您的电路板上进行控制?

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

    是的、我们可以控制电路板上的 OE。 我们将其连接到低电平、并且能够在端口上存在 PU 的情况下在 B 端口@ MCU 侧读取逻辑为0111。