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.

[参考译文] AM625:am625:UART RS485内核6出现问题

Guru**** 2551110 points
Other Parts Discussed in Thread: AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1295712/am625-am625-problem-uart-rs485-kernel-6

器件型号:AM625

您好!

我将使用内核为6.1.33的新 SDK 09.00.00.03 (2023年7月17日)。 
我在使用 RS485等 UART 时遇到问题。 

8250_omap.c 驱动程序似乎不提供支持。

您是否确认此信息? 是否有补丁包含支持?


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

    尊敬的 Domenico:

    我已将您的问题分配给我们的专家。 作为感恩节周、回复将在他们返回办公室时延迟。

    同时、我发现了这个其他问题、看看它是否有帮助:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1211082/am625-rs485-issue

    此致、

    苏伦

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

    尊敬的 Domenico:

    是的、RS485在 AM625的 SDK9.0中受支持。

    请提供问题的详细信息。

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

    您好!

    非常感谢您的回答。

    主要问题是如何将 UART 配置为 RS485。

    器件树节点如下所示:

    &wkup_uart0
    状态="可以"
    pinctrl-names ="默认"
    pinctrl-0 =<&wkup_uart0_pins_default>
    uart-has-rtscts;
    };

    我从 SYSFW 固件中禁用了 wkup_UART。

    使用 SDK 8.0的内核5.10.168、RS485可以正常工作、

    和 MODE 通过 IOCTL 由以下标志进行配置:

    /*不要忘记首先读取 ioctl 的 RS 至485选项的当前状态。
    如果不这样做、您将毁坏 rs485conf.delay_rts_last_char_tx
    该参数在您打开时由驱动程序自动计算
    设备。 */
    如果(ioctl (FD、TIOCGRRS485、&rs485conf)< 0)
    {
    printf ("错误:不支持 TIOCGRRS485 ioctl。\n");

    /*启用 RS 至485模式:*/
    rs485conf.flags |= SER_RS485_ENABLED;

    使用内核6时出现以下错误:

    错误:不支持 TIOCGRRS485 ioctl

    在驱动程序8250_omap.c 中、似乎缺少启用流控制的寄存器、

    而是出现在旧内核中:

    IF (RS485->FLAGS 和 SER_RS485_ENABLED)
    PRIV->MDR3 |= UART_OMAP_MDR3_DIR_EN;
    否则
    PRIV->MDR3 &=~UART_OMAP_MDR3_DIR_EN;

    我缺少什么吗?

    Br

    杜梅尼科·阿克里

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

    尊敬的 Domenico:

    priv->MDR3 |= UART_OMAP_MDR3_DIR_EN

    这用于原生 RS485 DE 引脚支持。 即使没有它、驱动器也应该能为 RS485工作。

    您是否使用内核6.1头文件重新编译了 UART 程序? "struct rs485"已经从内核5.10更改为6.1、因此您的用户空间程序应该使用相应的内核头进行重新编译。