TMP91C824
91C824-40
3.4.2
Micro DMA processing
In addition to general-purpose interrupt processing, the TMP91C824 supprots a micro DMA function.
Interrupt requests set by micro DMA perform micro DMA processing at the highest priority level (level
6) among maskable interrupts, regardless of the priority level of the particular interrupt source. Micro.
The micro DMA has 4 channels and is possible continuous transmission by specifing the say later burst
mode.
Because the micro DMA function has been implemented with the cooperative operation of CPU, when
CPU goes to a stand-by mode by HALT instruction, the requirement of micro DMA will be ignored
(pending).
(1) Micro DMA operation
When an interrupt request specified by the micro DMA start vector register is generated, the
micro DMA triggers a micro DMA request to the CPU at interrupt priority level 6 and starts
processing the request in spite of any interrupt source’s level. The micro DMA is ignored on
<IFF[2:0]>=”7”.
The 4 micro DMA channels allow micro DMA processing to be set for up to 4 types of interrupts at
any one time. When micro DMA is accepted, the interrupt request flip-flop assigned to that channel
is cleared.
The data are automatically transferred once(1/2/4 bytes) from the transfer source address to the
transfer destination address set in the control register, and the transfer counter is decreased by 1(-1).
If the decreased result is “0”, the micro DMA transfer end interrupt (INTTC0 to INTTC3) passes
from the CPU to the interrupt controller. In addition, the micro DMA start vector register DMAnV
is cleared to 0, the next micro DMA is disabled and micro DMA processing completes. If the
decreased result is other than “0”, the micro DMA processing completes if it isn’t specified the say
later burst mode. In this case, the micro DMA transfer end interrupt (INTTC0 to INTTC3) aren’t
generated.
If an interrupt request is triggered for the interrupt source in use during the interval between the
clearing of the micro DMA start vector and the next setting, general-purpose interrupt processing
executes at the interrupt level set. Therefore, if only using the interrupt for starting the micro DMA
(not using the interrupts as a general-purpose interrupt: level 1 to 6), first set the interrupts level to 0
(interrupt requests disabled).
If using micro DMA and general-purpose interrupts together, first set the level of the interrupt used
to start micro DMA processing lower than all the other interrupt levels. In this case, the cause of
general interrupt is limited to the edge interrupt.
The priority of the micro DMA transfer end interrupt (INTTC0 to INTTC3) is defined by the
interrupt level and the default priority as the same as the other maskable interrupt.
If a micro DMA request is set for more than one channel at the same time, the priority is not based
on the interrupt priority level but on the channel number. The smaller channel number has the higher
priority (Channel 0 (high) > channel 3 (low)).
While the register for setting the transfer source/transfer destination addresses is a 32-bit control
register, this register can only effectively output 24-bit addresses. Accordingly, micro DMA can
access 16M bytes (the upper eight bits of the 32 bits are not valid).