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.

[参考译文] Linux/AM5728:PRU UART 问题

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/596138/linux-am5728-pru-uart-issues

器件型号:AM5728

工具/软件:Linux

大家好

我正在与 AM5728工业开发套件上的另一个外部器件开发 PRU UART 通信、但我遇到了一些问题。

(1)当我对 PRU 程序进行编码时、PRU 头文件和 AM572x Sitara 处理器技术参考手册之间存在不同的 bwtt。在 AM572X_TRM 中、PRUSS_UART 寄存器 PRUSS_UART_RBR_THR_register 应具有一个有效的地址字段数据[7:0]。它具有读取和写入功能、因此我应在相同的地址中读取和写入数据

TI-PROCESSOR-SDK-Linux-RT-am57xx-03.02.00.05/example-applications/PRU-ICSS-5.1.0/include/am572x_2_0/PRU_UART.h、没有 PRUSS_UART_RBR_THR_registers、并且只有一个 PRU_UART_BR_7_DRB_0_DRB_REBUR 寄存器和两个有效的 PRUSS_DRB_0_DRB_DRB_7数据字段在 PRUS_0_DRB_DRB_0_DRB_7中存在。

那么、我怎么做了? 它们为什么不同?

(2)根据 AM572X IDK EVM 硬件用户指南、扩展连接器 J21 #45引脚和#47引脚上有 AM57XX_PR1_UART0_TXD 和 AM57XX_PRU1_UART0_RXD 信号。当我 将这两个引脚分别连接到另一个器件 TX 和 Rx 引脚并 运行 PRU 程序时、我可以 定期从 PRU 写入数据  不读取任何数据。因此我使用 示波器来放大误差。当我从 PRU 写入数据时、电平会在0和3.3V 之间定期变化。但当我读取数据时、电平会被上拉并在2V 和3.3V 之间变化。我还发现 AM57XX_PRU1_UART0_RXD 的信号与 TXD 相同 但是、当我将数据从 PRU 写入另一个器件时、会出现延迟。我认为在 pinmux 上使用了错误的配置、并且我编辑 了 ti-processor-sdk-linux-rt-am57xx-evm-03.02.00.05/board-support/u-boot-2016.05+gitAUTOINC+6c5519b6fc-g6c5519b6fc/mux/board/amb/data/mux/h

