PRU Module Interface
319
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Programmable Real-Time Unit Subsystem (PRUSS)
13.4 PRU Module Interface
13.4.1 Event Out Mapping (R31): PRU System Events
PRU Event Interface directly feeds pulsed event information out of the PRU’s internal ALU. This provides
the interface logic between the PRU R31 event_out[5:0] and the system interrupts for the PRUSS Interrupt
controller(INTC).
Bits
Name
Description
31-6
Reserved
5
pruX_vec_valid
Valid strobe for vector output
4-0
pruX_vec[4:0]
Vector output
Writing a ’1’ to pruX_vec_valid (R31 bit 5) simultaneously with a channel number from 0 to 31 written to
pruX_vec[4:0] (R31 bits 4:0) creates a pulse on the output of the appropriate de-multiplexer output. For
example, writing ’100000’ will generate a pulse on demux channel 0, writing ’100001’ will generate a pulse
on demux channel 1, ... writing ’111111’ will generate a pulse on demux channel 31, and writing ’0xxxxx’
will not generate any pulse on the demux output. The demultiplexed values from both of the PRUs are
logically ORed together. The composite demultiplexed output channels 0 through 31 are connected to
system interrupts 32 through 63 respectively.
This allows the PRU to assert one of the systems interrupts 32-63 by writing to its own R31 register. The
system interrupt is used to either post a completion event to one of the host CPUs (ARM, DSP) or to
signal the other PRU. The host to be signaled is determined by the system interrupt to interrupt channel
mapping (programmable). Refer to
for more details.
13.4.2 Status Mapping (R31): Interrupt Events Input
The PRU Real Time Status Interface directly feeds information into register 31(R31) of the PRU’s internal
register file. The firmware on the PRU uses the status information to make decisions during execution.
The status interface is comprised of signals from different modules inside of the PRUSS which require
some level of interaction with the PRU. More details on the Host interrupts imported into bit 30 and 31 of
register R31 of both the PRUs is provided in the chapter 3, PRUSS Interrupt Controller (INTC).
Bits
Name
Description
31
pru_intr_in[1]
PRU Interrupt 1 from INTC
30
pru_intr_in[0]
PRU Interrupt 0 from INTC
29-0
pruX_r31_status[29:0]
Status inputs from primary input
13.4.3 General Purpose Inputs (R31)
The pruX_r31_status[29:0] are mapped out of the PRUSS and are brought out as general purpose input
pins. The values input to the pins "pruX_R31[29:0]" are reflected in the R31 register on bits [29:0] to be
used by the program running on the PRU. Each PRU of the PRUSS has a separate mapping to pins, so
that there are 60 total general purpose inputs to the PRUSS.
13.4.4 General Purpose Outputs (R30)
The pruX_r30[31:0] bits are exported out of the PRUSS and are brought out as general purpose output
pins. The values written to register R30 will be reflected on the general purpose output pins
"pruX_R30[31:0]" to be used by the program running on the PRU. Each PRU of the PRUSS has a
separate mapping to pins, so that there are 64 total general purpose outputs from the PRUSS.