
W81C180
Publication Release Date: May 1997
- 5 -
Revision A1
FIRST IN FIRST OUT STORAGE (FIFO'S):
The W81C180 has five FIFO's, one receiving register.
FIFO
SRAM
or
SIZE
*
NOTES
Endpt
Receiving
0
32
Data received on Port0 which contains the correct address and pids will
be stored here for the uC to read.
Endpt
Transmitting
0
32
The uC writes the data here which will be sent to the host when the
correct address and pids are transmitted by the host.
Endpt
Receiving
1
1
Data received on Port1 which contains the ack pid from host responds
to the transmitted by W81C180 will be stored here for the uC to read.
Endpt
(Hub)
Transmitting
1
32
The uC writes the data here which will be sent to the host when the
correct address and pids are transmitted by the host.
Endpt
(Function)
Transmitting
1
32
The uC writes the data here which will be sent to the host when the
correct address and pids are transmitted by the host.
*: byte unit, maximum capability
INTERFACE TO THE MICROCONTROLLER:
The W81C180 communicates with the uC via a 2 wire bus. One signal is the data and the other the
clock. The clock is always generated by the uC. The data is bi directional. After each byte of data
(MSB first) an acknowledge bit (MDA=0) is sent by the receiver. The uC always initiates the
communication with a start condition (MDA from 1 change to 0 while MCL=1) and the W81C180's
address. The uC ends the transmission with a stop condition (MDA from 0 change to 1 while MCL=1).
Data is always changed while MCL=0 and clocked in on the rising edge of MCL. The W81C180 acts
as a slave memory device at address E8h.
W81C180'S ADDRESS
READ FROM W81C180
WRITE TO W81C180
1110 100S
S=1
S=0
The format for describing the interface to the W81C180 is as follows:
ST = Start (MDA from 1 change to 0 while MCL=1)
AW = An acknowledge given by the W81C180 (the W81C180 brings MDA=0 during the 9th MCL
pulse.)
AU = An acknowledge given by the uC (the uC brings MDA=0 during the 9th MCL pulse.)
NA = No acknowledge (this signifies the end of data being read from the W81C180.)
SP = Stop (MDA from 0 change to 1 while MCL=1)