FR How to master the DMA function

Answer:

How to master the DMA function.

DMAC is function to be possible to transfer specified amount of data without difficulty by one repeated trigger.
   We recommend to use DMAC when there is following function.

  • Continuously send/receive UART, SIO and etc.
  • Automatically store the data into RAM after continuously doing A/D conversion
  • Periodically change the period and duty of Pulse output
  • Let automatically transfer the data to another area by trigger of external interrupt
  • Let automatically transfer the data to another area by period of timer

And when the use of DMAC is reviewed, at first it is need to confirm whether DMAC for use products has the transfer request factor for use peripheral (UART, A/D, PPG and etc.).

We introduce regarding following item of DMAC.

Operating mode of DMAC

Transfer size of DMAC

Transfer trigger of DMAC

Transfer times of DMAC

Transfer direction of DMAC

Transfer completion operating of DMAC


Operating mode of DMAC

DMAC has following mode and type.

Combination of Transfer Type and Transfer Mode

Combination_of_Transfer_Type_and_Transfer_Mode.gif

Single/Block transfer mode (Block/Step transfer)

This mode is DMA transfer of one time by transfer request of one time.
   Transfer size is decided by Block size. In case of large Block size, transfer rate is improved, but actual throughput of CPU is downed.

Continuation transfer mode (demand transfer)

This mode is DMA transfer while transfer request (DREQ) is kept active level.
   Assignment of Bus usage to CPU is when transfer times resister becomes to 0 or DREQ input becomes to inactive level.

Burst transfer mode

This mode is DMA transfer of specified transfer times by transfer request of one time.
   Assignment of Bus usage to CPU is when transfer times resister becomes to 0.

Two-cycle type

This type is the mode to read and write by turns.
   (This type is transferred after once internal Bus control is latched the data.)
   Access is 2 types as following
   Internal area (RAM)←→Internal area (I/O),
   Internal area (I/O)←→External area (RAM)

Fly-by type

This type is the mode to read and write at same time.
   (This type is transferred external memory←→external I/O at same time.)
   Access type is as following
   External area (RAM)←→External area (I/O)


Transfer size of DMAC

Transfer size of DMAC is 3 kind of type as following.

  • byte(8bit)
  • halfword(16bit)
  • word(32bit)

Transfer trigger of DMAC

For transfer trigger of DMAC, there is UART/SIO,A/D,PPG and etc., but it is different for each device. Please refer a list of DMA transfer request in Hardware manuasl.


Transfer times of DMAC

By setting of transfer times specification resister (DMACT), it is possible to set from 1 time to 65536 times.
   DMACT is counted down 1 by transfer of one time.


Transfer direction of DMAC

Specified sizes is transferred with the direction of transfer source address→transfer destination address.
   And these addresses are possible to set of decrease, fix and increase.


Transfer completion operating of DMAC

Each DMA is possible to set whether the interrupt becomes available or not after completing DMA transfer.
   DMA transfer completion is occurred when basically specified transfer times is completed.
   The interrupt facotr is set by error of transfer request occurrence source (overrun error of UART and etc.). Therefore it is needed to confirm whether the error is occurred or not at occurring the interrupt.