ZHCADW7 March   2024 AM2434

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2实施
    1. 2.1 PRU 实施串行端口
    2. 2.2 PRU 实施并行端口
  6. 3验证
  7. 4总结
  8. 5参考文献

实施

没有灵活外部逻辑的微控制器可以使用软件,通过其通用输入/输出 (GPIO) 与外部器件进行通信,从而模拟协议或以特定波形驱动某些输出。CPU 内核和 GPIO 引脚之间以及管道之间存在像片上网络 (NOC) 这样的芯片基础设施。该模式从 CPU 的内部寄存器写入,通过 NOC 基础设施传输到达 GPIO。NOC 会对 GPIO 写入命令增加数十纳秒,甚至是数百纳秒的延迟和抖动。系统可能无法满足外设针对输出信号占空比的时序要求以及输出之间的关系。这些因素和其他因素结合起来,导致与 FPGA 相比,标准 MCU 在与 GPIO 交互时将具有更长的延迟和更低的确定性。

TI 的 PRU 内核是出色的定制 CPU,可以在 GPIO 读取和写入时实现极低的延迟和极高的确定性。PRU 内核内部有 32 个通用寄存器,两个寄存器直接连接到通用输出或输入,这意味着 PRU 内核可以在单个周期访问外部引脚。由于寄存器和引脚之间没有 NOC 电路,因此显著降低了从内核到处理器引脚的信号延迟。完全移除了由于信号路径引起的输出信号抖动。PRU 可提供出色的性能,同时不会丧失灵活性。

此应用仅关注 PRU_ICSSG。每个 PRU_ICSSG 实际上有六个内核,每个切片上有三个内核。因此,具有两个 PRU_ICSSG 子系统的 AM243x 或 AM64x 将总共具有 12 个内核。有关更多信息,请参阅 AM64x/AM243x 技术参考手册PRU_ICSSG 部分。

图 2-1 所示,通用寄存器 R30 和 R31 可直接布线到 PRU 的专用通用输入 (PRU GPI) 和通用输出 (PRU GPO)。可以通过读取 R31 寄存器来读取 PRU 的 GPI 信号和系统事件或中断,而 PRU 可以通过写入 R31 寄存器来发布系统事件。同样,对 R30 寄存器的写入操作会对专用 PRU GPO 引脚执行写入。

GUID-20230907-SS0I-WPJH-NMBH-PSFS0691CFVK-low.svg图 2-1 PRU GPIO 接口

PRU 实施了一个具有系统控制单元的增强型通用输入/输出 (GPIO) 模块,支持以下 GPI 和 GPO 模式:直接输入/输出、16 位并行采集、28 位串行移入/移出移位以及 MII_RT。表 2-1 详细说明了输入/输出模式。

表 2-1 PRU R30/R31 快速 GPIO 模式
模式 功能
直接输入/输出 GPI [19:0] 通过 R30 直接馈入 PRU R31 和 GPO [19:0] 输出
16 位并行采集 CLOCKIN 的正边沿或负边沿捕获 DATAIN [0:15]
28 位移入/移出 对 DATAIN 采样并移入 28 位移位寄存器。DATAOUT 通过 28 位移位寄存器移出

内部 PRU 寄存器文件的 PRUx_R31_status [0:19] 位映射到器件级通用输入引脚 (PRUx_GPI [0:19])。在 GPI 直接输入模式下,PRU0_GPI [0:19] 直接馈送到 PRUx_R31_status [0:19]。例如,指令“ldi R10.b0, R31.b0”可在单个 PRU 内核周期内将 PRUx_GPI [0:7] 通道上的数据移入 R10 的第一个字节。

GUID-20230907-SS0I-40DN-28VB-2C89HPNHK4Q4-low.svg图 2-2 PRU 直接输入和输出模式方框图

以下各节介绍了如何通过 GPIO 直接模式自定义串行和并行端口。对于串行端口,通过 GPO 引脚模拟数据传输,例如,GPO 引脚状态取决于数据寄存器的相应位。