Architecture
1540
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Universal Parallel Port (uPP)
Table 32-3. DATA and XDATA Pin Assignments to Channels A and B According to Operating Mode
uPP Channel Control Register (UPCTL) Bit
Assigned Channel
CHN
IWA
IWB
DATA[15:8]
DATA[7:0]
XDATA[15:8]
XDATA[7:0]
0
0
x
—
A[7:0]
—
—
0
1
x
A[15:8]
A[7:0]
—
—
1
0
0
B[7:0]
A[7:0]
—
—
1
0
1
B[7:0]
A[7:0]
B[15:8]
—
1
1
0
B[7:0]
A[7:0]
—
A[15:8]
1
1
1
B[7:0]
A[7:0]
B[15:8]
A[15:8]
32.2.3 Pin Multiplexing
Extensive pin multiplexing is used to accommodate the largest number of peripheral functions in the
smallest possible package. Pin multiplexing is controlled using a combination of hardware configuration at
device reset and software programmable register settings. To determine how pin multiplexing affects the
uPP peripheral, see your device-specific data manual.
32.2.4 Internal DMA Controller Description
The uPP peripheral includes an internal DMA controller separate from any device-level DMA, such as
EDMA. The internal DMA controller consists of two DMA channels, I and Q, which move data to/from the
uPP peripheral interface (I/O) channels in all operating modes. This section describes how to program the
internal DMA channels.
32.2.4.1 DMA Programming Concepts
The uPP internal DMA controller uses a simplified programming model similar to 2D transfers performed
by the EDMA (see the
Enhanced Direct Memory Access (EDMA3) Controller
chapter for more
information). Each DMA channel may be configured with four parameters: window address, byte count,
line count, and line offset address.
shows a typical DMA window defined by these parameters.
•
Window Address
(UPxD0.ADDR) – The location in memory of the first byte in the data buffer. When
the uPP operates in receive mode, the DMA channel begins writing to this address as it takes incoming
data from the uPP I/O channel. When the uPP operates in transmit mode, the DMA channel begins
reading from this address and pass the data to the uPP I/O channel. The window address can reside
in any available memory space (including EMIF), but it must be aligned to a 64-bit boundary (that is,
the 3 LSBs must equal 0). Nonaligned addresses are automatically adjusted to a properly aligned
value when written to UPxD0.
•
Byte Count
(UPxD1.BCNT) – The number of bytes per line. The byte count must be an even number.
•
Line Count
(UPxD1.LNCNT) – The number of lines per window. The total number of bytes transferred
equals B × L, where B is the byte count per line and L is the line count.
•
Line Offset Address
(UPxD2.LNOFFSET) – The offset address between the first byte in successive
lines. The line offset address cannot exceed 65528 (FFF8h) bytes, and must be aligned to a 64-bit
boundary in memory (that is, the 3 LSBs must equal 0).