1. DMAC Overview

  The DMAC is a facility that allows data to be transferred at high speed.  It is rarely used alone but is more commonly used in conjunction with an I/O device that requires high-speed data transfer.  Typical applications of the DMAC, for example, might include high-speed data transmission over SCI and high-speed pulse input/output coupled with a timer.

  • The H8/3048 supports a DMAC that allows data to be transferred from memory to memory, from memory to I/O, and from I/O to memory.
  • The DMAC provides up to four channels of data transfer.
  • The DMAC can be started from the CPU, external pins, ITU, and SCI.
 Figure 1 is a block diagram of the DMAC.
 

Figure 1  DMAC block diagram

 The DMAC has two modes in which to specify a source and a destination.

(1) Short address mode
  The DMAC runs as a four-channel (channels 0A/0B/1A/1B) DMAC.  It provides DMA transfer to and from a memory space (including a built-in peripheral) capable of accessing the entire memory space of 16M bytes by 8-bit absolute addressing.
  The DMAC can be configured to increment or decrement the memory address on each data transfer request, but the space capable of access by 8-bit absolute addressing can neither be incremented nor decremented.  Normally, a register located in the I/O register is specified.
  In short address mode, DMA transfer requests initiated by interrupts originating from the ITU/SCI can be accepted.

(2) Full address mode
  The DMAC is used as a two-channel (channels 0/1) DMAC.  It allows memory-to-memory data transfer.  It can be configured to increment or decrement the memory address or leave it fixed.  Block transfers can be specified.
  Table 1 summarizes the functions of the DMAC.
 


Table 1  DMAC functions