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.

[参考译文] TL16C754C:用 TL16C754C 替换 ST16654 时出现问题 — 数据挂起

Guru**** 2914610 points

Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1605146/tl16c754c-problem-replacing-st16654-with-tl16c754c---data-hanging

器件型号: TL16C754C
《Thread 中讨论 的其他器件:AM3352》

您好:

简介:
我叫 Everett Sykes。 我是加利福尼亚州尔湾的 Western Telematics、Inc.的设计工程师。我正在使用基于 BeagleBone Black 的定制板和 AM3352 处理器。 我们制造的控制台服务器具有多个串行端口、其中每个端口都可以从多个不同的输入端访问、例如任何其他串行端口、以太网、蜂窝调制解调器等 我们在摩托罗拉总线模式下使用 ST16654 夸脱。 但我们最近在 Intel 总线模式下使用了 TL16C754 夸脱、因为 ST16654 已经停产。

问题:
由于切换器件、我遇到了以下问题:

我正在运行一个菊花链环回测试、其中我将多个串行端口连接在一起(交替进行内部和外部连接)、然后将它们环回到彼此之间。 如果我将数据块发送到此配置中、然后停止发送、则数据应通过系统涓流、直到所有数据都从原始端口返回。 该测试适用于 ST16654 夸脱。 但当我使用 TL16C754 夸脱进行测试时、数据似乎挂起、从不完成。 就好像错过了中断、或者握手失去了时序一样。 如果当时我再向输入端口发送一个字符、这似乎是“启动“所有内容、并且数据完成。

问题:
1.你听说过这个问题吗?
2.代码中是否有让我能够启动数据流的沉思?

请告诉我。

感谢您的参与、
Everett Sykes

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 您是否听说过此问题?

    描述看起来像是之前发生的事情(如果您通过 e2e 搜索)、但如果没有更多详细信息、很难判断。 我认为此器件的 C 版本与我想的不同。  

    2. 在代码中、我能做什么来启动数据流?

    您能否为我提供初始化器件时设置的寄存器值?

    您还可以在卡滞事件期间验证所有寄存器吗?

    您是否还能验证正在接收的设备数据是否正确? (启动后)。 器件本身(所有 C 版本)有勘误表、但会导致组帧错误、而不是卡住情况。  

    - Bobby

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

    您好 Bobby、

    关于您的前两个问题:
    读取 quart 寄存器会有点棘手、因为挂机中涉及多个 UART、我不知道哪个是问题。 此外、当数据挂起时、我没有将调试器连接到装置。 因此、我必须设计这一个。

    关于您的第三个问题:
    一旦通过发送另一个字符来“踢“数据、数据看起来是正确的。 我没有看到任何损坏或丢失的字符。


    同时、我还有几个问题:

    简介:
    较旧的 ST16654 quart 和较新的 TL16C754 quart 之间的主要区别在于硬件中断电路。 在 Motorola 模式下使用时、之前的 ST16654 部件在每个 QUART 上都有一条低电平有效中断线路(用于所有 4 个 UART)。 仅使用 Intel 模式的全新 TL16C754 器件针对每个 UART 都有一个高电平有效中断(每个 QUART 上有四条线路)。 我们调整了电路来适应这一情况。 在大多数情况下都能正常工作。 我们有时只会在以菊花链形式将多个端口连接在一起时挂起。

    问题:
    1.听起来好像中断可能被错过了,所以数据正在等待,但 Linux 驱动程序永远不会因为没有发生新的中断而读取/写入。 如果我以某种方式检测到挂起并为涉及的 UART 重新启用所有中断、那么您认为它是否会重新启动数据? 我会在等待您的回答时尝试此操作。
    2.你能想到我能做什么来启动数据流吗?


    感谢您的参与、
    Everett Sykes

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我以某种方式检测到挂起并重新启用所涉及 UART 的所有中断、您认为它可能会重新启动数据吗? 我将在等待您的回答时尝试此操作。

    您是指写入 MCR[3]吗? 我的猜测是,这可能不会做任何事情,但同时它不会伤害尝试。 如果出现问题、可能存在与器件在 IRx 引脚上进入高阻抗状态相关的某种问题。  

    2. 您能想到我还能做什么来启动数据流吗?

    我想知道是否可能在生成中断的同时清除中断。 不过、这个问题很难弄清、也许我们可以探测中断引脚(我们认为该引脚正在生成和清除)、然后看到状态从低电平快速变为高电平、然后再恢复为低电平。 也许通过将触发器设置为低于某个位周期可以帮助我们捕捉到这一点、但根据您所描述的内容、我们不知道哪个信道正在执行此操作。  

    您是否使用任何触发级别功能? 也许我们可以轮询 RXRDY、检查数据是否仍在其中一个接收通道中。

    - Bobby

    编辑:请注意,我将离开办公室,直到下周的星期二。 很抱歉耽误您的时间!