Hi Alex,
As I know, High Speed devices will start by connecting as a full device. After that, a high speed detection handshake will be executed to identify if the device is high speed or not, but it is not thru request from Host, The USB 2.0 spec address it as below:
High-speed Detection Handshake (not performed if low-speed device detected by hub):
Note: In the following handshake, both the hub and device are required to detect Chirp J’s and K’s of specified
minimum durations. It is strongly recommended that “gaps” in these Chirp signals as short as 16 high-speed bit
times should restart the duration timers.
4. The high-speed device leaves the D+ pull-up resistor connected, leaves the high-speed terminations
disabled, and drives the high-speed signaling current into the D- line. This creates a Chirp K on the bus.
The device chirp must last no less than 1.0 ms (TUCH) and must end no more than 7.0 ms (TUCHEND) after
high-speed Reset time T0.
5. The hub must detect the device chirp after it has seen assertion of the Chirp K for no less than 2.5 μs (TFILT).
If the hub does not detect a device chirp, it must continue the assertion of SE0 until the end of reset.
6. No more than 100 μs (TWTDCH) after the bus leaves the Chirp K state, the hub must begin to send an
alternating sequence of Chirp K’s and Chirp J’s. There must be no Idle states on the bus between the J’s
and K’s. This sequence must continue until a time (TDCHSE0) no more than 500 μs before and no less than
100 μs before the end of Reset. (This will guarantee that the bus remains active, preventing the device from
entering the high-speed Suspend state.) Each individual Chirp K and Chirp J must last no less than 40 μs
and no more than 60 μs (TDCHBIT).
7. After completing the hub chirp sequence, the hub asserts SE0 until end of Reset. At the end of reset, the
hub must transition to the high-speed Enabled state without causing any transitions on the data lines.
8. After the device completes its chirp, it looks for the high-speed hub chirp. At a minimum, the device is
required to see the sequence Chirp K-J-K-J-K-J in order to detect a valid hub chirp. Each individual Chirp
K and Chirp J must be detected for no less than 2.5 μs (TFILT).
a) If the device detects the sequence Chirp K-J-K-J-K-J, then no more than 500 μs (TWTHS) after detection,
the device is required to disconnect the D+ pull-up resistor, enable the high-speed terminations, and
enter the high-speed Default state.
b) If the device has not detected the sequence Chirp K-J-K-J-K-J by a time no less than 1.0 ms and no
more than 2.5 ms (TWTFS) after completing its own chirp, then the device is required to revert to the
full-speed Default state and wait for the end of Reset.
so would you please help to clarify?
Thanks for your patience!
Kan