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.

[参考译文] AM62L-PROCESSOR-SDK:在 wkup_uart0上配置和测试 RS232 (AM62L)问题

Guru**** 2393725 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1493501/am62l-processor-sdk-issue-configuring-and-testing-rs232-on-wkup_uart0-am62l

器件型号:AM62L-PROCESSOR-SDK

工具与软件:

尊敬的 TI 支持团队:

我使用 TI AM62L3处理器、并尝试将wkup_uart0其配置为 RS232接口。 虽然其他 UART (rs485 (ttys#)、data UART (ttyS1/4)工作正常、但wkup_uart0未检测到 RS232 ON。 我已尝试wkup_uart0通过两种方式启用:

  1. 正在修改 arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi–我设置status = "okay",分配必要的时钟,并确保正确的中断配置。 但是、进行这些更改后、UART 不会出现在中/dev/ttyS*、也dmesg | grep -i tty不会列出wkup_uart0。 此外,我注意到损坏的引导日志与未知的符号重复,即使没有内核恐慌。

  2. wkup_uart0特定于电路板的器件树中的启用(k3-am62l-<board>.dts) –同样的问题仍然存在。 仍然未检测到 UART、并且引导日志损坏保持不变。

电路板上的其他 UART 接口正常工作、我已经验证了时钟、中断和电源域设置。 您能否就wkup_uart0正确的器件树配置、必要的引脚多路复用设置以及任何其他测试方法(以确保正确初始化)提供指导? 此外、我希望能够深入了解启用后启动输出损坏的潜在原因wkup_uart0。 任何调试建议或需要进行的更改都会很有帮助。


&CBSS_WAKEUP{

目标模块@2b300050{

wkup_uart0{
引导全部;
pinctrl-names ="默认值";
pinctrl-0 =<&wkup_uart0_pins_default>;
状态="正常";
};
};
};

wkup_uart0_pins_default:wkup_uart0-default-pins{
PINCTL-SINGLE、PINS =<
AM62PX_MCU_IOPAD (0x0008、PIN_INPUT、0)/*(W23) WKUP_UART0_CTSN */
AM62PX_MCU_IOPAD (0x000c、PIN_OUTPUT、0)/*(W22) WKUP_UART0_RTSn */
AM62PX_MCU_IOPAD (0x0000、PIN_INPUT、0)/*(Y22) WKUP_UART0_RXD */
AM62PX_MCU_IOPAD (0x0004、PIN_OUTPUT、0)/*(AA23) WKUP_UART0_TXD */
>;
引导全部;
};

此致、
Dheeraj

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

    尊敬的 Dheeraj:

    下面是缺失的部分:

    [quote userid="640123" url="~/support/processors-group/processors/f/processors-forum/1493501/am62l-processor-sdk-issue-configuring-and-testing-rs232-on-wkup_uart0-am62l@target-module 2b300050 {

    wkup_uart0{
    引导全部;
    pinctrl-names ="默认值";
    pinctrl-0 =<&wkup_uart0_pins_default>;
    状态="正常";
    };

    目标模块@2b300050 是 wkup_uart0的父节点、在 k3-am62l-wakeup.dtsi 中被禁用。 因此、也必须启用父节点。

    diff --git a/arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi
    index e39fa3cd7ff2..72e7516208bd 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62l-wakeup.dtsi
    @@ -99,7 +99,7 @@ SYSC_OMAP2_SOFTRESET |
                    #address-cells = <1>;
                    #size-cells = <1>;
                    ranges = <0x0 0x00 0x2b300000 0x100000>;
    -               status = "disabled";
    +               status = "okay";
     
                    wkup_uart0: serial@0 {
                            compatible = "ti,am64-uart", "ti,am654-uart";

    但是、在当前 SDK11.0中启用 wkup_uart0后、将出现下方链接线程中所述的 MAIN_uart0问题。 请使用主题中提供的解决方案。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1492811/am62l-linux-a53-using-wkup_uart0-exception

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

    您好、Bin、

    感谢您分享此变通办法,这已经解决了我的问题。 如果您愿意分享为什么分配的时钟速率与 main_uart0发生冲突、对我来说会很有帮助。

    此致、
    Dheeraj K.

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

    尊敬的 Dheeraj:

    这是软件错误。 AM62Lx 上的所有 UART 模块都对 UART REFCLK 使用相同的 PLL 源、且 PLL 默认为96MHz。 现在、该 wkup_uart0 devicetree 会将 PLL 更改为48MHz、从而将控制台的波特率(MAIN_uart0)减半、从而使 PC UART 侧的接收混乱。

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

    您好、Bin、

    感谢您的解释。  

    此致、
    Dheeraj k