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.

[参考译文] TM4C129ENCPDT:用于 DE/RE 控制的 UART RS485 RTS ON 发送

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1483821/tm4c129encpdt-uart-rs485-rts-on-transmit-for-de-re-control

器件型号:TM4C129ENCPDT

工具与软件:

大家好!

我目前在使 UART 的 RTS 引脚在传输时激活时遇到一些困难(因此它可以驱动 RS485收发器的 DE/RE 输入)。 数据的实际 Rx 正常工作。

我将使用 UART3、并将引脚 PP4用于 U3RTS。 我已将引脚设置为输出、并已通过"UARTModemControlSet (UART3_base、UART_OUTPUT_RTS )"设置调制解调器控制。

当将该引脚作为 RTS/CTS 的常规流控引脚工作时、效果会很好、但由于某种原因、数据表的第19.3.6节中详细介绍的功能似乎不起作用



UART_CTL 寄存器设置了 UART_CTL_RTS 和 UART_CTL_RTSEN 未设置、我是否应该检查任何其他寄存器设置?

如果可能、我更不想在 Tx 中断中将该引脚作为 GPIO 引脚手动驱动。

非常感谢您的任何帮助!

此致、
Gerard。

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

    抱歉,这似乎已经被错误发布了两次->似乎无法找到删除此 副本的选项,如果任何 MOD 团队可以删除此帖子,这将非常感谢!

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

    您好!

     您可以尝试 UART0或 UART1吗? 据我在数据表中看到的一样、UART3支持流控制功能、但不支持调制解调器状态。  

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

    尊敬的 Charles:

    我尝试了 UART0、也没运气好。

    我认为调制解调器状态仅是 DSR/DTR/DCD 信号(Uart0/1独有)、而 RTS 是调制解调器流控的一部分、应该在 Uart0->4上提供。

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

    您好!

     请参阅此帖子、我认为会有所帮助。  

    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/888905/ccs-tm4c129encpdt-tiva-uart-libary-does-not-support-flow-control/3287757?tisearch=e2e-sitesearch&keymatch=modem%25252525252525252520rts#3287757

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

    尊敬的 Charles:

    这是否意味着在发送时作为 DCE/DTE、硬件流控不支持将 RTS 引脚置为有效、而输出(高电平或低电平)反映 UARTCTL 寄存器中 RTS 位的状态?

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

    为了增加上下文、我期望 TM4C 将发挥与 MSPM0的 UART 类似的功能、即:



    如果在 UARTCTL 寄存器中将 RTS 位置位、那么在发送期间 RTS 引脚不会被自动控制、这是不正确的假设吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="625429" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1483821/tm4c129encpdt-uart-rs485-rts-on-transmit-for-de-re-control/5703105 #5703105"]这是否意味着硬件流控制在传输时自动用作 DCE/DTE 时不支持 RTS 引脚置位、而输出(高电平或低电平)反映 UARTCTL 寄存器中 RTS 位的状态?[/QUOT]

    正如 Bob 在本文引用的文章中所提到的、硬件流控制仅是 CTS 和 RTS。 其它调制解调器控制信号必须由软件控制、通常在中断程序中进行控制。

    [报价 userid="625429" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1483821/tm4c129encpdt-uart-rs485-rts-on-transmit-for-de-re-control/5703120 #5703120"]为了增加上下文、我期望 TM4C 的工作方式与 MSPM0的 UART 类似、i.e:

    TM4C UART 和 MSPM0 UART 属于不同的 IP 模块。 但它们并不相同。  

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

    尊敬的 Charles:  

    我意识到它们是不同的模块、我仅举个例子、说明我希望 TM4C UART 在控制 RTS 引脚方面如何工作。

    我的假设是、UARTCTL 寄存器中的 RTS 位控制 RTS 引脚的硬件流控制使能(即在发送时生效、而不是在设置 RTSEN 时断言 Rx FIFO 是否已满、情况也是如此)、但它似乎只是直接控制 RTS 引脚的逻辑电平。

    Bob 提到、CTS/RTS 可用于硬件流控制、但我假设他只针对"正常"CTS/RTS 握手、而不是将 UART 作为连接至 RS -485收发器的 DCE 操作。


    在这种情况下、我似乎必须手动控制 RTS 引脚、因为我需要它在发送时生效、在发送完成后失效。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="625429" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1483821/tm4c129encpdt-uart-rs485-rts-on-transmit-for-de-re-control/5705735 #5705735"]Bob 提到 CTS/RTS 可用于硬件流控制、但我假设他的意思只是"正常"CTS/RTS 握手、而不是将 UART 作为连接至 RS -485收发器的 DCE 操作。


    在本例中、我似乎必须手动控制 RTS 引脚、因为我需要该引脚在发送时生效、在传输完成后失效。[/QUOT]

    尊敬的 Gerard:

     这也是我的理解。

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

    尊敬的 Charles:

    谢谢,不是理想的消息,但我可以想出一个解决办法。 感谢您的帮助。

    谢谢、
    Gerard