主题中讨论的其他器件:Profibus
您好、TI 专家!
AM243X 有两个 PRU 子系统、其中一个有6个 RSIC 内核。 如果我需要对6个内核进行编程、以实现自定义功能、例如 UART。
如何设计 AM243X 芯片物理引 脚到自定义功能引脚的映射。
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.
您好
表6-1说明了 AM243x 的引脚映射。 添加了默认引脚属性。
https://www.ti.com/lit/ds/symlink/am2434.pdf
此致
卡兰
Karan、您好!
正如我所知、一个 PRU-ICSSG 有2个 PRU/2PRU_PRU/2TX_PRU、而 AM243X 每个 PRU-ICSSG 有40个 PRGx_PRUx_GPOxx PIN (20个用于内核 PRU0/20用于内核 PRU1)。现在我想使用每个 RSIC 进行 UART 定制、总共6个 UART。
对于硬件设计、我的问题是如何将 PRGx_PRUx_GPOxx 引脚与定制 UART 固件函数相匹配?
PRGx_PRUx_GPOxx 引脚是否可由软件程序分配?
您好、Aiden:
我支持 PRU、但不支持 AM243x。 我将从 PRU 方面提供一些看法。
PRU_ICSSG 实例中包含什么内容?
每个 PRU_ICSSG 实例包含6个内核(每个"切片" 3个内核)、但这些内核中的每个内核不一定具有对处理器引脚的访问权限。 通常客户将使用 PRU 内核来发送和接收进出处理器引脚的信号、并使用 RTU 内核(无法访问外部引脚)来回移动数据和执行计算等。 TX_PRU 内核可更灵活、具体取决于用例。 因此、您通常会有多个内核一起在同一个软件上运行。
每个 PRU_ICSSG 实例还包含1个硬件 UART 实例。 有关哪些外设位于哪些 PRU 子系统中的更多信息、请参阅应用手册 https://www.ti.com/lit/sprac90
理论上可以通过两种不同的方法来执行 PRU UART:
1) 1)使用硬件 UART 实例。 它的行为与电路板上的任何其他 UART 外设类似、因此可以通过 PRU 内核或 R5F 等外部内核进行控制。
我不确定我们是否为 AM243x/AM64x 编写了一个驱动程序、以便让 R5F 内核能够控制 PRU 实例、但我可以指向我们在较旧器件上执行此操作的 RTOS 和 Linux 代码。
2) 2)使用 PRU 内核来模拟 UART (或多个 UART 实例)。 这称为"软 UART"。
我想我们还没有为 AM243x/AM64x 编写"soft UART"代码、但您可以在本 AM335x 文档中找到有关该概念 的更多信息:https://software-dl.ti.com/processor-sdk-linux/esd/docs/06_03_00_106/AM335X/linux/。Foundational_Components_ U-ICSS_PRU_ICSSG.html#PRU-ICSS-SOFT-UART
请根据这些信息澄清您是否在寻找特定内容。
此致、
尼克
您好、Aiden:
我将提供有关如何在以前的器件上实现软 UART 的一般信息、然后我的团队成员会跟进 TI 当前提供的软件(如果有)
1个 PRU 内核和1个软件 UART 实例之间没有一一对应的映射。 由于 PRU 内核通过 R30/R31寄存器直接读取和写入 PRU GPI/PRU GPO 信号、因此"每个 PRU 内核的最大软件 UART 数量"的限制实际上归结为您可以执行多少个 PRU 汇编指令、同时仍满足 UART 协议的时序要求。
在 AM335x (每个 PRU-ICSS 2个 PRU 内核、其中 PRU 内核以200MHz 运行)上、每个 PRU 内核最多可支持3个软件 UART 实例、或总共支持6个软件 UART 实例。
有关 AM335x RTOS 和 Linux PRU 软件 UART 实现的文档、请参见:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/890322/beaglebk-soft-uart/3292657#3292657
AM335x PRU 软件 UART 实现的 PRU 固件源代码如下所示:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1039445/processor-sdk-am335x-iso7816-on-pru-of-am335x/3859860#3859860
从 SDK 9.1开始、我们尚未将 PRU 软 UART 实现移植到 AM62x (PRUSS)或 AM64x (PRU_ICSSG)、至少是从 Linux 端移植。
未来的读者、如果您想了解 AM62x 上 PRU 软 UART 的状态、请 在提问时参考 PROC_SOC-3700。 我不知道对于 Linux A53或 RTOS R5F、目前有将 PRU Soft UART 连接到 AM64x 的要求。
此致、
尼克
您好、Aiden:
我先解释一下 AM243x 器件上的各种 UART 选项。
可以使用以下 UART:
1. SDK 中包含驱动程序的设备上的标准 UART。 这仅限于10 MHz、没有电机应用所需的实时触发器。
2. ICSS_G 硬件 UART,最初用于 ICSS_G IP 的低延迟12Mbit Profibus 通信
3. PRU 软件 UART,使用 PRU GPIO 来模拟 UART。 这通常用于较旧的器件(AM335x)以获得额外的标准 UART。
4. ICSS_G 3外设接口可用于实现串行接口、包括 UART、已知编码器协议(HDSL、ENDAT、Tamagawa、BiSS)或具有线路代码的定制串行接口。 它支持时间触发的启动和更高的数据速率、例如25Mbit。
当您在请求6个 UART 时、我建议使用3个外设接口、每个 ICSS_G 实例切片都提供了该接口。 还有一个具有 Tamagawa 接口的 SDK 示例、该接口使用3个外设接口作为 UART。
AM243x TRM 表6-422中介绍了引脚映射。 外设 I/F 的 PRU GPI/GPO 信号和配置。
请注意、 表6-391中也显示了另一个引脚映射。 PRU_ICSSG I/O 信号、由 ICSSG_SA_MX_REG [7] G_MUX_EN 寄存器进行控制。 您不能将这两种设置的信号混用。
下面是使用 G_MUX_EN=0时的默认引脚映射在 ICSS_G0上为6个 UART 分配的示例引脚。
-托马斯