
Byte Count
per Line
Memory
Window
Address
Line Offset
Address
…
Line 2
Line 1
Line N
N = Line Count
uPP Data Buffer
Other Memory
Architecture
1541
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Universal Parallel Port (uPP)
Figure 32-8. Structure of DMA Window and Lines in Memory
Certain values of the line offset address have special implications on the structure of the data buffer:
•
Line Offset Address = Byte Count
– Data buffer is a contiguous block in memory with size equal to
(Line Count) × (Byte Count).
•
Line Offset Address = 0
– Data buffer consists of a single line, with total size equal to Byte Count. If
the I/O channel is configured in transmit mode, this line is transmitted (Line Count) consecutive times
before the DMA transfer completes. If the I/O channel is configured in receive mode, the buffer is
repeatedly written and overwritten by incoming data.
To program a DMA transfer, write the appropriate fields in the DMA channel descriptor registers, UPID
n
for DMA Channel I or UPQD
n
for DMA Channel Q. If the associated I/O channel is initialized and idle, the
DMA transfer and I/O transaction begins immediately.
describes a step-by-step process for
configuring the I/O and DMA channels and starting a uPP transfer.
Each DMA channel allows a second descriptor to be queued while the previously programmed DMA
transfer is still running. The UPxS2.PEND bit reports whether a new set of DMA parameters may be
written to the DMA descriptor registers. Each DMA channel can have at most one active transfer and one
queued transfer. This allows each I/O channel to perform uninterrupted, consecutive transactions across
DMA transfer boundaries.
The internal DMA controller does not support automatically reloading DMA transfer descriptors. Each
successive descriptor set must be explicitly written to the UPxD
n
registers by software.
All uPP interrupt events originate in the internal DMA controller.
lists and explains all uPP
interrupt events.
The internal DMA controller always writes data in bursts of 64 bytes. However, DMA read operations have
configurable burst size, which may be set per channel using the RDSIZEI and RDSIZEQ bits in the uPP
threshold configuration register (UPTCR). A DMA channel waits until the specified number of bytes leaves
its internal buffer before performing another burst read from memory.
Note that the TXSIZEA and TXSIZEB bits in UPTCR are not DMA parameters; instead, they control
transmit thresholds for the uPP interface channels.