28 USB FUNCTION CONTROLLER (USB)
S1C33L26 TECHNICAL MANUAL
Seiko Epson Corporation
28-19
Asynchronous DMA transfer
This macro provides an 8-bit asynchronous DMA transfer function that outputs/inputs data, triggered by the
Data Transfer Request signal PDREQ, Data Transfer Permit signal PDACK and Read-strobe PDRD/Write-
strobe PDWR. This mode only supports the slave functionality, and enables data transfer either in Multi-word
or Single-word mode.
Asynchronous multi-word DMA transfer mode - slave
1) Writing operation
The Port interface starts writing operation in Asynchronous multi-word DMA transfer mode when the fol-
lowing register settings are established:
• DMA_Config_1.SingleWord bit = 0
• Direction of the target endpoint = IN
The Port interface starts data transfer on the DMA when 1 is written on the DMA_Control.DMA_Go bit.
After data transfer starts on the DMA, the USB macro requests data transfer by asserting PDREQ if any
available space is found at the connected endpoint. The DMA loads the data and writes them to the end-
point when PDWR is rising (when the DMA_Config_0.PDRDWR_Level bit is set to 1). When available
space is entirely consumed at the endpoint, the interface negates PDREQ to reject data transfer.
If any data is set to the DMA_Latency.DMA_Latency[3:0] bit other than 0x0, this mode negates PDREQ
once after completing transfer of 4-byte data, and does not assert PDREQ as long as 130 ns
×
N (N =
DMA_ Latency.DMA_Latency[3:0]).
If the DMA is set to the Countdown mode with DMA_Config_1.CountMode = 1, the DMA completes data
transfer when the DMA_Count_HH, HL, LH and LL registers reach 0x00000000. To cancel (negate) the
DMA request (PDREQ), provide 1 to the DMA_Control.DMA_Stop bit. Note that writing 1 to the DMA_
Control.DMA_Stop bit does not stop the DMAC. So to terminate data transfer, first terminate the DMAC
(master) and then terminate the macro’s DMA transfer.
Note: The S1C33L26 DMAC can only be triggered to start data transfer by the Rising Edge of PDREQ.
After that no DMAC trigger will be issued while PDREQ stays active (high level) in multi-word
DMA transfer mode. The subsequent DMAC trigger will be issued at the next PDREQ Rising
Edge. Therefore, when using the USB macro in multi-word DMA transfer mode, configure the
DMAC in successive transfer mode and set the DMAC transfer counter to the same value set in
the DMA_Remain_H and DMA_Remain_L registers.
DMAC trigger
PDREQ (O)
#PDREQ (O)
PDACK (I)
PDWR (I)
Data (I)
Data sampling
D0
D1
Dn-1
Dn
Inverted
5.3.1 Transfer Waveforms in Asynchronous Multi-Word DMA Transfer Mode - Writing
Figure 28.
Providing 1 to the DMA_Config_1.DMA_RcvLimitMode bit enables the RcvLimit mode. The RcvLimit
mode is not available in Countdown mode.
When the DMA is writing asynchronously in RcvLimit mode, up to 16 bytes of data can be received even
after this macro negates PDREQ.
In this mode, PDREQ is negated when the available space is less than 32 bytes at the relevant endpoint as
a result of the DMA’s writing operation. However, when PDREQ is negated, 16 bytes of data that have not
been written to the endpoint may exist within the internal circuit. Therefore, up to 16 bytes of data can be
received after PDREQ is negated.