DMAC
M30240 Group
Rev.1.00 Sep 24, 2003 Page 63 of 360
Figure 1.56: DMAC register (3)
• Transfer cycle
The transfer cycle consists of the bus cycle in which data is read from memory or from the SFR area
(source read) and the bus cycle in which the data is written to memory or to the SFR area (destination
write). The number of read and write bus cycles depends on the source and destination addresses
and the software waits are inserted.
• Effect of source and destination addresses
When 16-bit data is transferred on a 16-bit data bus, and the source and destination both start at odd address-
es, there is one more source read cycle and destination write cycle than when the source and destination both
start at even addresses.
• Calculations
Any combination of even or odd transfer read and write addresses is possible. Table 1.16 show the number
of DMAC transfer cycles. Table 1.17 shows the corresponding coefficient values. Figure 1.57 shows an ex-
ample of the transfer cycle for a source read.
The number of DMAC transfer cycles can be calculated as follows:
b7 b0 b7 b0
(b8)(b15)
Function
RW
• Transfer counter
Set a value one less than the transfer count
Symbol Address When reset
TCR0 0029
16, 002816 Indeterminate
TCR1 0039
16, 003816 Indeterminate
DMAi transfer counter (i = 0, 1)
Transfer count
specification
0000
16 to FFFF16
b7
(b23)
b3 b0 b7 b0 b7 b0
(b8)(b16)(b15)(b19)
Function
RW
• Source pointer
Stores the source address
Symbol Address When reset
SAR0 0022
16 to 002016 Indeterminate
SAR1 0032
16 to 003016 Indeterminate
DMAi source pointer (i = 0, 1)
Transfer count
specification
00000
16 to FFFFF16
Nothing is assigned.
Symbol Address When reset
DAR0 0026
16 to 002416 Indeterminate
DAR1 0036
16 to 003416 Indeterminate
b3 b0 b7 b0 b7 b0
(b8)(b15)(b16)(b19)
Function
RW
• Destination pointer
Stores the destination address
DMAi destination pointer (i = 0, 1)
Transfer count
specification
00000
16 to FFFFF16
b7
(b23)
Nothing is assigned.
Write "0" when writing to these bits. If read, the value is "0".
Write "0" when writing to these bits. If read, the value is "0".