R01UH0092EJ0110 Rev.1.10
Page 244 of 807
Jul 31, 2012
M16C/64C Group
16. DMAC
16.3.3
Transfer Cycles
A transfer cycle is composed of a bus cycle to read data from a source address (source read), and a
bus cycle to write data to a destination address (destination write). The number of read and write bus
cycles varies with the source and destination addresses.
Figure 16.2 shows Source Read Cycle Example. For convenience, the destination write cycle is shown
as one bus cycle and the source read cycles for the different conditions are shown. In reality, the
destination write cycle is subject to the same conditions as the source read cycle, with the transfer
cycle changing accordingly. When calculating transfer cycles, take into consideration each condition for
the source read and the destination write cycle. For example, when data is transferred in 16-bit units,
and the source and destination addresses are both odd addresses ((2) in Figure 16.2), two source read
bus cycles and two destination write bus cycles are required.
16.3.3.1
Effect of Source and Destination Addresses
When a 16-bit unit of data is transferred with a 16-bit data bus and the source address starts with an
odd address, the source read cycle increments by one bus cycle, compared to a source address
starting with an even address.
When a 16-bit unit of data is transferred with a 16-bit data bus and the destination address starts with
an odd address, the destination write cycle increments by one bus cycle, compared to a destination
address starting with an even address.
16.3.3.2
Effect of Software Wait
For memory or SFR accesses in which one or more software wait states are inserted, the number of
bus cycles required increases by an amount equal to the number of software wait states.
16.3.3.3
Memory Expansion Mode and Microprocessor Mode
In memory expansion or microprocessor mode, the transfer cycle is also affected by the BYTE pin
level. Furthermore, the bus cycle itself is extended by a software wait or
RDY
signal.
If 16 bits of data are transferred on an 8-bit data bus (input to the BYTE pin is high), the operation is
accomplished by transferring 8 bits of data twice. Therefore, this operation requires two bus cycles to
read data and two bus cycles to write data. Furthermore, if the DMAC accesses an internal area
(internal ROM, internal RAM, or SFR), unlike in the case of the CPU, the DMAC uses the data bus
width selected by the BYTE pin.
DMA transfers to and from an external area are affected by the
RDY
signal. Refer to 11.3.5.6 “
Signal” for more information.
Summary of Contents for M16C Series
Page 846: ...M16C 64C Group R01UH0092EJ0110...