
7600 Series
Mitsubishi Microcomputer
M37640E8-XXXF Preliminary Specification
Direct Memory Access Controller
7/9/98
2-71
2.11.1.1
Source, Destination, and Transfer Count Register Operation
The user can choose whether the source and destination register for each channel will increment by
one, decrement by one, or remain unchanged after each transfer by setting bits 0 through 3 (DxSRID,
DxSRCE, DxDRID, and DxDRCE) of DMAC Channel x Mode Register 1 (DMAxM1) to the
appropriate values. The values in the source and destination registers are updated with their reload latch
values when the transfer count register underflows. The transfer count register is also reloaded when it
underflows, and both a flag (DxUF) and the DMAC interrupt associated with the channel are set.
Reload of the source and destination registers due to underflow of the transfer count register can be
disabled by setting to “1” the DMAC Register Reload Disable Bit (DRLDD). This bit affects reload for
both channel 0 and channel 1.
Because the transfer count register is 16-bits wide, up to 65,536 transfers can take place before an
underflow and the resulting actions described above occur. If the Channel x Disable After Count
Register Underflow Enable Bit (DxDAUE) is set to a “1”, then the Channel x Enable Bit (DxCEN) is
cleared to a “0” when the transfer count register underflows, disabling channel x of the DMAC.
The source, destination, and transfer count registers of a DMAC channel can be updated with their
reload latch value at any time by setting to a “1” the DMAC Channel x Register Reload Bit (DxRLD).
DMAC Source, Destination, and Transfer Count Register Read and Write Method
Read and write operations on the high and low-order bytes of the source, destination, and transfer
count registers must be performed in a specific order.
Write Method
When writing to the source, destination, or transfer count register, the low-order byte is written first.
Next, the high-order byte is written. When this is done, the data is placed in the reload latch of the
high-order byte of the register and the previously written low-order byte data is placed in the reload
latch of the low-order byte. At this point, if the DMAC Channel x Write Control Bit (DxDWC) is
“0”, the values in the reload latches are also loaded in the low and high-order bytes of the register.
If DxDWC is “1”, the data in the reload latches are loaded in the register after the transfer count
register of the DMAC channel underflows or the DxRLD bit of the DMAC channel is set to a “1”.
Read Method
When reading from the source, destination, or transfer count register, the high-order byte is read
first. The low-order byte of the register is then read. The value read from the low-order byte of the
register is its value when the high-order byte was read.
2.11.1.2
DMAC Transfer Request Sources
The hardware source for initiating a DMAC transfer for each channel is selectable by setting the
DMAC Channel x Hardware Transfer Request Source Bits (DxHRS0, 1, 2, 3) to appropriate values.
The choices for channel 0 are the UART1 receive or transmit interrupts, the TimerY interrupt, external
interrupt 0, one of three USB endpoint OUT_PKT_RDY signals, one of three USB endpoint
IN_PKT_RDY signals, the USB endpoint 1 OUT_FIFO_NOT_EMPTY signal, the OBE0 and IBF0
(data) signals from the MBI, the SIO combined receive/transmit interrupt, and the CNTR1 interrupt.
The choices for channel 1 are the UART2 receive and transmit interrupts, the TimerX interrupt,
external interrupt 1, one of three USB endpoint OUT_PKT_RDY signals, one of three USB endpoint
IN_PKT_RDY signals, the USB endpoint 1 OUT_FIFO_NOT_EMPTY signal, the OBE1 and IBF1
(data) signals from the MBI, the Timer1 interrupt, and the CNTR0 interrupt.