SPRADU2 August   2026 AM625

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Introduction to TI PRU
    2. 1.2 Application Background and Industrial Requirements for High‑Speed UART
    3. 1.3 Technical Challenges of 12Mbps High‑Speed UARTs
  5. 2Design and Implementation of PRU‑Based High‑Speed UART Communication System
    1. 2.1 UART Low‑Level Physical‑Layer Design
    2. 2.2 Implementation of Multi‑Channel High‑Speed UART by PRU Software Using the PEFIF Interface
    3. 2.3 Design of Application-Layer Driver for UARTs on ARM Linux
  6. 3Experimental Verification of High‑Speed UARTs
    1. 3.1 Bare‑Metal Experiment of High‑Speed PRU UART
    2. 3.2 High‑Speed PRU UART Application Based on Linux
  7. 4Conclusion
  8. 5References

Introduction to TI PRU

The block diagram of the PRU (Programmable Real‑Time Unit) on TI SoCs is shown in Figure 1-1. The PRU is a RISC core specifically designed for hard real‑time, low‑latency control. It guarantees deterministic timing at the physical boundary through its pipeline‑free single‑cycle execution mechanism and direct pin‑mapping architecture.

 AM62x PRU‑ICSS Functional Block DiagramFigure 1-1 AM62x PRU‑ICSS Functional Block Diagram

In actual industrial applications, systems often need to interface with external devices that do not use standard protocols. For interfaces with special timing requirements that the SoC may not be able to connect to directly, the traditional approach is to use an FPGA to achieve high‑bandwidth communication between the SoC and the special‑timing peripheral. However, because Sitara processors include a PRU (programmable real-time unit) core internally, there is no need to add an FPGA, ASIC, CPLD, or similar device in such cases. Another approach is to use an MCU's GPIO pins for simulation; however, using an MCU core to toggle GPIO pins has fundamental drawbacks. Compared to an FPGA, a standard MCU exhibits higher latency and lower determinism when interacting with GPIOs. When software is used to control GPIO toggling, the achievable frequency and precision are severely limited by internal bus latency, making it impossible to meet the requirements for duty‑cycle control and precise timing control.

The PRU system contains 32 32‑bit registers, two of which are dedicated to GPIO functions. One register is directly connected to the General‑Purpose Output (GPO) signals; writing to this register toggles the GPO signals. The other register is directly connected to the General‑Purpose Input (GPI) signals; reading this register reads the GPI signals. With this design, there is a direct connection from the PRU to the actual GPIO pins, and the performance of both input and output signals is improved. The PRU has instructions that pause program execution until a GPI event occurs, enabling optimal‑latency output response upon detection of an input trigger. The PRU can thus achieve fully deterministic timing relationships between a single input and output, as well as among multiple input or multiple output signals. This highly deterministic physical‑layer communication is decoupled from the complex, non‑real‑time upper‑layer operating system. At a 333MHz core frequency, the single‑cycle GPIO execution precision is controlled to 3ns, and the interrupt‑response cycle can be controlled to 6ns. In addition, the PRU core integrates an innovative Broadside Interface, which breaks the traditional word‑by‑word read bottleneck of general‑purpose CPUs. This interface allows the PRU to achieve parallel bulk‑data throughput of up to 124 bytes with local hardware accelerators in a single clock cycle. Furthermore, each PRU core is equipped with 2kB of dedicated Broadside RAM. This memory is mounted to the same dedicated Broadside bus, providing access speeds equivalent to shared memory while also guaranteeing zero bus contention during multi‑core concurrency through physical isolation.

The above description applies to all Sitara processors with a PRU subsystem, including the AM243x, AM263x, AM335x, AM437x, AM57x, AM62x, AM64x, and AM65x. TI processors include various PRU subsystems such as PRU‑ICSS, PRU‑ICSSG, and PRUSS. This document focuses primarily on the PRUSS for the AM625 series. For specific differences among each PRU subsystem, please refer to the following document: PRU-ICSS Feature Comparison (Rev. H). The high‑speed UART implementation described in this document is based on PRUSS and can, in theory, be directly ported to other PRU subsystems.