
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
48
5.9
USB Test Modes
The Force Full Speed and Force High Speed bits of the XCVRDIAG register can be used to force the NET2272
into full and high speed modes, respectively. These forcing bits must not be used in normal operation; they are
for testing purposed only. In normal operation, the NET2272 automatically performs USB 2.0 Chirp Protocol
negotiation with the host to determine the correct operating speed.
USB 2.0 Test Mode support is provided via the Test Mode Select field of the USBTEST register. These bits select
the appropriate USB Test Mode settings (see section 9.4.9 in the USB Specification Revision 2.0 for more details).
Normally, the host sends a SET_FEATURE request with the Test Selector in the upper byte of wIndex. The Test
Selector can be copied directly into the NET2272 USBTEST register to select the correct test mode.
Note that USB Test Mode settings only have an effect if the NET2272 is in high-speed mode. Also, if the NET2272
is in high-speed mode, and the Test Mode Select field is set to non-zero, the NET2272 is prevented from switching
out of high-speed mode. Normal USB Suspend and Reset, as well as the Force Full Speed and Force High Speed
bits, are ignored for test purposes.
Note also that the NET2272 can be forced into high-speed mode (using the Force High Speed bit) even if the
NET2272 is not connected to a host controller. After selecting the high-speed mode, USB Test Modes can be
selected.
Most USB Test Modes require no further support from the NET2272 firmware. However, the Test_Packet (0x04)
Test Mode Selector requires a specific packet to be returned by the device. The NET2272 will respond correctly by:
1. Set Test Mode Select to 0x04
2. Flush endpoint 0
3. Load the following 53 (0x35) byte packet into endpoint 0:
00 00 00 00 00 00 00 00 - 00 AA AA AA AA AA AA AA AA EE EE EE EE EE EE EE
EE FE FF FF FF FF FF FF FF FF FF FF FF 7F BF DF - EF F7 FB FD FC 7E BF DF EF
F7 FB FD 7E
You may validate the packet with your normal validation method, either pre-validating by writing 0x35 into
EP_TRANSFER[EP0] before loading the bytes, or by writing 0 to EP_TRANSFER[EP0] after loading the bytes.