English
Language : 

CP3BT23 Datasheet, PDF (42/260 Pages) Texas Instruments – CP3BT23 Reprogrammable Connectivity Processor with Bluetooth and Dual CAN Interfaces
9.0 DMA Controller
The DMA Controller (DMAC) has a register-based program-
ming interface, as opposed to an interface based on I/O
control blocks. After loading the registers with source and
destination addresses, as well as block size and type of op-
eration, a DMAC channel is ready to respond to DMA trans-
fer requests. A request can only come from on-chip
peripherals or software, not external peripherals. On receiv-
ing a DMA transfer request, if the channel is enabled, the
DMAC performs the following operations:
Table 17 DMA Channel Assignment
Channel
0 (Primary)
0 (Secondary)
1 (Primary)
Peripheral
Reserved
USART
USART
Trans-
action
N/A
R
W
Register
N/A
RXBUF
TXBUF
1. Arbitrates to become master of the CPU bus.
2. Determines priority among the DMAC channels, one
1 (Secondary)
Reserved
N/A
N/A
clock cycle before T1 of the DMAC transfer cycle. (T1
2 (Primary) Audio Interface R
ARDR0
is the first clock cycle of the bus cycle.) Priority among
the DMAC channels is fixed in descending order, with
Channel 0 having the highest priority.
3. Executes data transfer bus cycle(s) selected by the val-
ues held in the control registers of the channel being
serviced, and according to the accessed memory ad-
dress. The DMAC acknowledges the request during the
bus cycle that accesses the requesting device.
te 4. If the transfer of a block is terminated, the DMAC does
the following:
Updates the termination bits.
Generates an interrupt (if enabled).
Goes to step 6.
5. If DMRQn is still active, and the Bus Policy is “continu-
ous”, returns to step 3.
le 6. Returns mastership of the CPU bus to the CPU.
Each DMAC channel can be programmed for direct (flyby)
or indirect (memory-to-memory) data transfers. Once a
DMAC transfer cycle is in progress, the next transfer request
is sampled when the DMAC acknowledge is de-asserted,
then on the rising edge of every clock cycle.
o The configuration of either address freeze or address up-
date (increment or decrement) is independent of the num-
ber of transferred bytes, transfer direction, or number of
s bytes in each DMAC transfer cycle. All these can be config-
ured for each channel by programming the appropriate con-
trol registers.
Each DMAC channel has eight control registers. DMAC
b channels are described hereafter with the suffix n, where n
= 0 to 3, representing the channel number in the register-
names.
2 (Secondary)
CVSD/PCM
Transcoder
R
3 (Primary) Audio Interface W
3 (Secondary)
CVSD/PCM
Transcoder
W
PCMOUT
ATDR0
PCMIN
9.2 TRANSFER TYPES
The DMAC uses two data transfer modes, Direct (Flyby)
and Indirect (Memory-to-Memory). The choice of mode de-
pends on the required bus performance and whether direct
mode is available for the transfer. Indirect mode must be
used when the source and destination have differing bus
widths, when both the source and destination are in memo-
ry, and when the destination does not support direct mode.
9.2.1 Direct (Flyby) Transfers
In direct mode each data item is transferred using a single
bus cycle, without reading the data into the DMAC. It pro-
vides the fastest transfer rate, but it requires identical source
and destination bus widths. The DMAC cannot use Direct
cycles between two memory devices. One of the devices
must be an I/O device that supports the Direct (Flyby) mech-
anism, as shown in Figure 3.
Bus State
T1
T2
Tidle
T1
CLK
DMRQ[3:0]
9.1 CHANNEL ASSIGNMENT
ADDR
ADCA
O Table 17 shows the assignment of the DMA channels to dif-
ferent tasks. Four channels can be shared by a primary and
an secondary function. However, only one source at a time DMACK[3:0]
can be enabled. If a channel is used for memory block trans-
fers, other resources must be disabled.
DS005
Figure 3. Direct DMA Cycle Followed by a CPU Cycle
41
www.national.com