28 USB FUNCTION CONTROLLER (USB)
28-20
Seiko Epson Corporation
S1C33L26 TECHNICAL MANUAL
In this mode, PDREQ is negated before the endpoint becomes completely full. If the region set with the
EP{a,b,c,d}StartAdrs register is the same as that set with the EP{a,b,c,d}MaxSize register (Single Buffer),
the endpoint never becomes full, and data cannot be transmitted through USB IN transfer.
Therefore, you should set up an area exceeding the EP{a,b,c,d}MaxSize value + 32 bytes to use the Rcv-
Limit mode, using the EP{a,b,c,d}StartAdrs register.
Note: In the S1C33L26, the USB DMA data transfer count is determined according to the DMAC trans-
fer counter setting. Negating PDREQ by the USB macro does not affect the transfer count. So
in RcvLimit mode, the DMAC continues data transfer until the DMAC transfer counter reaches 0
even after the macro negates PDREQ. Therefore, make sure that the DMAC transfer counter is
set properly.
DMAC trigger
PDREQ (O)
#PDREQ (O)
PDACK (I)
PDWR (I)
Data (I)
Data sampling
Inverted
D0
D1
Dn-1
Dn
D2
5.3.2 Waveforms in Asynchronous Multi-Word DMA Transfer Mode - Writing (RcvLimit mode)
Figure 28.
2) Reading operation
The Port interface starts reading operation in the Asynchronous Multi-word DMA transfer mode when the
following register settings are established:
• DMA_Config_1.SingleWord bit = 0
• Direction of the target endpoint = OUT
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
data exist at the connected endpoint. Turning PDACK to active starts outputting transferred data to the data
bus. Have the DMAC (master) load the data while PDRD is rising (when the DMA_Config_0.PDRDWR_
Level bit is set to 1). When no data remains 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.