Spruft 2 A
Spruft 2 A
User's Guide
Preface ....................................................................................................................................... 4
1 Direct Memory Access (DMA) Controller ................................................................................ 7
1 Introduction ........................................................................................................................ 7
1.1 Purpose of the DMA Controller ........................................................................................ 7
1.2 Key Features of the DMA Controller .................................................................................. 7
1.3 Block Diagram of the DMA Controller ................................................................................ 8
2 DMA Controller Architecture ................................................................................................. 9
2.1 Clock Control ............................................................................................................. 9
2.2 Memory Map ............................................................................................................ 10
2.3 DMA Channels ......................................................................................................... 10
2.4 Channel Source and Destination Start Addresses ................................................................ 11
2.5 Updating Addresses in a Channel ................................................................................... 13
2.6 Data Burst Capability .................................................................................................. 14
2.7 Synchronizing Channel Activity to DSP Peripheral Events ....................................................... 14
2.8 Channel Auto-Initialization Capability ............................................................................... 15
2.9 Ping-Pong DMA Mode ................................................................................................ 15
2.10 Monitoring Channel Activity ........................................................................................... 16
2.11 Latency in DMA Transfers ............................................................................................ 17
2.12 Reset Considerations .................................................................................................. 17
2.13 Initialization ............................................................................................................. 18
2.14 Interrupt Support ....................................................................................................... 19
2.15 Power Management ................................................................................................... 19
2.16 Emulation Considerations ............................................................................................. 19
3 DMA Transfer Examples ..................................................................................................... 19
3.1 Block Move Example .................................................................................................. 19
3.2 Peripheral Servicing Example ........................................................................................ 21
3.3 Ping-Pong DMA Example ............................................................................................. 23
4 Registers .......................................................................................................................... 25
4.1 Source Start Address Registers (DMACHmSSAL and DMACHmSSAU) ...................................... 28
4.2 Destination Start Address Registers (DMACHmDSAL and DMACHmDSAU) ................................. 29
4.3 Transfer Control Registers (DMACHmTCR1 and DMACHmTCR2) ............................................. 30
Appendix A Revision History ...................................................................................................... 33
List of Figures
1 Conceptual Block Diagram of the DMA Controller ..................................................................... 8
2 Clocking Diagram for the DMA Controller ............................................................................... 9
3 Two-Part DMA Transfer .................................................................................................. 10
4 Registers for Controlling the Context of a Channel ................................................................... 11
5 Ping-Pong Mode for DMA Data Transfer ............................................................................... 15
6 Block Move Example ...................................................................................................... 21
7 Block Move Example DMA Configuration .............................................................................. 21
8 Servicing Incoming I2C Data Example ................................................................................. 22
9 Servicing Incoming I2C Data Example DMA Configuration .......................................................... 22
10 Servicing Incoming UART Data Example .............................................................................. 23
11 Servicing Incoming UART Data Example DMA Configuration ...................................................... 23
12 Servicing Incoming I2S Data Example in Ping-Pong DMA Mode ................................................... 24
13 Servicing Incoming I2S Data Example DMA Configuration .......................................................... 24
14 Source Start Address Register - Lower Part (DMACHmSSAL) ..................................................... 28
15 Source Start Address Register - Upper Part (DMACHmSSAU) ..................................................... 28
16 Destination Start Address Register - Lower Part (DMACHmDSAL) ................................................ 29
17 Destination Start Address Register - Upper Part (DMACHmDSAU)................................................ 29
18 Transfer Control Register 1 (DMACHmTCR1) ........................................................................ 30
19 Transfer Control Register 2 (DMACHmTCR2) ........................................................................ 30
List of Tables
1 DMA Controller Memory Map ............................................................................................ 10
2 Registers Used to Define the Start Addresses for a DMA Transfer ................................................ 11
3 Destinations/Sources That Support DMA Bursting ................................................................... 14
4 System Registers Related to the DMA Controllers ................................................................... 25
5 DMA Controller 0 (DMA0) Registers .................................................................................... 25
6 DMA Controller 1 (DMA1) Registers .................................................................................... 26
7 DMA Controller 2 (DMA2) Registers .................................................................................... 26
8 DMA Controller 3 (DMA3) Registers .................................................................................... 27
9 Source Start Address Register - Lower Part (DMACHmSSAL) Field Description ................................ 28
10 Source Start Address Register - Upper Part (DMACHmSSAU) Field Description ................................ 28
11 DMA Destination Start Address Register - Lower Part (DMACHmDSAL) Field Description .................... 29
12 DMA Destination Start Address Register - Upper Part (DMACHmDSAU) Field Description .................... 29
13 Transfer Control Register 1 (DMACHmTCR1) Field Description ................................................... 30
14 Transfer Control Register 2 (DMACHmTCR2) Field Descriptions .................................................. 31
15 Revision History ........................................................................................................... 33
Notational Conventions
This document uses the following conventions.
• Hexadecimal numbers are shown with the suffix h. For example, the following number is 40
hexadecimal (decimal 64): 40h.
• Registers in this document are shown in figures and described in tables.
– Each register figure shows a rectangle divided into fields that represent the fields of the register.
Each field is labeled with its bit name, its beginning and ending bit numbers above, and its
read/write properties below. A legend explains the notation used for the properties.
– Reserved bits in a register figure designate a bit that is used for future device expansion.
SPRUGH5— TMS320C5505 DSP System User's Guide. This document describes various aspects of
the TMS320C5505 digital signal processor (DSP) including: system memory, device clocking
options and operation of the DSP clock generator, power management features, interrupts, and
system control.
SPRUFX6— TMS320C5514 DSP System User's Guide. This document describes various aspects of the
TMS320C5514 digital signal processor (DSP) including: system memory, device clocking options
and operation of the DSP clock generator, power management features, interrupts, and system
control.
SPRUGH6— TMS320C5504 DSP System User's Guide.This document describes various aspects of the
TMS320C5504 digital signal processor (DSP) including: system memory, device clocking options
and operation of the DSP clock generator, power management features, interrupts, and system
control.
SPRUGH9— TMS320C5515 DSP Universal Serial Bus 2.0 (USB) Controller User's Guide This
document describes the universal serial bus 2.0 (USB) in the TMS320C5515 Digital Signal
Processor (DSP) devices. The USB controller supports data throughput rates up to 480 Mbps. It
provides a mechanism for data transfer between USB devices.
SPRABB6— FFT Implementation on the TMS320VC5505, TMS320C5505, and TMS320C5515 DSPs
This document describes FFT computation on the TMS320VC5505 and TMS320C5505/15 DSPs
devices.
1 Introduction
The following sections describe the features and operation of the direct memory access (DMA) controller
in the digital signal processor (DSP). The DMA controller allows movement of data between
internal/external memory and other peripherals without CPU intervention.
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 7
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
Introduction www.ti.com
DMA Controller 3
C55x CPU DMA Controller 2
DMA Controller 1
DMA Controller 0
Channel 64-byte
0-3 FIFO
Peripherals
8 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com DMA Controller Architecture
External
Input
RTC
Clock
CLKSEL
Clock
Generator
SYSCLKSEL[CCR2]
DSP PCGCR[DMAnCG]
System Clock
DMA
Controller n
Input Clock
DMA
Controller n
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 9
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
DMA Controller Architecture www.ti.com
Source Destination
DMA FIFO
Address Address
The set of conditions under which transfers occur in a channel is called the channel context. Each of the
four channels contains a register structure for programming and updating the channel context (see
Figure 4). The user code modifies the configuration registers. The DMA channel becomes active when the
channel is enabled (EN = 1 in DMACHmTCR2).
10 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com DMA Controller Architecture
The channel configuration registers cannot be programmed while the channel is active (EN = 1 in
DMACHmTCR2). Modifying channel registers while the DMA channel is running may cause unpredictable
operation of the channel. To change a DMA channel configuration, the channel must first be disabled (EN
= 0 in DMACHmTCR2). The DMA controller will always complete any on-going burst transfer before
stopping channel activity. Note that a block transfer may consist of a number of burst transfers. The
channel is considered to be active until it completes the burst transfer during which the channel is
disabled. After a channel has been disabled, the channel context must be fully reloaded.
Table 2. Registers Used to Define the Start Addresses for a DMA Transfer
Register Load with...
DMACHmSSAL Source start address (least-significant part)
DMACHmSSAU Source start address (most-significant part)
DMACHmDSAL Destination start address (least-significant part)
DMACHmDSAU Destination start address (most-significant part)
Section 2.2 shows a high-level memory map of the DSP as seen by the DMA controllers and the CPU.
The table shows both the word addresses (23-bit addresses) used by the CPU and byte addresses (32-bit
addresses) used by the DMA controller.
The following sections explain how to determine the start address for memory accesses and I/O accesses.
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 11
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
DMA Controller Architecture www.ti.com
CAUTION
All data buffers in on-chip or off-chip memory should be 32-bit aligned. For
more information on managing memory, see the TMS320C55x Assembly
Language Tools User Guide (SPRU280).
Additionally, the amount of data (in bytes) to be transferred as programmed in
the LENGTH field in DMACHmTCR1 should be a multiple of 4 bytes x
2BURSTMODE field in DMACHmTCR2, i.e. LENGTH = (4 x 2BURSTMODE) bytes.
12 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com DMA Controller Architecture
3. Load the 16 most significant bits (MSB) of the byte address into DMACHmSSAU (for source) or
DMACHmDSAU (for destination).
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 13
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
DMA Controller Architecture www.ti.com
14 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com DMA Controller Architecture
CAUTION
When using synchronization events, you must set EN = 1 and SYNCMODE = 1
during the same write cycle to DMACHmTCR2. The DMA channel will transfer
the first data value when it receives the synchronization event specified by
CHnEVT in DMACESR1 and DMACESR2. Also, when disabling the channel,
you must set EN = 0 and SYNCMODE = 0 during the same write cycle to
DMACHmTCR2.
CAUTION
The auto-initialization feature can only be used when event synchronization is
used (SYNCMODE = 1 in DMACHmTCR2).
Using auto-initialization feature without event synchronization can lead to
unintended behavior of the DMA controller.
Ping Ping
Buf1 Buf2
DMA DMA
CPU
To Peripheral
Pong Pong
Buf1 Buf2
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 15
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
DMA Controller Architecture www.ti.com
As shown in Figure 5, in Ping-Pong mode, DMA starts filling up the Ping buffer first. Once the Ping buffer
is full, a DMA interrupt is generated to the CPU and the LAST_XFER bit (bit 1 in TCR2) is set to 0, which
indicates that the data in the Ping buffer can be processed. The CPU can start processing the samples in
the Ping buffer while the DMA is transferring the data to the Pong buffer. When the Pong buffer is full,
another DMA interrupt is sent to the CPU to indicate the availability of data in the Pong buffer and the
LAST_XFER bit in TCR2 is set to 1. If the AUTORLD bit = 1 in TCR2 (Section 4.3), then the DMA
automatically reinitiates the DMA transfer until either EN or AUTORLD bit is set to 0. In the case that the
AUTORLD bit is set to 0, DMA stops data transfer after the Pong buffer is full and the interrupt is
generated. It also resets the EN bit to 0 in TCR2.
At any time during the DMA transfer, LAST_XFER bit of TCR2 (Section 4.3) can be polled to find whether
the last completed transfer was the Ping or Pong buffer.
16 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com DMA Controller Architecture
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 17
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
DMA Controller Architecture www.ti.com
2.13 Initialization
To initialize the DMA controller follow these steps:
1. Ensure the DMA controller is out of reset by setting the DMA_RST bit to 0 in the peripheral reset
control register (PRCR). PRCR is a chip configuration register, it is not part of the DMA controller, see
the device data manual for more details.
2. Enable the DMA controller input clock by setting the corresponding DMAnCG bit to 0 in the peripheral
clock gating configuration registers (PCGCR1 and PCGCR2). PCGCR1 and PCGCR2 are chip
configuration registers, they are not part of the DMA controller, see the device data manual for more
details.
3. Ensure that all DMA channel interrupt flags are cleared by writing a 1 to the bits of the DMA interrupt
flag register (DMAIFR). Also, ensure all DMA interrupt flags in the CPU interrupt flag registers (IFR0
and IFR1) are cleared.
4. If using interrupts, enable the desired channel interrupt by setting the DMAnCHmIE bits of the interrupt
enable register (DMAIER). The CPU interrupt enable bit (INTEN) in the transfer control register 2
(DMACHmTCR2) must also be set.
5. If using synchronization events, select the event to be used through the CHmEVT bits of the channel
event source registers (DMAnCESR1 and DMAnCESR2). The synchronization mode bit (SYNCMODE)
of DMACHmTCR2 must also be set, although this should be done only when the channel is ready to
be enabled.
6. Load the source address to the source start address registers (DMACHmSSAL and DMACHmSSAU).
See Section 2.4, Start Address in a Channel, for more information on calculating the correct source
start address.
7. Load the destination address to the destination start address registers (DMACHmDSAL and
DMACHmDSAU). See Section 2.4, Start Address in a Channel, for more information on calculating the
correct destination start address.
8. Load the DMA transfer control register 1 (DMACHmTCR1) with the number of double words to
transfer. Note that the number of double words must be specified in bytes. For example, for a 256
double word transfer, program this field with 1024 (256 x 4 = 1024). When Ping-Pong DMA mode is
enabled, this is the size of the Ping and the Pong buffer combined. For more details, see Section 2.4.
9. Configure DMACHmTCR2 accordingly. Through this register you can specify the source and
destination addressing modes and burst mode. You can also enable automatic reload, event
synchronization, CPU interrupts and Ping-Pong mode. Note that you must keep EN = 0 and
SYNCMODE = 0 during this step.
10. If the DMA channel is servicing a peripheral, ensure that the corresponding peripheral is not active and
hence not generating synchronization events.
11. Enable the DMA channel by setting EN = 1 (and SYNCMODE = 1 if using synchronization events).
12. If necessary, enable peripheral being serviced the DMA channel.
If using synchronization events, the DMA channel will start a data transfer when an event is received.
Otherwise, the DMA channel will start the transfer immediately. At the end of the block transfer, if
interrupts are enabled, the DMA controller will generate a CPU interrupt. If interrupts are not enabled, your
program can poll DMACHmTCR1 until either EN or STATUS are cleared to 0 by the DMA controller to
determine when the DMA has finished a block transfer. If AUTORLD is set the DMA controller will restart
the specified transfer (for more details, see Section 2.8,).
18 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com DMA Transfer Examples
For more specific examples of programming the DMA controller, see Section 3, DMA Transfer Examples.
NOTE: If a DMA controller is programmed to access on-chip memory, ensure that the MPORT is not
idled in the Idle Configuration Register (ICR). Note that the the value programmed in the ICR
takes effect only on running the 'idle' instruction on the CPU. For more information on these
registers, see the DSP System User's Guide:
• SPRUFX5: TMS320C5515 DSP System User's Guide
• SPRUFX6: TMS320C5514 DSP System User's Guide
• SPRUGH5: TMS320C5505 DSP System User's Guide
• SPRUGH6: TMS320C5504 DSP System User's Guide
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 19
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
DMA Transfer Examples www.ti.com
The source address for the transfer is set to the equivalent DMA byte address of the data block in external
memory, and the destination address is set to the equivalent DMA byte address of the data block in
SARAM. More specifically the equivalent DMA byte addresses for source and destination buffers
described in this example are 0500 0000h and 000C E000h, respectively. For more information on DMA
byte addresses, see Section 2.2.
20 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com DMA Transfer Examples
Figure 7 shows the DMA channel register contents during the transfer after the channel is enabled.
... ... 244 245 246 247 248 ... ... 244 245 246 247 248
249 250 251 252 253 254 255 256 249 250 251 252 253 254 255 256
7 6 5 3 2 1 0
10 000 1 0 0
SRCAMODE BURSTMODE SYNCMODE LAST_XFER PING_PONG_EN
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 21
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
DMA Transfer Examples www.ti.com
Note that the DMA will transfer a full double word from ICDRR to the destination address every time a
receive synchronization event is generated by the I2C. When allocating memory for the receive buffer, two
16-bit words must be allocated for every I2C data sample.
7 6 5 3 2 1 0
10 000 1 0 0
SRCAMODE BURSTMODE SYNCMODE LAST_XFER PING_PONG_EN
22 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com DMA Transfer Examples
Figure 11 shows the DMA channel register contents for this transfer after the channel is enabled. The
source address of the DMA channel is set to the receive buffer register (RBR) address for the UART, and
the destination address is set to the start of the data block in internal memory. Since the address of RBR
is fixed, the source address mode is set to 10b (constant address) and the destination address mode is
set to 00b (automatic post-increment).
Note that in this example the destination address is set to the DMA byte address 000C E000h, which
corresponds to SARAM block 31 .
For more information on DMA byte addresses, see Section 2.2.
7 6 5 3 2 1 0
10 000 1 0 0
SRCAMODE BURSTMODE SYNCMODE LAST_XFER PING_PONG_EN
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 23
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
DMA Transfer Examples www.ti.com
Figure 12 shows the DMA channel register contents for this transfer after the channel is enabled. The
source address of the DMA channel is set to the left data0 receive register (I2S0RXLT0) address for I2S0,
and the destination address is set to the start of the data block in internal memory. Since the address of
I2S0RXLT0 is fixed, the source address mode is set to 10b (constant address) and the destination
address mode is set to 00b (automatic post-increment). Note that in this example the destination address
is set to the DMA byte address 000C E000h, which corresponds to SARAM block 31 at 0004 E000h and
DMA transfer length is 1K bytes. For more information on DMA byte addresses, see Section 2.2. When
allocating memory for the receive buffer, two 16-bit words must be allocated for every I2S data sample. It
is also assumed that 1K bytes data buffer has been allocated at 000C E000h.
On every receive event generated by the I2S, the DMA will transfer a full double word from I2S0RXLT0 to
the destination address. After the DMA has transferred the 128th sample, it sends an interrupt to the CPU,
sets the LAST_XFER bit to 0 and continues the transfer. Once the 256th sample is transferred, the DMA
controller again generates an interrupt to the CPU and sets the LAST_XFER bit to 1. Since the AUTORLD
bit has been set to 1, the destination address is reloaded and the transfer resumes.
Figure 12. Servicing Incoming I2S Data Example in Ping-Pong DMA Mode
.
.
3
.
.
2
.
.
Receive
1 E000h 1 2 3 4 5 6 7 8
Sync ..... Ping
Event Buffer
2828h 121 122 123 124 125 126 127 128
I2S0_RX I2S0RXLT0 129 130 131 132 133 134 135 136
E200h
..... Pong
Buffer
249 250 251 252 253 254 255 256
7 6 5 3 2 1 0
10 000 1 0 1
SRCAMODE BURSTMODE SYNCMODE LAST_XFER PING_PONG_EN
24 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com Registers
4 Registers
Table 4 through Table 8 list the memory-mapped registers associated with the four direct memory access
(DMA) controllers. The DMA controller registers can be accessed by the CPU at the word addresses
specified in each table. Note that the CPU accesses all peripheral registers through its I/O space. All other
register addresses not listed in the tables below should be considered as reserved locations and the
register contents should not be modified.
There are several other registers that affect the operation of the DMA controllers. The DMA interrupt flag
and enable registers (DMAIFR and DMAIER) are used to control the interrupt generation of the four DMA
controllers. In addition, there are two registers per DMA controller which control event synchronization in
each channel—the DMAn channel event source registers (DMAnCESR1 and DMAnCESR2). These
registers are not part of the DMA controllers; they are part of the DSP system. For more information on
these registers, see the TMS320VC5505 DSP System Guide (SPRUFP0).
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 25
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
Registers www.ti.com
26 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com Registers
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 27
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
Registers www.ti.com
NOTE:
1. You must load the source start address registers with a byte address. For more details,
see Section 2.4.
2. There are four DMA controllers in the DSP, although all DMA controllers can access
DARAM and SARAM, each DMA controller can only access a subset of on-chip
peripherals. Also, only DMA controller 3 has access to external memory. For more
details, see Section 2.2.
3. All data buffers in on-chip or off-chip memory should be aligned on an even boundary.
For more information on managing memory, see the TMS320C55x Assembly Language
Tools User Guide (SPRU280).
Table 9. Source Start Address Register - Lower Part (DMACHmSSAL) Field Description
Bit Field Value Description
15-0 SSAL 0-FFFFh Lower part of source start address (byte address).
Table 10. Source Start Address Register - Upper Part (DMACHmSSAU) Field Description
Bit Field Value Description
15-0 SSAU 0-FFFFh Upper part of source start address (byte address).
28 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com Registers
NOTE:
1. You must load the source start address registers with a byte address. For more details,
see Section 2.4.
2. There are four DMA controllers in the DSP, although all DMA controllers can access
DARAM and SRAM, each DMA controller can only access a subset of on-chip
peripherals. Also, only DMA controller 3 has access to external memory. For more
details, see Section 2.2.
3. All data buffers in on-chip or off-chip memory should be aligned on an even boundary.
For more information on managing memory, see the TMS320C55x Assembly Language
Tools User Guide (SPRU280).
Table 11. DMA Destination Start Address Register - Lower Part (DMACHmDSAL) Field Description
Bit Field Value Description
15-0 DSAL 0-FFFFh Lower part of destination start address (byte address).
Table 12. DMA Destination Start Address Register - Upper Part (DMACHmDSAU) Field Description
Bit Field Value Description
15-0 DSAU 0-FFFFh Upper part of destination start address (byte address).
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 29
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
Registers www.ti.com
CAUTION
When using synchronization events, you must set EN = 1 and SYNCMODE = 1
during the same write cycle to DMACHmTCR2. The DMA channel will transfer
the first data value when it receives the synchronization event specified by
CHnEVT in DMACESR1 and DMACESR2. Also, when disabling the channel,
you must set EN = 0 and SYNCMODE = 0 during the same write cycle to
DMACHmTCR2.
The amount of data (in bytes) to be transferred as programmed in the LENGTH
field in DMACHmTCR1 should be a multiple of 4 bytes x 2BURSTMODE field in
DMACHmTCR2, i.e., LENGTH = (4 x 2BURSTMODE) bytes.
7 6 5 3 2 1 0
PING_PONG_
SRCAMODE BURSTMODE SYNCMODE LAST_XFER
EN
R/W-0 R/W-0 R/W-0 R/W-0 R-0
LEGEND: R/W = Read/Write; R = Read only; -n = value after reset
30 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com Registers
SPRUFT2A – October 2010 – Revised March 2012 Direct Memory Access (DMA) Controller 31
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
Registers www.ti.com
32 Direct Memory Access (DMA) Controller SPRUFT2A – October 2010 – Revised March 2012
Submit Documentation Feedback
Copyright © 2010–2012, Texas Instruments Incorporated
www.ti.com
This revision history highlights the changes made to this document from its previous version.
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265
Copyright © 2012, Texas Instruments Incorporated