工具/软件: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、但没有任何变化。
所以我不知道会出现什么问题。
请帮帮我。
谢谢你。