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:TXB 输出问题

Guru**** 2430620 points
Other Parts Discussed in Thread: TL16C754B, TL16C754C

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1538880/tl16c754c-txb-output-problem

器件型号:TL16C754C
主题:TL16C754B 中讨论的其他器件

工具/软件:

您好:

我们最近在一个 PCB 上更换了 TL16C754B 与 TL16C754C。  由于这两个寄存器之间没有任何变化、因此我们没有对固件进行任何更改(注意:我们不使用替代功能寄存器)。  在测试 PCB 时、我们发现 从 UART B 传输的数据存在问题。 我们对 TXA 和 TXB 的输出(以地为基准)进行了示波器捕获、如图所示、TXB 波形的频率比 TXA 波形高得多。  我们应该会看到在 TXA 和 TXB 上传输相同的波形。  TL16C754B 和 TL16C754C 之间是否有任何会影响 UART B 波特率发生器的变化?  是否有任何其他可能导致此问题的更改?

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

    尊敬的 McCabe:

    您的代码是否会写入 MCR 寄存器以用于两个 A/B 通道、用于设置预分频器?

    您是否能够读取 B 通道的 MCR 寄存器?

    - Bobby

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

    您好 Bobby、

    感谢您的回复!  是的、我们写入两个 A/B 通道的 MCR 寄存器。  另外、我想提供一些补充信息。  在前一个 PCB 上、我们将 INTSEL 引脚连接到 AT89C51ED2 P3.5 — 在新 PCB 上、由于 INTSEL 现在在 TL16C754C 内部上拉、这两个连接都保持开路。  在我们的代码中、我们仍然定义 INTSEL、因为我们没有对固件进行任何更改。  我们是否需要删除该 INTSEL 定义?  此外、由于移除了 INTSEL 引脚、为了使用 MCR 寄存器实现该功能、我们需要对固件进行哪些更改?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在新 PCB 上、由于 INTSEL 现在在 TL16C754C 内部上拉、因此这两个连接都保持断开。

    请注意、我们的器件表 1 指出此引脚在内部下拉(不上拉)。 您现在需要写入 MCR 来控制此情况。  

    另请注意、我上一个问题与 CLKSEL(引脚 21)有关。 我认为您看到的问题是、MCR7 在 CHA 和 CHB 之间有所不同、您可能会让其中一个将时钟除以 4、另一个除以 1、因此您最终会得到不同的 buad 速率。

    在我们的代码中、我们仍然定义 INTSEL、因为我们没有对固件进行任何更改。  我们是否需要删除该 INTSEL 定义?  此外、由于 INTSEL 引脚已被移除、为了使用 MCR 寄存器实现该功能、我们需要对固件进行哪些更改?

    如果需要 IRQ 输出、您应该能够写入 MCR3 并将其设置为 1。  

    访问 MCR3 只需要 LCR !=0b1011 1111

    如果需要访问 MCR7、则需要进行额外的更改以将 EFR4 设置为访问 MCR7。  

    - Bobby

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“284552" url="“ url="~“~/support/interface-group/interface/f/interface-forum/1538880/tl16c754c-txb-output-problem/5930551

    请注意、我们的器件表 1 指出此引脚在内部下拉(不上拉)。 您现在需要写入 MCR 来控制此情况。  

    另请注意、我上一个问题与 CLKSEL(引脚 21)有关。 我认为您看到的问题是、MCR7 在 CHA 和 CHB 之间有所不同、您可能会让其中一个将时钟除以 4、另一个除以 1、因此您最终会得到不同的 buad 速率。

    [/报价]

    啊、这更合理的做法是在内部下拉、同时、感谢 MCR3 对 IRQ 输出的响应。  至于预分频器 — 我们为 CHA 和 CHB 写入 MCR7、它们都设置为 1。  另外、我们写入 DLL 和 DLH — 还有没有其他东西可能影响波特率?  专门影响 UART B 的器件 。固件与 TL16C754B 一起工作正常。   

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

    此外、我们注意到、我们仅使用为 PCB 供电即可测量 TXA 和 TXB。根据数据表、TXN 在未发送数据时应为高电平。  TXA 上为逻辑高电平、但 TXB 上为逻辑低电平。  我们还测试了未刷写的卡、按预期在 TXA 和 TXB 上测得逻辑高电平。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ]会特别影响 UART B 的内容 。固件确实能与 TL16C754B 配合使用。   [/报价]

    我记得一些从 B 到 C 的客户遇到了问题...  

    TL16C754C 具有包含 AFR(485 控制模式)的升级。 这会限制对 FCR 的访问 (LCR7 必须为 0)、而 B 版本没有此限制。 因此、当使用 B 固件从 B 迁移到 C 时、无法保证向后兼容性。 在这种情况下、有时客户会认为他们正在读取 IIR、但读取 AFR 或 EFR。

    我认为这不适合你,因为问题与 FCR/IIR 或 EFR/AFR 无关。

    TXN 在没有发送数据时应为高电平。  我们在 TXA 上为逻辑高电平、但在 TXB 上为低电平。

    这听起来、通道 B 上的 LCR 位 6 设置为“1",“,表明、表明它在总线上强制执行中断条件。 当 TXB 为低电平时、您能否读取 LCR CHB 来验证其内容?  

    - Bobby

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否可以进行寄存器读取并验证写入是否正确?

    我可以与电路板建立串行连接、但我们的命令相当有限(即只读取序列号和一些调试命令)。  我认为我们不能从那里读取寄存器 — 是否有任何其他方法可用于读取寄存器?

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

    我确认我们无法读取寄存器。

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

    尊敬的 McCabe:

    我确认我们无法读取寄存器。

    这使得调试变得有点困难、因为我们没有明确的方法来真正验证是否像我们预期的那样接受写入。

    是否有其他方法可用于读取寄存器?

    我认为的唯一另一种方法是手动操作、如果在初始化 tri 器件后无法将处理器设置为 UART 状态、这可能无法实现。 这也需要一些时间、并且可能需要在接口引脚上连接一根蓝线。  

    您是否可以探测 CLKSEL 引脚并查看其是否发生变化?

    您是否还可以在同一范围内包含#RESET 引脚、并查看在切换#RESET 时 CLKSEL 是否处于不同的状态?

    (我们还需要验证 RESET 引脚是否被切换)

    对我来说唯一有意义的是、预分频器不是它应该是的值、或者 DLL/DLH 不是写入值(或两者)、但我倾向于预分频器。 如果您的代码不写入 MCR7、或者写入了、但出于某种原因、会在之后切换 RESET、这可能是其原因所在。  

    - Bobby

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid=“284552" url="“ url="~“~/support/interface-group/interface/f/interface-forum/1538880/tl16c754c-txb-output-problem/5943097

    您是否可以探测 CLKSEL 引脚并查看其是否发生变化?

    您是否还可以在同一范围内包含#RESET 引脚、并查看在切换#RESET 时 CLKSEL 是否处于不同的状态?

    (我们还需要验证 RESET 引脚是否被切换)

    [/报价]

    我将查看这些内容并返回给您 — 与此同时,我在 MCR7 上有一个快速问题:

    如果您的代码不写入 MCR7、或者它写入了、但出于某种原因、会在之后切换重置、这可能会解释这一点。  [/报价]

    如果我们没有写入 MCR7、不是默认将预分频器设置为 1 吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我们没有写入 MCR7、不会默认将预分频器设置为 1?

    那么您是对的。 应该如此。

    在有些情况下、我不能 100%确定是否会:

    可能不良的上电复位 (POR)(例如上电前斜升太慢或斜升或欠压太快)可能会导致 内部寄存器达到意外值。

    意外的噪声/电压耦合到 CLKSEL 或非单调复位边沿。  

    - Bobby