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.

[参考译文] AM3354:UART RTS 作为 RS485方向控制和 RS232 RTS

Guru**** 2581345 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1162150/am3354-uart-rts-as-rs485-direction-control-and-rs232-rts

器件型号:AM3354

您好!

我们希望在 RS232模式下使用 UART1的'UART1_RTSn’引脚作为 RTS,在 RS485模式下使用方向控制引脚。

为此、我们按如下方式设置 DTB。

uart1_pins:pinmux_uart1_pins{
      pinctrl-single、pins =<
         0x178 (PIN_INPUT | MUX_MODE0)      /* uart1_CTSN.uart1_CTSN *
         0x17C (PIN_OUTPUT 下拉| MUX_MODE0)   /* uart1_rtsn.uart1_rtsn *
         0x180 (PIN_INPUT_PULLUP | MUX_MODE0)   /* uart1_Rxd.uart1_RxD *
         0x184 (PIN_OUTPUT 下拉| MUX_MODE0)   /* uart1_TXD.uart1_TXD *  
         0xFC (PIN_INPUT | MUX_MODE4)      /* mmc0_data0.uart1_ri *
         0xf8 (PIN_OUTPUT 下拉| MUX_Mode4)   /* mmc0_data0.uart1_dtr *
         0xf4 (PIN_INPUT | MUX_MODE4)      /* mmc0_data0.uart1_DSR *
         0xF0 (PIN_INPUT | MUX_MODE4)      /* mmc0_data0.uart1_DCD *
      >;
   };

uart1{(&U)
   pinctrl-names ="default";
   pinctrl-0 =<uart1_PINs>;
   状态="正常";
   RTS-GPIO =<&GPIO0 13 GPIO_ACTIVE_HIGH_>;
   RS485-RTS-高电平有效;
   RS485-RTS-DELAY =<2 1>;
   Linux、在引导时启用 RS485;    
};

当我们按此方式进行设置时,在 RS485模式下,方向控制(GPIO0 13) 切换将不会按预期进行。

 ‘M,如果 uart1_rtsn.uart1_rtsn 配置为“ode7”( 0x17C (PIN_OUTPUT 下拉| MUX_MODE7)   /* uart1_rtsn.uart1_rtsn *),RS485将按预期工作。 但是、此时 RS232 RTS 将不起作用。

是否有任何方法可以在不更改 DTB 的情况下从用户空间应用切换 RS232和 RS485模式?