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.

[参考译文] TM4C1290NCZAD:将 UART 接收中断 FIFO 深度设置与自动 RTS 线路控制分离

Guru**** 2465890 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/665834/tm4c1290nczad-separating-uart-receive-interrupt-fifo-level-setting-and-automatic-rts-line-control

器件型号:TM4C1290NCZAD

您好!

我注意到 UART 接收中断 FIFO 深度设置(UARTIFLS 中的 RXIFLSEL)似乎也控制着 RTS->CTS 线路在哪个点被停用。 即、当 RXIFLSEL 设为1/2时、中断在接收8个字节后生效、同时 RTS 线路变为无效、直到软件从 RX FIFO 读取一个字节。 如果我将设置更改为1/8、则两个事件都在接收2个字节后发生。

这意味着、在 RX FIFO 中断被置为有效与 ISR 开始执行并从 FIFO 读取一个字节之间的时间段内、RTS 始终会短暂地被禁用(即使 FIFO 中还有很多空间)。

如果检测到在 传输过程中 RTS->CTS 处于非活动状态,则通过 UART 与之通信的传感器将停止发送数据(并且在下一次测量准备就绪前不会恢复),因此我正在处理的设备会遇到一些问题。

是否可以配置 UART 接口、以便在 RTS 失效前生成几个字节的中断? 例如、当 RX FIFO 为1/2满时会产生中断、但只有在 RX FIFO 为7/8满后才会禁用 RTS?

我将非常感谢您的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为您不会获得硬件权变措施。 您需要在 SW 中自行控制它们、以实现不同的行为。 但是、您将无法将其插入 UART FIFO 中、但可能无法在中断和应用程序之间将其插入 SW FIFO 中。

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

    可能是 RTS 信号的"快速攻击-慢速衰减"(外部、硬件添加)-解析?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复 Robert。 我已经按照你的建议做了、但想仔细检查我是否错过了一些东西、或者是否有更好的方法来做。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是个好主意、但不幸的是、我无法更改硬件。