const struct pad_conf_entry core_padconf_array_ess_am572x_idk[]={

(笑声)

-{VIN2A_D0、(M11 | PIN_INPUT)}、/* vin2a_d0.pr1_uart0_RxD */
-{VIN2A_D1、(M11 | PIN_OUTPUT)}、/* vin2a_D1.pr1_uart0_TXD *

+{VIN2A_D0、(M11 | PIN_INPUT 下拉)}、* vin2a_d0.pr1_uart0_RxD */
+{VIN2A_D1、(M11 | PIN_OUTPUT_PULLUP)}、* vin2a_D1.pr1_uart0_TXD */

(笑声)

并尝试  

const struct pad_conf_entry core_padconf_array_ess_am572x_idk[]={

(笑声)

-{VIN2A_D0、(M11 | PIN_INPUT)}、/* vin2a_d0.pr1_uart0_RxD */
-{VIN2A_D1、(M11 | PIN_OUTPUT)}、/* vin2a_D1.pr1_uart0_TXD *

+{VIN2A_D0、(M11 | PIN_INPUT_PULLUP)}、* vin2a_d0.pr1_uart0_RxD */
+{VIN2A_D1、(M11 | PIN_OUTPUT_PULLUP)}、* vin2a_D1.pr1_uart0_TXD */

(笑声)

并使用编译的 u-boot.img 和 MLO 重新编译 u-boot.using 编译 u-boot.img 以引导系统、但没有任何变化。

那么,为什么会出现这种情况, 我没有做什么配置?

(3 )我在 ti-processor-sdk-linux-rt-am57xx-evm-03.02.00.05/bin 中使用 create-sdcard.sh 创建 sdcard、当我插入 sdcard 并引导电路板时、内核挂起。attach 文件中有一些引导消息。我还重新编译内核和 u-boot、但没有任何变化。

所以我不知道会出现什么问题。

请帮帮我。

谢谢你。

e2e.ti.com/.../boot_5F00_message.doc

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Alex、

    无论 TRM 说什么关于问题1的寄存器定义、我都将遵循。 我正在尝试验证 include 文件为何与 TRM 定义不匹配、一旦我发现不匹配情况、就会得到纠正。

    我已向一位同事询问了问题2、并将在听到更多信息后在这里作出答复。

    在问题3中、您使用的 SD 卡似乎存在问题。 您能否尝试新的(可能速度更高) SD 卡并查看问题是否仍然存在? 我已连接成功的 dmesg 输出以进行比较。

    Jason Reeder

    /cfs-file/__key/communityserver-discussions-components-files/791/4834.dmesg.txt

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

    您好、Jason、

    感谢你的答复。

    我尝试使用另一个新的 SD 卡、但它不起作用。我还尝试了不同的计算机和不同的操作系统窗口来创建 SD 卡、但它仍然不起作用。

    当我使用 AM437X 的 cteate-sdcard.sh 创建 SD 卡映像时、它适用于 AM437X IDK。

    此致

    Alex

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

    尊敬的 Alex:

    对于问题2、您能否更详细地描述您的硬件设置?  您连接的其他器件 TX 和 Rx 引脚是什么?  这是同一 IDK 上的另一个 AM572x UART TXD 和 RXD 引脚吗?  如果是、哪个引脚?  或者您是否连接  到第二个 IDK 上的 AM57XX_PR1_UART0_TXD / RXD 引脚?  

    此外、您能否澄清以下陈述?  “我还发现 AM57XX_PRU1_UART0_RXD 的信号与 TXD 相同,但当我将数据从 PRU 写入另一个器件时会滞后。”  

    此致、

    Melissa

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

    您好、Melissa

    感谢你的答复。

    另一个设备是 FTDI 模块。我将 AM57XX_PRU1_UART0_TXD 和 AM57XX_PRU1_UART0_RXD 分别连接到 FTDI 模块的 RXD 和 TXD。FiDi 模块是 USB-UART 模块。我使用计算机上的 USB 控制 FTDI 模块。因此数据流为:PC->FTDI 模块-> AM57IDK。  

    我将示波器连接到 AM57XX_PRU1_UART0_TXD 和 AM57XX_PRU1_UART0_RXD。 当我从 AM57XX_PRU1_UART0_TXD 中写入一些数据信号时、我看到了 AM57XX_PRU1_UART0_RXD、该值应始终为高电平、 也会感应到具有滞后的同一信号。   

    此致、

    Alex

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

    您可以尝试卸下 IDK 上的 R575和 R574。 您是否仍然看到 AM57XX_PRU1_UART0_RXD 镜像 AM57XX_PRU1_UART0_TXD?

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

    Alex、

    您可以在 PRU-software-support-package 的主分支上找到更新的 PRU UART 头文件、网址为 :https://git.ti.com/pru-software-support-package/pru-software-support-package/blobs/master/include/am572x_2_0/pru_uart.h

    您正在从3.2.0.5 Linux RT SDK 创建新的 SD 卡、您的 IDK 无法启动、对吧? 您使用的是哪个版本的 IDK、因此我可以尝试复制此行为。

    Jason Reeder

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

    您好、Melissa

    感谢您的回复。

    我按照您的指南移除了 R575和5574、一切都正常!我可以接收数据、信号正常。

    感谢你的帮助。

    此致、

    Alex

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

    我使用了另一个 SD 卡、并使用了3.3.0.4 Linux RT SDK.I 的3.3.0.4版本 IDK 中的 create-card.sh。

    此致、
    Alex