EasyManuals Logo

Texas Instruments TMS320 2833 Series User Manual

Texas Instruments TMS320 2833 Series
868 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #504 background imageLoading...
Page #504 background image
Address Pointer and Transfer Control
www.ti.com
504
SPRUI07March 2020
Submit Documentation Feedback
Copyright © 2020, Texas Instruments Incorporated
Direct Memory Access (DMA) Module
Each DMA channel contains a shadowed address pointer for the source and the destination address.
These pointers, SRC_ADDR and DST_ADDR, can be independently controlled during the state machine
operation. At the beginning of each transfer, the shadowed version of each pointer is copied into its
respective active register. During the burst loop, after each word is transferred, the signed value contained
in the appropriate source or destination BURST_STEP register is added to the active SRC/DST_ADDR
register. During the transfer loop, after each burst is complete, there are two methods that can be used to
modify the active address pointer. The first, and default, method is by adding the signed value contained
in the SRC/DST_TRANSFER_STEP register to the appropriate pointer. The second is via a process
called wrapping, where a wrap address is loaded into the active address pointer. When a wrap procedure
occurs, the associated SRC/DST_TRANSFER_STEP register has no effect.
Address wrapping occurs when a number of bursts specified by the appropriate SRC/DST_WRAP_SIZE
register completes. Each DMA channel contains two shadowed wrap address pointers, SRC_BEG_ADDR
and DST_BEG_ADDR, allowing the source and destination wrapping to be independent of each other.
Like the SRC_ADDR and DST_ADDR registers, the active SRC/DST_BEG_ADDR registers are loaded
from their shadow counterpart at the beginning of a transfer. When the specified number of bursts has
occurred, a two part wrap procedure takes place:
The appropriate active SRC/DST_BEG_ADDR register is incremented by the signed value contained in
the SRC/DST_WRAP_STEP register, then
The new active SRC/DST_BEG_ADDR register is loaded into the active SRC/DST_ADDR register.
Additionally the wrap counter (SRC/DST_WRAP_COUNT) register is reloaded with the
SRC/DST_WRAP_SIZE value to setup the next wrap period. This allows the channel to wrap multiple
times within a single transfer. Combined with the first bullet above, this allows the channel to address
multiple buffers within a single transfer.
The DMA contains both an active and shadow set of the following address pointers. When a DMA transfer
begins, the shadow register set is copied to the active working set of registers. This allows you to program
the values of the shadow registers for the next transfer while the DMA works with the active set. It also
allows you to implement Ping-Pong buffer schemes without disrupting the DMA channel execution.
Source/Destination Address Pointers (SRC/DST_ADDR)— The value written into the shadow register
is the start address of the first location where data is read or written to.
At the beginning of a transfer the shadow register is copied into the active register. The active
register performs as the current address pointer.
Source/Destination Begin Address Pointers (SRC/DST_BEG_ADDR)— This is the wrap pointer.
The value written into the shadow register will be loaded into the active register at the start of a
transfer. On a wrap condition, the active register will be incremented by the signed value in the
appropriate SRC/DST_WRAP_STEP register prior to being loaded into the active SRC/DST_ADDR
register.
For each channel, the transfer process can be controlled with the following size values:
Source and Destination Burst Size (BURST_SIZE): This specifies the number of words to be
transferred in a burst.
This value is loaded into the BURST_COUNT register at the beginning of each burst. The
BURST_COUNT decrements each word that is transferred and when it reaches a zero value, the
burst is complete, indicating that the next channel can be serviced. The behavior of the current
channel is defined by the ONE_SHOT bit in the MODE register. The maximum size of the burst is
dictated by the type of peripheral. For the ADC, the burst size could be all 16 registers (if all 16
registers are used). For a McBSP peripheral, the burst size is limited to 1 since there is no FIFO
and the receive or transmit data register must be loaded or copied every word transferred. For
RAM, the burst size can be up to the maximum allowed by the BURST_SIZE register, which is 32.

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Texas Instruments TMS320 2833 Series and is the answer not in the manual?

Texas Instruments TMS320 2833 Series Specifications

General IconGeneral
BrandTexas Instruments
ModelTMS320 2833 Series
CategoryController
LanguageEnglish

Related product manuals