28 USB FUNCTION CONTROLLER (USB)
S1C33L26 TECHNICAL MANUAL
Seiko Epson Corporation
28-53
Set the total of the FIFO area secured for all endpoints does not exceed the total capacity of the built-in
RAM.
Allocate the FIFO area to the endpoints in the order from the lower order address to higher order ad-
dress like EP0, EPa, EPb, EPc, EPd.
The FIFO of the endpoint EP0 is allocated from the address 0 to up to the size specified as the Max-
PacketSize of the endpoint EP0 set in the EP0MaxSize register. Allocate the succeeding area for other
endpoints.
Since the FIFO capacity is 1K bytes, do not let the EPd end address exceed 0x3ff.
CPU_JoinRd (CPU Join FIFO Read)
Register name Address
Bit
Name
Setting
Init. R/W
Remarks
CPU_JoinRd
(CPU join FIFO
read)
0x300c80
(8 bits)
D7–4 –
–
–
–
0 when being read.
D3
JoinEPdRd
1 Join EPd FIFO read
0 Do nothing
0
R/W
D2
JoinEPcRd
1 Join EPc FIFO read
0 Do nothing
0
R/W
D1
JoinEPbRd
1 Join EPb FIFO read
0 Do nothing
0
R/W
D0
JoinEPaRd
1 Join EPa FIFO read
0 Do nothing
0
R/W
This register can be set up to read the FIFO data of the endpoint through the CPU Interface. When the EPnFIFO-
forCPU register is read after the setup of this register is completed, the FIFO data of the relevant endpoint can be
read. The remained data quantity of the FIFO can be referred by the EPnRdRemain_H, L register.
This register can set only one bit to 1 at the same time. When 1 is written into multiple bits at the same time, writ-
ing in higher order bit is regarded as valid. When all bits are set to 0, EP0 will be joined.
The reading data from CPU I/F through the endpoint used by USB I/F or DMA I/F is not allowed.
If CPU I/F needs to read from the IN direction endpoint, use the ForceNAK bit to avoid reading data from USB I/F.
If CPU I/F needs to read from the OUT direction endpoint, check the DMA_Running bit of the DMA_Control reg-
ister to avoid reading data from DMA I/F at the same time.
This register is valid when EnEPnFIFO_Access.EnEPnFIFO_Rd bit is set.
D[7:4]
Reserved
D3
JoinEPdRd
If this bit is set to 1, the FIFO data of the endpoint EPd can be read from the EPnFIFOforCPU register.
In addition, reference to the data quantity in the FIFO of the endpoint EPd by the EPnRdRemain_H, L
register is enabled.
D2
JoinEPcRd
If this bit is set to 1, the FIFO data of the endpoint EPc can be read from the EPnFIFOforCPU register.
In addition, reference to the data quantity in the FIFO of the endpoint EPc by the EPnRdRemain_H, L
register is enabled.
D1
JoinEPbRd
If this bit is set to 1, the FIFO data of the endpoint EPb can be read from the EPnFIFOforCPU register.
In addition, reference to the data quantity in the FIFO of the endpoint EPb by the EPnRdRemain_H, L
register is enabled.
D0
JoinEPaRd
If this bit is set to 1, the FIFO data of the endpoint EPa can be read from the EPnFIFOforCPU register.
In addition, reference to the data quantity in the FIFO of the endpoint EPa by the EPnRdRemain_H, L
register is enabled.
CPU_JoinWr (CPU Join FIFO Write)
Register name Address
Bit
Name
Setting
Init. R/W
Remarks
CPU_JoinWr
(CPU join FIFO
write)
0x300c81
(8 bits)
D7–4 –
–
–
–
0 when being read.
D3
JoinEPdWr
1 Join EPd FIFO write
0 Do nothing
0
R/W
D2
JoinEPcWr
1 Join EPc FIFO write
0 Do nothing
0
R/W
D1
JoinEPbWr
1 Join EPb FIFO write
0 Do nothing
0
R/W
D0
JoinEPaWr
1 Join EPa FIFO write
0 Do nothing
0
R/W