
Specification
NET2272 USB Peripheral Controller
______________________________________________________________________________
NetChip Technology, Inc., 2003
Patent Pending
335 Pioneer Way, Mountain View, California 94041
TEL (650) 526-1490
FAX (650) 526-1494
http://www.netchip.com
Rev 1.2, October 15, 2003
47
5.8.1.1 16-bit Post-Validation
Post-validation is the technique in which data is written to the buffer before it is validated. The following steps must
be followed to post-validate an odd length packet, size 2n+1, when operating in 16-bit mode:
•
Write ‘2n’ bytes using ‘n’ 16-bit transactions to the endpoint buffer via EP_DATA.
•
Change to an 8-bit bus by clearing the Data Width bit in the LOCCTL register.
•
Write the last byte to the endpoint buffer via EP_DATA.
•
Post-validate the buffer by writing 0 to EP_TRANSFER0.
•
Change back to a 16-bit bus by setting the Data Width bit in the LOCCTL register.
5.8.2 OUT Endpoint Buffers
When receiving data, the NET2272 will NAK the host (indicating that it cannot accept the data) if either the buffer
runs out of room, or if both the NAK OUT Packets Mode bit and the NAK OUT Packets bits are set. If the packets
received are of maximum size, then additional packets can be received independently of the NAK OUT Packets
Mode bit. This bit will only cause additional OUT packets to be NAKed if the last packet received was a short
packet.
If NAK OUT Packets Mode is true (blocking mode), USB OUT transfers can overlap with the local CPU unloading
the data using the following sequence:
•
Local CPU responds to the Data Packet Received Interrupt and reads the EP_AVAIL register so it knows how
many bytes are in the current packet.
•
Local CPU clears the Data Packet Received Interrupt and the NAK OUT Packets bit, allowing the next packet
to be received.
•
Now the local CPU can unload data from the buffer while the next USB OUT transaction is occurring.
If NAK OUT Packets Mode is false (non-blocking mode), the NET2272 will accept packets as long as there is room
for the complete packet in the next available buffer. Note that there are no indications of packet boundaries when
there are multiple packets in the buffers in a double-buffered configuration.