TMP92CF30
2009-06-12
92CF30-54
(1)
Micro DMA operation
When an interrupt request is generated by an interrupt source that specified by the
micro DMA /HDMA start vector register, and Micro DMA start is specified by DMA
selection register, the micro DMA triggers a micro DMA request to the CPU at
interrupt priority level 6 and starts processing the request. When IFF = 7, Micro DMA
request cannot be accepted.
The 8 micro DMA channels allow micro DMA processing to be set for up to 8 types of
interrupt at once.
When micro DMA is accepted, the interrupt request flip-flop assigned to that
channel is cleared. Data in one-byte, two-byte or four-byte blocks is automatically
transferred at once from the transfer source address to the transfer destination
address set in the control register, and the transfer counter is decremented by “1”. If
the value of the counter after it has been decremented is not “0”, DMA processing ends
with no change in the value of the micro DMA start vector register. If the value of the
decremented counter is “0”, a micro DMA transfer end interrupt (INTTC0 to INTTC7)
is sent from the CPU to the interrupt controller.
In addition, the micro DMA /HDMA start vector register is cleared to “0”, the next
micro DMA operation is disabled and micro DMA processing terminates.
If an interrupt request is triggered for the interrupt source in use during the interval
between the time at which the micro DMA /HDMA start vector is cleared and the next
setting, general-purpose interrupt processing is performed at the interrupt level set.
Therefore, if the interrupt is only being used to initiate micro DMA /HDMA (and not as
a general-purpose interrupt), the interrupt level should first be set to 0 (i.e, interrupt
requests should be disabled).
If micro DMA and general-purpose interrupts are being used together as described
above, the level of the interrupt which is being used to initiate micro DMA processing
should first be set to a lower value than all the other interrupt levels. (Note1) In this
case, edge-triggered interrupts are the only kinds of general interrupts which can be
accepted.
Note1: If the priority level of micro DMA is set higher than that of other interrupts, CPU operates as follows.
In case INTxxx interrupt is generated first and then INTyyy interrupt is generated between checking “Interrupt
specified by micro DMA start vector” (in the Figure 3.5.1) and reading interrupt vector with setting below. The
vector shifts to that of INTyyy at the time.
This is because the priority level of INTyyy is higher than that of INTxxx.
In the interrupt routine, CPU reads the vector of INTyyy because cheking of micro DMA has finished. And
INTyyy is generated regardless of transfer counter of micro DMA.
INTxxx: level 1 without micro DMA
INTyyy: level 6 with micro DMA
If micro DMA requests are set simultaneously for more than one channel, priority is
not based on the interrupt priority level but on the channel number: The lower the
channel number, the higher the priority (Channel 0 thus has the highest priority and
channel 7 the lowest).
Note2: Don’t start any micro DMAs by one interrupt. If any micro DMA are set by it, micro DMA that channel number is
biggest (priority is lowest) is not started.(Because interrupt flag is cleared by micro DMA that priority is highest)
Содержание TLCS-900/H1 Series
Страница 1: ...TOSHIBA Original CMOS 32 Bit Microcontroller TLCS 900 H1 Series TMP92CF30FG Semiconductor Company ...
Страница 650: ...TMP92CF30 2009 06 12 92CF30 648 7 Package Dimensions LQFP176 P 2020 0 40F TOP VIEW BOTTOM VIEW Detail view of A 25 1 A ...
Страница 652: ...TMP92CF30 2009 06 12 92CF30 650 ...