R01UH0092EJ0110 Rev.1.10
Page 249 of 807
Jul 31, 2012
M16C/64C Group
16. DMAC
16.3.7
Channel Priority and DMA Transfer Timing
If multiple channels among DMA0 to DMA3 are enabled and DMA transfer request signals are detected
as active in the same sampling period (one period from a falling edge to the next falling edge of BCLK),
the DMAS bit on each channel becomes 1 (DMA requested) at the same time. In this case, the DMA
requests are arbitrated according to the following channel priority: DMA0 > DMA1 > DMA2 > DMA3.
DMAC operation when DMA0 and DMA1 requests are detected as active in the same sampling period
is described below. Figure 16.5 shows an example of DMA Transfer Initiated by External Sources.
In Figure 14.5, as DMA0 and DMA1 requests are generated simultaneously, the higher channel
prioritized DMA0 is received first, and data transfer starts. After one DMA0 transfer is completed, the
bus access privilege is returned to the CPU. When the CPU has completed one bus access, a DMA1
transfer starts. After one DMA1 transfer is completed, the bus access privilege is again returned to the
CPU.
In addition, DMA requests cannot increment since each channel has one DMAS bit. Therefore, when
DMA requests, such as DMA1 in Figure 16.5, occur more than once, the DMAS bit is set to 0 after
receiving the bus access privilege. The bus access privilege is returned to the CPU when one transfer
is completed.
Figure 16.5
DMA Transfer Initiated by External Sources
BCLK
DMA0
DMA1
DMAS bit in the
DM0CON register
DMAS bit in the
DM1CON register
CPU
INT0
INT1
Bus
access
privilege
Example when DMA requests from external sources are detected active at the same
time and a DMA transfer is executed in the shortest cycle
Содержание M16C Series
Страница 846: ...M16C 64C Group R01UH0092EJ0110...