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.

[参考译文] TIOL111:230.4kBaud 数据完整性问题

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1132801/tiol111-230-4kbaud-data-integrity-issue

器件型号:TIOL111
主题中讨论的其他器件:TIOL112LM5160

我们遇到收发器随时间变化异常行为的问题。 下面是相关的原理图。



我们的器件未响应 IOLink 主器件唤醒请求-我们应该使用230.3kBaud COM3、但我们正在尝试确定器件为何不响应。 因为我们从不响应主器件在三个波特率选项中的每一个都重复轮询。 与从收发器的 RX 引脚推出的数据进行比较、在探测收发器中的数据线路时、显示了以较慢的两种速度预期输出:

COM1、到 TIOL111的输入(IOL CQ 数据线):

COM1、输出(从收发器到微控制器的 RX 线):


COM2、到 TIO111的输入:

COM2、TIOL111输出:


但是、在 COM3上、收发器 RX 输出与其接收的输入不匹配:
COM3、到 TIOL111的输入:

COM3、TIOL111输出:


COM3器件是否存在任何已知问题、需要注意的问题或遇到的任何类似问题? 这是最近发展的、我们解决客户问题的期限非常短。

谢谢你。

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

    Matthew、您好!

    很抱歉听到您遇到困难。  否、在 COM3上运行 TIOL111没有已知问题。  但是、我确实对您的问题可能是什么原因有一些疑问和想法。

    您能否确认您使用的是 TIOL111的哪个版本?  是 TIOL111 (非 LDO 版本)、TIOL1113 (3.3V LDO 版本)还是 TIOL1115 (5V LDO 版本)?  我在原理图中看到您将3.3V 连接到 VCCIN/OUT 引脚、但我不知道该3.3V 是来自外部电源还是由 TIOL1113 LDO 提供。

    让我感到困惑的是、您的示波器图显示 RX 振幅约为5.28V、但这应与原理图中显示为3.3V 的 VCCIN/OUT 电压匹配。  因此、请确认您使用的器件版本以及 VCCIN/OUT 上的3.3V 是否来自外部电源。

    在主器件发送唤醒脉冲并随后跟踪数据包之前和期间、您能告诉我 TX、EN、nFAULT 和 WAKE 引脚的值或范围图吗?

    当主器件发送唤醒脉冲时、EN 引脚可能为低电平(驱动器=关闭)。  如果是这种情况、则器件已处于"仅接收"状态、WAKE 引脚保持高阻态  如果当主器件发送唤醒脉冲时 EN 引脚为高电平(驱动器= ON)、则器件将转换至"唤醒"状态、WAKE 引脚将拉低为信号发送至 MCU 以禁用驱动器(拉低 EN 引脚) 将收发器置于接收数据的"仅接收"状态。

    IO-Link 标准文档中对于驱动器已禁用时所需的 WAKE 引脚有一些模糊之处。  我知道、许多其他 IO-Link 收发器甚至在驱动器已禁用时也会监控唤醒脉冲、并在信号数据即将到来时将其用作 MCU 的中断形式。  但是、在这种情况下、该标准不会为该引脚定义任何特定行为、它仅定义驱动器开启时的行为、否则将阻止从主器件传输数据。

    如果您面临这种情况、并且您的器件在接收来自主器件的数据以进行响应之前需要一个唤醒脉冲、 然后、您可以尝试在空闲时间内保持 EN =高电平、以便启用驱动器并为主器件发送下一个唤醒脉冲做好准备。

    我们还有一个新发布的 IO-Link 收发器(TIOL112)、该收发器会更改此行为、以便即使在 EN 引脚为低电平、器件处于关断状态且器件处于仅接收状态时、唤醒脉冲也能反映在 WAKE 引脚上。  WAKE 管脚不是在接收到唤醒脉冲后锁存 WAKE 管脚为低电平、而是在短时间内脉冲为低电平、这与大多数由边沿触发的 MCU 中断兼容。  TIOL112被设计成 TIOL111的增强版本、并且与 TIOL111封装兼容、并且应该可直接替代大多数应用。  您可能还需要考虑该器件。

    以下是 TIOL112数据表中的唤醒行为图:

    此致、

    Jonathan

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

    您好、Matthew、

    抱歉、对于第二个帖子、我意识到我没有评论 COM3中的 RX 波形。  了解器件无法识别唤醒脉冲的原因可能是使系统正常工作的关键、也是我在第一次响应中重点关注该问题的原因。

    RX 信号始终反映 CQ 引脚、只是 CQ 电压的电平位移版本。  如果在主设备通信时启用了驱动程序、则可能会影响并损坏波形。

    我们还需要验证 COM3模式下的唤醒脉冲是否有效以及持续时间是否正确(不是太长或太短)。

    此致、

    Jonathan

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

    你好、Jonathon、

    感谢您的快速详细回答。

    我们使用的是 TIOL111非 LDO 版本。 出现在 VCCIN/OUT 引脚上的"3.3V"是一个来自电路板其他位置的电源轨。

    RX 振幅具有误导性,这是此电路板上不同配置原型设计的结果。 主电源由24V 电源进入电路板、并使用 LM5160和耦合电感器进行降压、以形成隔离栅。 LM5160可产生~5V (您在 RX 引脚上看到的振幅)。 通过隔离栅、整流器和 LDO U4的组合将电压降至3.3V。 在初级侧、同一 LDO 被组装在电路板上进行测试、但当前被旁路、这是因为隔离栅初级侧的所有元件都能够承受~5V 输出、因此无需对3.3V 进行额外调节。 数据线通过电容隔离器、因此隔离层一侧到另一侧的"3.3V"电压轨差异不会导致问题(相同的信号在隔离层另一侧测量、幅值为3.3V、无问题)。  不清楚(对此我深表歉意)、但幅度是预期的。 请参阅下面的 snip 原理图:

    我手头上没有所有示波器捕获、但我已经研究了其他信号:

    -EN:ENABLE 始终保持低电平-您对在唤醒脉冲期间使能引脚为低电平的评论对于我们的器件是正确的。

    -nFAULT:始终保持高电平-未检测到故障。

    -TX:始终保持高电平-我们的器件未尝试响应、接收到的消息不会提示响应。

    -WAKE:当我们开始遇到问题时、这是我第一次怀疑、但经调查后、WAKE 引脚未发生变化、因为器件处于接收状态、从器件接收到来自主器件的唤醒脉冲开始。 此外、脉冲的测量范围为75-81us (恰好在规格范围内)、 在唤醒脉冲结束后、主器件等待510-530us 以开始发送消息(也在我解释的规格范围内、因为在接收到唤醒脉冲后、器件需要准备好不晚于500us 的响应)。

    从主器件发出的消息在所有三种 COM 速度下似乎都是正确的、我们将对0xA2进行解码、这是预期的:

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

    如果在主器件传输数据时错误启用驱动器(EN =高电平)、收发器是否会损坏?

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

    您好、Matthew、

    感谢您对电压电平的澄清。  我不认为这是个问题、但在调试时、我会查找任何看起来不正确的内容、并假设这可能是线索。 我理解您在做什么。

    是的、器件板应在接收到唤醒脉冲后的500us 内自动转换为仅接收模式。  主器件将发送脉冲并在以 COM3速率发送第一条测试消息之前至少等待500us、然后等待器件板在27-33 Tbits (以 COM 速率传输位时间)内的响应。  如果器件板未响应、主器件将以 COM2速率发送下一条测试消息、然后再次以 COM1发送、直到它得到响应、或者它超时并重复整个唤醒序列。

    器件板应仅支持其中一种 COM 速率。 因此、如果 您尝试在 COM3上进行通信、您的 MCU UART 应配置为支持230.4kbps、并且 MCU 需要根据 COM3的27-33位在117.18us (最小值)至143.22us (最大值)范围内响应主器件。

    由于 TIOL111是一款简单的器件、它本身不会对主器件做出响应、MCU 需要检测来自主器件的 UART 帧、然后将相应的响应 UART 帧发送回主器件。  在 EN 引脚为低电平时、TIOL111将使 WAKE 引脚保持高阻态、但仍将数据传递到 RX 引脚。  您的 MCU 是在持续监控 UART 端口上是否有来自主器件的消息、还是需要在 WAKE 引脚上进行一些活动来准备接收主器件的消息、以便它能够在27-33 Tbit 响应时间内做出响应?  通常、当我遇到唤醒相关问题时、这是因为 MCU 需要在 WAKE 引脚上进行转换以用作中断并为传入消息做好准备、 如果没有此 WAKE 引脚转换、MCU 会错过该消息、并且在所需的时间内没有响应。 因此、我想知道您的 MCU 是如何配置的、如果这是导致您的电路板不响应唤醒请求的原因。

    另外一个问题是、如果在主器件传输时启用了驱动程序(EN =高电平)、则器件不会损坏。  从物理层的角度来看、这与主器件在传输时传输唤醒脉冲的方式相同。  

    对于您的 COM3波形的原始示波器图、我仍然有点困惑。  RX 应始终遵循 CQ 引脚、因此这些波形应相同。  由于驱动器被禁用(EN =低电平)、这不应干扰来自主器件的 CQ 引脚上的波形。  您能否同时探测 CQ 和 RX 信号?

    此致、

    Jonathan

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

    John -

    我们在探测该器件时发现了一些有趣的东西。 我们在最初发布的原理图中探测了 R58的两侧-它是一个与 CQ 线串联的10欧姆串联电阻器。 这最初是为了作为通用限流测量进行测试而添加的、它是一个标准元件、我们以同样的方式添加到 Modbus 和 CANbus 线路中。

    通道1 (黄色)位于 R58的输入侧(布置的原理图捕捉中的右侧、直接来自主器件)。 通道2 (紫色)位于 R58的左侧(串联电阻器和收发器之间):

    移除和短接 R58可解决此问题-这种阻力是否有原因导致如此严重的问题?

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

    您好、Matthew、

    嗯、不知道具体细节、也不做我自己的任何类型的测试、这看起来就像一种标准 RC 时间常数类型的情况、在这种情况下、电缆和电路板走线的电阻和电容会增加到10欧姆电阻器。  我认为主器件的收发器具有合适的电流驱动能力、但在主器件和器件之间的 CQ 线路上通常找不到串联电阻器。

    以下是 IO-Link 测试规范中的测试电路、用于认证物理层电压和波形参数或"眼图"。  此网络配置用于模拟连接在橡皮擦和设备之间的20米电缆。  电阻器各为1欧姆、表示实际系统中 PCB 布线、连接器和电缆沿线的寄生电阻。  但与电路板上的10欧姆电阻器相比、总共只有3欧姆。

    我很高兴您现在可以使用它。  感谢您的告知。

    此致、

    Jonathan