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.

[参考译文] AM5728:GP EVM UART 访问

Guru**** 2540720 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/601166/am5728-gp-evm-uart-access

器件型号:AM5728

我的团队正在使用 AM5728通用评估模块、并将用于 Linux 的处理器 SDK 用于我们的嵌入式应用开发。 我们的要求之一是通过 UART 接口与外部器件进行通信。 根据我在 AM572x 通用 EVM 硬件用户指南(请参阅以下链接)上阅读的一些文档、所有 UART 引脚似乎都位于扩展头(处理器模块上的 P16-P19)中、 而不是在处理器模块本身的任何位置进行细分以供访问。 例如、UART9引脚位于扩展连接器 P17中。

根据这一意见,我有两个问题:

  1. 德州仪器(TI)(或其他一些供应商)是否提供了可连接到连接器的扩展/分线板、从而使 UART 引脚能够进行访问、以及其他器件(如 SPI/GPIO)?
  2. 在适用于 Linux 的 Processor SDK 中、是否有办法为通用 UART 配置串行调试接头、而不是默认的串行控制台使用?

如果有一种详细记录的方法来解决上述第二个问题、我们更喜欢该选项(因为不需要额外的硬件)。  

谢谢、

Andrew

链接:

http://processors.wiki.ti.com/index.php/AM572x_General_Purpose_EVM_HW_User_Guide

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

    UART3 (调试 UART)在 P10上可用、但仅适用于 RX/TX 信号。 请参阅该主题以将其从默认值更改为 e2e.ti.com/.../2037780
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回答。

    我查看了定向论坛帖子、但我仍有几个问题。

    执行步骤1时。 根据 Yordan Kovachev 的建议、我被要求在 mux_data.h 中评论几行有关 UART3的内容 如果我将这些注释掉、这是否会禁用 UART3以供使用? 我们仍打算使用该 UART;我们的目标是仅在 stdout 禁用它(而不是将其切换到 UART2)。 如果我仍要执行此步骤、是否会在更改中运行"make u-boot"编译?

    步骤2. 对我来说、注释掉器件树中的"stdout-path"似乎会禁用 UART3作为控制台。 但是、我使用 的是使用 am57xx-EVM-reva3.dtb 的电路板、并且相关的.dts 文件没有提到像 am57xx-beagle-x15.dts 这样的"stdout-path"。


    谢谢、

    Andrew

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

    [报价]如果我注释掉这些内容、这是否会禁用 UART3以供使用?[/QUERT]
    不能、这不会禁用 UART3、它将更改引脚复用设置、而 uart3 Tx&Rx 引脚将不再在器件焊盘上进行多路复用。 这将使 uart3不可用(但不会禁用模块本身)、因为它的 TX/Rx 不会被复用。

    [引用]我们仍打算使用该 UART;我们的目标是仅在 stdout 禁用该 UART (不将其切换到 UART2)[/quot]
    在这种情况下、如果您仍想使用 UART3、则应将引脚多路复用器保留在 mux_data.h 中。

    [引用]如果我仍要执行此步骤、是否会在更改中运行"make u-boot"编译? [/报价]
    运行 make u-boot 将编译对 u-boot 源代码所做的所有更改。

    [引述]步骤2。 对我来说、注释掉器件树中的"stdout-path"似乎会禁用 UART3、因为控制台
    引导加载程序使用 stdout-path 来标识控制台、因此您的理解是正确的。

    [引用]但是、我使用的是使用 am57xx-EVM-reva3.dtb 的板、并且相关的.dts 文件没有提到"stdout-path"、如 am57xx-beagle-x15.dts。[/quot]

    在最新的 SDK 中、u-boot/arch/arm/dts/am57xx-beagle-x15.dts 用于所有 am57xx GP 器件。

    此外、如果您不想将 UART3用作控制台、则需要更改 include/configs/am57xx_evm.h 中定义的 CONSOLEDEV

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

    感谢您的回答、

    虽然我遵循了你的指示、但我仍然无法实现我的目标。 让我向您介绍我的确切流程:

    • 在 u-boot/arch/arm/dts/am57xx-beagle-x15.dts 中、我注释掉了整个代码块、因此不对 stdout 使用 uart3 (我不想对 stdout 使用任何东西!)

    选择{
      stdout-path = uart3;
    };

    • 在 u-boot/include/configs/am57xx_evm.h 内、我将 CONSOLEDEV 更改为"/dev/tty01、这样它被定义并且不会引发编译错误。 它最初是"/dev/tty02
    • 在顶级 u-boot 目录中、我运行了

    进行 u-boot

    制造

    • 我将生成的 u-boot.img 和 MLO 文件移到了 microSD 卡的引导分区
    • 我插入了卡、打开了板、并收到错误

    具体错误如下:

    DRA752-GP ES2.0

    尝试从 MMC1引导
    读取 args
    SPL_load_image_fat_os:读取图像参数时出错、错误--1
    正在读取 u-boot.img
    正在读取 u-boot.img
    正在读取 u-boot.img
    正在读取 u-boot.img

    只需重申一下、我想将电路板底部的引脚用于命令行界面以外的其他操作。 我将使用 SSH 通过以太网控制板。

    谢谢、

    Andrew

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

    您好!

    作为更新、这种方法似乎起作用(就像禁用串行控制台那样禁用调试端口而言)。 当我将"选择的标准输出"更改为&uart4并将 CONSOLEDEV 更改为/dev/ttyO3时、我在启动时不会遇到错误。

    但是、现在我似乎无法将调试端口用作一般的串行连接。 下面是我要做的:

    • 告诉 AM5728、我不想将 UART3/ttyS2/串行调试用作控制台。 而是将其用作通用 UART。
    • 打开 SSH 连接以登录并与电路板通信
    • 打开串行连接以回显字符
    • 通过串行连接传输字符、并在与 cat /dev/ttyS2的 SSH 会话中读取这些字符
    • 通过串行连接接收字符、方法是在 SSH 会话中使用回显"FF">/dev/ttyS2写入字符

    我是否采用了正确的方法来实现这一点? 这样做的主要原因是、我们希望避免构建使用其他 UART 之一的电路板。

    谢谢、

    Andrew