
27. Usage Notes
Rev.1.00
27.8
DMAC
Set the DMAC-associated registers while bits MDi1 and MDi0 (i = 0 to 3) in the channel i are set to 00b (DMA
disabled). Then, set bits MDi1 and MDi0 to 01b (single transfer) or 11b (repeat transfer) at the end of the setup
procedure, which enables the DMA request of the channel i to be acknowledged.
Do not write a 0 (not requested) to the DRQ bit in the DMiSL register.
In the M32C/90 Series, if a DMA request is generated but a receiving channel is not ready to receive(1), a DMA
transfer does not occur and the DRQ bit becomes 0.
NOTE:
1. Bits MDi1 and MDi0 are set to 00b or the DCTi register is 0000h (transferred 0 time).
To start a DMA transfer using a software trigger, set bits DSR and DRQ in the DMiSL register to 1
simultaneously.
e.g.,
OR.B #0A0h, DMiSL
; set bits DSR and DRQ to 1 simultaneously
While the DCTi register in channel i is set to 1, do not generate a DMA request in channel i in the timing that bits
MDi1 and MDi0 in the DMDj register (j = 0, 1) corresponding to channel i are set to 01b (single transfer) or 11b
(repeat transfer). (Technical update: TN-M16C-88-0209)
Select the peripheral function as a DMA request source after setting the DMA-associated registers. When the INT
interrupt is selected as a DMA request source, do not set the DCTi register to 1.
Wait 6 BCLK cycles or more by program to enable DMA after setting the DMiSL register(2).
NOTE:
2. DMA is enabled when bits MDi1 and MDi0 in the DMDj register are changed from 00b (DMA disabled)
to 01b (single transfer) or 11b (repeat transfer).
The period between each DMA transfer request generation in the same channel must be set as follows:
((the number of channels set for DMA transfer - 1) × 5) BCLK cycles or more.
In double-speed mode, only one DMAC channel can be used. Set the unused channels as one of the following:
a) set the bits DSEL4 to DSEL0 in the DMiSL register to 00000b (software trigger) and do not let the software
trigger occur.
b) generate no DMA request from the peripheral function selected using bits DSEL4 to DSEL0.