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.

[参考译文] AM263P4:高波特率下的 UART RTS 时序

Guru**** 2862330 points

Other Parts Discussed in Thread: AM263P4, THVD1400V

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1637767/am263p4-uart-rts-timing-at-high-baud-rate

器件型号: AM263P4
主题中讨论的其他器件: THVD1400V

尊敬的 Champs:

我正在寻求您对以下问题的建议。

AM263P4 可处理 5 个 RS485 网络。 每个网络以 6Mbps 的速率运行。

RS485 收发器为 THVD1400V。

按照 TRM、我认为我可以使用 RTS 信号来驱动收发器的 DE、RE 引脚。 但是、我在数据表中看不到 RTS 信号的时序规格、因此我不确定在该高波特率下有丢失位的风险(尤其是第 1 位和第 1 位)。

请提供建议。

此致、

Kien

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

    尊敬的 Kien:

    好问题—这是 6Mbps 时的真正时序问题。 让我来看看文档告诉我们什么并标记 A 收发器关键问题 主要的开关频率。


    首先需要澄清关键问题

    您如何在 THVD1400V 上进行 DE 和 RE 接线? 这一点非常重要、因为收发器的驱动器启用时间会发生变化 两个数量级 根据 RE 引脚状态:

    TX 启用期间的 RE 状态
    驱动器启用时间 (tPZH / tPZL)
    供电方
    RE = 0V(接收器保持启用状态)
    30ns(典型值)、 70ns(最大值)
    [1]
    RE = VIO(接收器被禁用)
    6µs 典型值、 13µs 最大值
    [1]

    在 6Mbps 时、位时间~167ns。 如果您通过单个 RS 信号(通用 RTS 接线)将 DE 和 RE 切换在一起、则可以使用 13µs 最坏情况下的启用时间将破坏前~78 位 —不仅仅是第一位。 这是您设计中的主要风险。


    AM263P4 UART RTS 时序

    AM263P4 UART 通过 RS [2][3]支持 RTS-485 方向控制。 以下是文档确认的内容:

    • RTS 在开始位生效 在停止位之后置为无效 和一个可编程的 TIMEGUARD 周期[4]
    • TIMGUARD 可配置(示例显示 3 个波特时钟周期)并在最后一个停止位之后扩展 RTS 保持、以防止过早改变方向[5]
    • 内置保护带延迟计数器确保收发器仅在 TX FIFO 和移位寄存器均为空且保护延迟已过去[6]后才切换到 RX 模式

    不过、 不记录相对于 TX 数据边沿的 RTS 显式交流时序规格(以纳秒为单位的设置/保持时间) 数据表或 TRM [7][8]中所述。 数据表指定了相对于波特时间[9]的 TX 脉冲宽度抖动为±2.2ns、UART 支持高达的值 12Mbps 使用 192MHz 功能时钟[10]、因此 6Mbps 在 UART 的能力范围内 — 但您需要确保功能时钟至少设置为 96MHz(不是默认的 48MHz、其容值为~3.7Mbps)[11]。


    建议

    请勿在单条 RTS 线路上将 DE 和 RE̅ Ω 连接在一起。 相反、请保留 RE̅ Ω 连接至低电平 (接收器始终启用)和仅驱动 DE 从 RTS 启动。 这将驱动器启用时间从 13µs 缩短至 70ns(最大值) [1]—以 6Mbps 的速率、远低于一位时间。 您将在 RX 上看到自己的传输、但这很容易在软件中处理。

    2.适当配置 TIMEGUARD。 驱动器禁用时间最大为 50ns [1]、驱动器传播延迟最大为 40ns [1]。 将 TIMGUARD 设置为至少 1–2 波特时钟周期、以确保停止位在 RTS 置为无效之前完全通过收发器传播。

    3.验证您的 UART 功能时钟。 在默认 48MHz 下、最大波特率仅为~3.7Mbps [11]。 您需要将时钟配置为≥μ s 96MHz(建议使用 192MHz 以 6Mbps 的速率进行 16 倍过采样)以达到 6Mbps [10]。

    4.使用范围进行验证。 由于数据表中未指定相对于第一个 TX 位的 RTS 设置时间、因此以 6Mbps 的速率测量硬件上的实际 RTS 至启动位时序、以确认收发器在第一个位到达总线上之前完全启用。


    底线

    RTS 机制将以 6Mbps 的速率进行方向控制、但是 仅当 RE̅ Ω 被保持低电平时 (不通过 DE 进行切换)。 如果您一起切换这两个引脚、THVD1400V 的 6–13µs 电荷泵启动将导致巨大的位损失。 在 RE̅ Ω 连接低电平时、70ns 的最大启用时间可在 167ns 位周期内提供足够的裕度、可编程的 TIMGUARD 负责处理尾端


    1. THVD1400V 数据表 — 开关特性
    2. AM263P TRM - UART RS RS-485 方向控制
    3. AM263P TRM - UART RS RS-485 自动流控制
    4. AM263P TRM - RS RS-485 RTS 时序和 TIMGUARD
    5. AM263P TRM — 保护频带延迟计数器
    6. AM263P TRM - TX FIFO/移位寄存器为空情况
    7. AM263Px 数据表 — UART 时序(无 RTS 交流规格)
    8. AM263P TRM - RTSn 引脚说明(无时序规格)
    9. AM263Px 数据表 — UART 开关特性
    10. AM263Px 数据表 — UART 最大波特率 12Mbps
    11. AM263P TRM - 48MHz 时钟最大值 3.6Mbps

    此致、

    Zackary Fleenor

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

    尊敬的 Fleenor:

    非常感谢您的详细回答。

    感谢您抽出时间解释事情并澄清事实。

    此致、

    Kien