Table 6-110 PRU_ICSSG PRU Timing
Requirements – Shift In Mode see Figure 6-92
NO. |
PARAMETER |
DESCRIPTION |
MIN |
MAX |
UNIT |
PRSI1 |
tw(DATAINH) |
Pulse duration, DATAIN
high |
2P(1) + 2 |
|
ns |
PRSI2 |
tw(DATAINL) |
Pulse duration, DATAIN
low |
2P(1) + 2 |
|
ns |
(1) P = Internal
shift in clock period, defined by PRUn_GPI_DIV0 and PRUn_GPI_DIV1 bit fields in
the ICSSG_GPCFGn_REG register. PRUn represents the respective PRU0 or PRU1
instance.
Table 6-111 PRU_ICSSG PRU Switching
Characteristics – Shift Out Mode see Figure 6-93
NO. |
PARAMETER |
DESCRIPTION |
MIN |
MAX |
UNIT |
PRSO1 |
tc(CLOCKOUT) |
Cycle time, CLOCKOUT |
10 |
|
ns |
PRSO2L |
tw(CLOCKOUTL) |
Pulse duration, CLOCKOUT
low |
0.475P(1)Z(2) - 0.3 |
|
ns |
PRSO2H |
tw(CLOCKOUTH) |
Pulse duration, CLOCKOUT
high |
0.475P(1)Y(3) - 0.3 |
|
ns |
PRSO3 |
td(CLOCKOUT-DATAOUT) |
Delay time, CLOCKOUT to DATAOUT
valid |
-1 |
4 |
ns |
(1) P =
Software programmable shift out clock period, defined by PRUn_GPO_DIV0 and
PRUn_GPO_DIV1 bit fields in the ICSSG_GPCFGn_REG register, where PRUn represents
the respective PRU0 or PRU1 instance.
(2) The Z
parameter is defined as follows, where PRUn represents the respective PRU0 or
PRU1 instance.
- If PRUn_GPI_DIV0 and
PRUn_GPI_DIV1 are INTEGERS -or- if PRUn_GPI_DIV0 is a NON-INTEGER and
PRUn_GPI_DIV1 is an EVEN INTEGER then, Z equals (PRUn_GPI_DIV0 *
PRUn_GPI_DIV1).
- If PRUn_GPI_DIV0 is a
NON-INTEGER and PRUn_GPI_DIV1 is an ODD INTEGER then, Z equals
(PRUn_GPI_DIV0 * PRUn_GPI_DIV1 + 0.5).
- If PRUn_GPI_DIV0 is an
INTEGER and PRUn_GPI_DIV1 is a NON-INTEGER then, Z equals (PRUn_GPI_DIV0
* PRUn_GPI_DIV1 + 0.5 * PRUn_GPI_DIV0).
- If PRUn_GPI_DIV0 and
PRUn_GPI_DIV1 are NON-INTEGERS then, Z equals (PRUn_GPI_DIV0 *
PRUn_GPI_DIV1 + 0.25 * PRUn_GPI_DIV0).
(3) The Y
parameter is defined as follows, where PRUn represents the respective PRU0 or
PRU1 instance.
- If PRUn_GPI_DIV0 and
PRUn_GPI_DIV1 are INTEGERS -or- if PRUn_GPI_DIV0 is a NON-INTEGER and
PRUn_GPI_DIV1 is an EVEN INTEGER then, Y equals (PRUn_GPI_DIV0 *
PRUn_GPI_DIV1).
- If PRUn_GPI_DIV0 is a
NON-INTEGER and PRUn_GPI_DIV1 is an ODD INTEGER then, Y equals
(PRUn_GPI_DIV0 * PRUn_GPI_DIV1 - 0.5).
- If PRUn_GPI_DIV0 is an
INTEGER and PRUn_GPI_DIV1 is a NON-INTEGER then, Y equals (PRUn_GPI_DIV0
* PRUn_GPI_DIV1 - 0.5 * PRUn_GPI_DIV0).
- If PRUn_GPI_DIV0 and
PRUn_GPI_DIV1 are NON-INTEGERS then, Y1 equals (PRUn_GPI_DIV0 *
PRUn_GPI_DIV1 - 0.25 * PRUn_GPI_DIV0) and Y2 equals (PRUn_GPI_DIV0 *
PRUn_GPI_DIV1 + 0.25 * PRUn_GPI_DIV0), where Y1 is the first high pulse
and Y2 is the second high pulse.