
EP0FIFO
Meaning:
Endpoint 0 FIFO. This 64 byte FIFO is used for OUT and IN transfers to and
from the bi-directional endpoint 0.
Location:
EP0FIFO[7:0]
Write (IN):
For an IN transfer,
the CPU writes a series of bytes to this FIFO to fill it with IN
data. After filling the FIFO with a packet (0 to 64 bytes), the CPU writes the byte
count register (page 9) to arm the IN transfer and to tell the SIE how many bytes
to transfer when it receives the IN packet to endpoint 0.
Read (OUT):
For an OUT transfer, the SIE fills the FIFO with USB data received from the host.
When the OUT transfer is verified to be error-free, the SIE loads the byte count
register (page 9) to indicate the number of bytes received in the OUT data
transfer. For a successful transfer the SIE also ACKS the OUT transfer and asserts
the OUT0DAV interrupt request bit (page 51).
POR:
EP0FIFO[7:0]=0
Chip Reset:
EP0FIFO[7:0]=0
Bus Reset:
Unchanged
Pwr Down:
No read or write
Programming Notes:
The SIE automatically retries packets that it finds to contain errors (CRC, bit stuff, etc.). This is
invisible to the CPU—no interrupt flags or registers are updated with less than perfect transfers.
10