|
Message
From: Ash <anangia@m...>
Date: Thu, 30 Oct 2003 03:17:38 +0100
Subject: [usb] USB Enumeration Info Help
Hi all
I was reading 'USB Complete' (by Jan Axelson - www.lvr.com) today.
Chapter 5 is all about enumeration process between windows and the
usb device.
I was following step by step of what Rudi has done in his file
(usb1_rom1.v). There are couple of things that don't match. These are
as follows:
1. DEVICE DESCRIPTOR
Why has rudi defined the 'device sub class' as 8'h00. According to the
book, page 84 says the following :
"If DeviceClass is 0, the Subclass must be 0. If DeviceClass is between 1
and FEh, the Subclass must be a code defined in a USB specification. A
value of FFh means that the subclass is specific to the vendor"
So shouldn't the value of this be 8'hff (same as 'device class')?
2. Configuration Descriptor
How does rudi come to the value of 0053 for 'total data length'.? I know
it's something to do with the 64 that is defined in the 'max packet size'
in Device Configurator (64-11 = 53.. Is 11 like overheads?)
3. Interface Descriptor
* Why has rudi defined the number of endpoints as 8h'05? If we look at
usb1_core, there are 7 endpoints defined. So should'nt this be 8h'07?
* Once again (same as point 1), why is the interface sub class 8'h01
and not 8'hff. This is from page 88 of the book.
4. EndPoint N Descriptor (where N is from 1 - 5)
According to the book the maximum packet size is shown as 1. Why is
rudi got it as 2 bytes?
Sorry for the questions, but reading the book and comparing th code is
actually helping me as I am able to understand what the code is doing
step by step.
Thanks
Ash :o)
|
 |