\ Zařízení

Zařízení
Výsledkem práce je série zařízení, která demonstrují použití mikrokontroléru AVR při realizaci USB zařízení. Obvody plní funkci univerzálního vstupně-výstupního zařízení. Nejvýznamější verze používají procesory ATtiny2313 a ATmega8. Přehled použitých obvodů, zdrojů hodinového signálu, pouzder a poskytovaných funkcí je uveden v následující tabulce:
ProcesorPouzdroFrekvenceTyp hodinKonektorUSB vlastnostiFunkce
ATtiny13SOIC 8
DIL 8
12MHz
10,5MHz
9MHz
vnitřní RC oscilátorUSB-Anestabilní hodiny, nefunkční
ATtiny13SOIC 819,5MHzmini-oscilátorUSB-A2 endpointySPI rozhraní
ATtiny13DIL 812MHzDIL14-oscilátorUSB-A2 endpointySPI rozhraní
ATtiny2313SOIC 2018MHzkrystalUSB-A4 endpointySERIAL+PARALLEL
ATmega8TQFP 3215MHzkrystalUSB-Btřída CDCSPI, ADC, SERIAL, I2C, PWM, PARALLEL

ATtiny13 - 12MHz

USB s ATtiny13
Konektor je použit jednak pro programování obvodu ATtiny13 přes rozhraní SPI a také jako výstupní brána synchronní sériové komunikace.

Konektor zařízení s ATtiny13 (z hlediska programování):

1

RESET

PB5

2

GND

pin 4

3

Vcc

pin 8

4

SCK

PB2

5

MISO

PB1

6

MOSI

PB0



Konektor zařízení s ATtiny13 (z hlediska použití):

1

RESET

PB5

2

GND

pin 4

3

Vcc

pin 8

4

SCK

PB2

5

MOSI

PB1

6

(DP)

PB0



Pinout ATtiny13:

8

Vcc

7

PB2

SCK

6

PB1

MISO

5

PB0

MOSI

USB DP

1

PB5

RESET

2

PB3

CLKI

3

PB4

USB DM

4

GND



Konfigurace pinů jsou ovlivněny vynucenou přítomností externího hodinového signálu, který zabírá pin 2. Počet dostupných pinů je též omezen vstupem RESET, který je nutný pro sériové nízkonapěťové programování. Existuje též vysokonapěťové programování (12,5V), které nevyžaduje přítomnost RESETu. Bohužel programátor, který umí vysokonapěťový programovací protokol, je konstrukčně složitější a není vhodný pro ISP - In System Programming. Pokud by se ale jednalo o vícekusovou výrobu, vyplatilo by se vysokonapěťové programování a ušetřený pin by se mohl věnovat na realizaci obousměrného SPI (v současné konfiguraci lze realizovat pouze výstupní část SPI portu).

Deskriptory zařízení: Device Descriptor

OffsetPopisHodnota
0bLength0x12
1bDescriptorType0x01
2,3bcdUSB0x0100
4bDeviceClass0x00
5bDeviceSubClass0x00
6bDeviceProtocol0x00
7bMaxPacketSize0x08
8,9idVendor0x065d
10,11idProduct0x1013
12,13bcdDevice0x0004
14iManufacturer0x00
15iProduct0x01
16iSerialNumber0x00
17bNumConfigurations0x01


Configuration Descriptor (spojení Configuration, Interface a Endpoint descriptoru)

OffsetPopisHodnota
Configuration Descriptor
0bLength0x09
1bDescriptorType0x02
2,3wTotalLenght0x0019
4bNumInterfaces0x01
5bConfigurationValue0x01
6iConfiguration0x00
7bmAttributes0x80
8bMaxPower0x32
Interface Descriptor
9bLength0x09
10bDescriptorType0x04
11bInterfaceNumber0x00
12bAlternateSetting0x00
13bNumEndpoints0x01
14bInterfaceClass0x00
15bInterfaceSubClass0x00
16bInterfaceProtocol0x00
17iInterface0x00
Endpoint 1 Descriptor
18bLength0x07
19bDescriptionType0x05
20bEndpointAddress0x01
21bmAttributes0x02
22,23wMaxPacketSize0x0001
24bInterval0x00


Deskriptory budou odeslány v následujících paketech:

Device Descriptor:
DATA1 packet - CRC 0xe713 - Device Descriptor
80 4B 12 01 00 01 00 00 00 08 13 E7 eop
DATA0 packet - CRC 0xc11e - Device Descriptor
80 C3 5D 06 13 10 04 00 00 01 1E C1 eop
DATA1 packet - CRC 0x8f3f - Device Descriptor
80 4B 00 01 3F 8F eop



Configuration Descriptors:
DATA1 packet - CRC 0xcb0f - Configuration Descriptor
80 4B 09 02 19 00 01 01 00 80 0F CB eop
DATA0 packet - CRC 0x7df4 - Configuration Descriptor a Interface Descriptor
80 C3 32 09 04 00 00 01 00 00 F4 7D eop
DATA1 packet - CRC 0xefd3 - Interface Descriptor a Endpoint 1 Descriptor
80 4B 00 00 07 05 01 02 01 00 D3 EF eop
DATA0 packet - CRC 0xbf40 - Endpoint 1 Descriptor
80 C3 00 40 BF eop


Pakety jsou zakódovány přímo do programové paměti, protože čtení z EEPROM je příliš pomalé.

ATtiny13 - 19,5 MHz

USB s ATtiny13
Konektor je použit jednak pro programování obvodu ATtiny13 přes rozhraní SPI a také jako vstupní brána analogově-digitálního převodníku a výstupní brána PWM budiče.

Konektor zařízení s ATtiny13 (z hlediska programování):

1

RESET

PB5

2

GND

pin 4

3

Vcc

pin 8

4

SCK

PB2

5

MISO

PB1

6

MOSI

PB0



Konektor zařízení s ATtiny13 (z hlediska použití):

1

RESET

PB5

2

GND

pin 4

3

Vcc

pin 8

4

ADC

PB2

5

PWM

PB1

6

(DP)

PB0



Pinout ATtiny13:

8

Vcc

7

PB2

SCK

ADC

6

PB1

MISO

PWM

5

PB0

MOSI

USB DP

1

PB5

RESET

2

PB3

CLKI

3

PB4

USB DM

4

GND



Zařízení obsahuje dva endpointy, jeden vstupní (A/D převodník) a jeden výstupní (PWM budič). Pomocí dolnopropustního filtru lze PWM budič přeměnit na D/A převodník a realizovat tak analogový regulační obvod. Oproti verzi běžící na 12MHz je k dispozici více programové paměti, čtení z EEPROM je dostatečně rychlé a tudíž je možné implementovat i jednoduchý string descriptor - název zařízení (znaky AD).

Deskriptory zařízení: Device Descriptor

OffsetPopisHodnota
0bLength0x12
1bDescriptorType0x01
2,3bcdUSB0x0100
4bDeviceClass0x00
5bDeviceSubClass0x00
6bDeviceProtocol0x00
7bMaxPacketSize0x08
8,9idVendor0x065d
10,11idProduct0x1015
12,13bcdDevice0x0004
14iManufacturer0x00
15iProduct0x01
16iSerialNumber0x00
17bNumConfigurations0x01


Configuration Descriptor (spojení Configuration, Interface a Endpoint descriptoru)

OffsetPopisHodnota
Configuration Descriptor
0bLength0x09
1bDescriptorType0x02
2,3wTotalLenght0x0020
4bNumInterfaces0x01
5bConfigurationValue0x01
6iConfiguration0x00
7bmAttributes0x80
8bMaxPower0x32
Interface Descriptor
9bLength0x09
10bDescriptorType0x04
11bInterfaceNumber0x00
12bAlternateSetting0x00
13bNumEndpoints0x02
14bInterfaceClass0x00
15bInterfaceSubClass0x00
16bInterfaceProtocol0x00
17iInterface0x00
Endpoint 1 Descriptor
18bLength0x07
19bDescriptionType0x05
20bEndpointAddress0x01
21bmAttributes0x02
22,23wMaxPacketSize0x0002
24bInterval0x00
Endpoint 2 Descriptor
25bLength0x07
26bDescriptionType0x05
27bEndpointAddress0x82
28bmAttributes0x02
29,30wMaxPacketSize0x0002
31bInterval0x00


Deskriptory budou odeslány v následujících paketech:

Device Descriptor:
DATA1 packet - CRC 0xe713 - Device Descriptor
80 4B 12 01 00 01 00 00 00 08 13 E7 eop
DATA0 packet - CRC 0xa71e - Device Descriptor
80 C3 5D 06 15 10 04 00 00 01 1E A7 eop
DATA1 packet - CRC 0x8f3f - Device Descriptor
80 4B 00 01 3F 8F eop



Configuration Descriptors:
DATA1 packet - CRC 0xa20a - Configuration Descriptor
80 4B 09 02 20 00 01 01 00 80 0A A2 eop
DATA0 packet - CRC 0x7d04 - Configuration Descriptor a Interface Descriptor
80 C3 32 09 04 00 00 02 00 00 04 7D eop
DATA1 packet - CRC 0xefd3 - Interface Descriptor a Endpoint 1 Descriptor
80 4B 00 00 07 05 01 02 02 00 D3 1F eop
DATA0 packet - CRC 0x07e1 - Endpoint 1 a 2 Descriptor
80 C3 00 07 05 82 02 02 00 00 11 07 eop


EEPROM:
00:4B 12 01 00 01 00 00 00 08 13 E7
0b:C3 5D 06 15 10 04 00 00 01 1E A7
16:4B 09 02 20 00 01 01 00 80 0A A2
21:C3 32 09 04 00 00 02 00 00 04 7D
2c:4B 00 00 07 05 01 02 02 00 D3 1F


Implementace v programové paměti:
4B 00 01 3F 8F
C3 00 07 05 82 02 02 00 00 11 07


ATtiny2313

Obr. 1 - USB s ATtiny2313 - strana spojů
Obr. 2 - USB s ATtiny2313 - strana součástek
Deska s tištenými spoji je navržena tak, aby se dala zasunout do nepájivého kontaktního pole.
Obr. 3 - zapojení do kontaktního pole
Obr. 4 - experimentální přípravek
Konektor na straně spojů je určen pro programování a sdílí s datovým konektorem 3 vodiče.

Programovací konektor USB zařízení s ATtiny2313:

1

RESET

PA2

2

GND

pin 10

3

Vcc

pin 20

4

SCK

PB7

5

MISO

PB6

6

MOSI

PB5


Ve standardní konfiguraci poskytuje zařízení 8-bitový obousměrný port, 1 potvrzovací signál (STROBE) a synchronní/asynchronní sériový port. Pokud uživatel vyžaduje SPI port, může zařízení provozovat v alternativní konfiguraci, která místo horních čtyřech bitů obousměrného portu poskytuje SPI port (MOSI, MISO, SCK, CS). Porty jsou navrženy s cílem co nejméně omezovat uživatele v použití výstupů. Tvar desky a výstupních pinů umožňuje zasunutí do kontaktního nepájivého pole. Zařízení je určeno pro experimentování a má sloužit jako efektivnější alternativa k paralelnímu a sériovému portu PC. Přítomnost potvrzovacího signálu STROBE usnadňuje realizaci obousměrných sběrnic (STROBE potvrzuje data náběžnou hranou po zapsání nového bytu). Port sériové linky se skládá ze signálu RxD a TxD (příchozí a odchozí data) a signálu xCK, který vysílá náběžnou hranu synchronně s platnými daty a umožňuje přímé buzení posuvného registru přijímače.

Sériová část datového konektoru ATtiny2313:

1

RxD

PD0

2

TxD

PD1

3

xCK

PD2

4

GND



Paralelní část datového konektoru ATtiny2313:

1

D7

PB7

2

D6

PB6

3

D5

PB5

4

D4

PB4

5

D3

PB3

6

D2

PB2

7

D1

PB1

8

D0

PB0

9

STROBE

PD6

10

GND



LED (aktivita na USB lince):

LED

PD5



Obr. 5 - schéma zapojení USB zařízení s ATtiny2313


Deskriptory zařízení: Device Descriptor

OffsetPopisHodnota
0bLength0x12
1bDescriptorType0x01
2,3bcdUSB0x0110
4bDeviceClass0x02
5bDeviceSubClass0x00
6bDeviceProtocol0x00
7bMaxPacketSize0x08
8,9idVendor0x065d
10,11idProduct0x1017
12,13bcdDevice0x0004
14iManufacturer0x00
15iProduct0x00
16iSerialNumber0x00
17bNumConfigurations0x01


Configuration Descriptor (spojení Configuration, Interface a Endpoint descriptoru)

OffsetPopisHodnota
Configuration Descriptor
0bLength0x09
1bDescriptorType0x02
2,3wTotalLenght0x0043
4bNumInterfaces0x02
5bConfigurationValue0x01
6iConfiguration0x00
7bmAttributes0x80
8bMaxPower0x32
Interface 0 Descriptor
9bLength0x09
10bDescriptorType0x04
11bInterfaceNumber0x00
12bAlternateSetting0x00
13bNumEndpoints0x01
14bInterfaceClass0x02
15bInterfaceSubClass0x02
16bInterfaceProtocol0x01
17iInterface0x00
CDC - Header Functional Descriptor
18bLength0x05
19bDescriptorType0x24
20bDescriptorSubtype0x00 - Header Functional Descriptor
21,22bcdCDC0x0110
CDC - Call Management Functional Descriptor
23bLength0x05
24bDescriptorType0x24
25bDescriptorSubtype0x01 - Call Management Functional Descriptor
26bmCapabilities0x01
27bDataInterface0x01
CDC - Abstract Control Management Functional Descriptor
28bLength0x04
29bDescriptorType0x24
30bDescriptorSubtype0x02 - Abstract Control Management Functional Descriptor
31bmCapabilities0x02
CDC - Union Functional Descriptor
32bLength0x05
33bDescriptorType0x24
34bDescriptorSubtype0x06 - Union Functional Descriptor
35bMasterInterface0x00
36bSlaveInterface0x01
Endpoint 3 Descriptor
37bLength0x07
38bDescriptorType0x05
39bEndpointAddress0x83
40bmAttributes0x03
41,42wMaxPacketSize0x0008
43bInterval0xff
Interface 1 Descriptor
44bLength0x09
45bDescriptorType0x04
46bInterfaceNumber0x01
47bAlternateSetting0x00
48bNumEndpoints0x02
49bInterfaceClass0x0A
50bInterfaceSubClass0x00
51bInterfaceProtocol0x00
52iInterface0x00
Endpoint 1 Descriptor
53bLength0x07
54bDescriptorType0x05
55bEndpointAddress0x81
56bmAttributes0x02
57,58wMaxPacketSize0x0008
59bInterval0x00
Endpoint 2 Descriptor
60bLength0x07
61bDescriptorType0x05
62bEndpointAddress0x02
63bmAttributes0x02
64,65wMaxPacketSize0x0001
66bInterval0x00


Deskriptory budou odeslány v následujících paketech:

Device Descriptor:
80 4B 12 01 10 01 02 00 00 08 10 CF
80 C3 5D 06 17 10 04 00 00 00 DE 85
80 4B 00 01 3F 8F
Configuration Descriptor:
80 4B 09 02 43 00 02 01 00 80 03 75
80 C3 32 09 04 00 00 01 02 02 74 DC
80 4B 01 00 05 24 00 10 01 05 CE 3C
80 C3 24 01 01 01 04 24 02 02 51 54
80 4B 05 24 06 00 01 07 05 83 E9 63
80 C3 03 08 00 FF 09 04 01 00 21 F8
80 4B 02 0A 00 00 00 07 05 81 E6 DC
80 C3 02 08 00 00 07 05 02 02 26 39
80 4B 01 00 00 DF FF


ATmega8

Obr. 1 - USB s ATmega8


Zařízení je určeno jako převodník USB na běžně používané protokoly. Poskytuje škálu výstupů, které nejsou u USB převodníků běžné, a umožňuje experimentální konstrukce, které by obyčejně musely být řešeny přídavnými integrovanými obvody. Rozhraní obvodu pracují na výhradních vodičích a datových rourách bez jakéhokoliv multiplexování. Přístup je realizován jako standardní čtecí/zápisová operace, kterou lze jednoduše provádět ze všech programovacích jazyků od Javy, C++, Delphi až po DOSový Pascal a příkazovou řádku. Zařízení disponuje sériovou linkou, I2C sběrnicí, SPI portem, paralelním 8-bitovým portem, dvouvstupovým analogově-digitálním převodníkem a speciálním portem s pulzně-šířkovou modulací a řízením směru. Jednoduše lze realizovat různorodé systémy, jako je řízení motorů, vyhodnocování analogových veličin, komunikace s I2C převodníky a pamětmi nebo dokonce ovládání Secure Digital karet, to vše bez speciálních a drahých integrovaných obvodů.

SPI port a programovací konektor USB zařízení s ATmega8:

1

Vcc

2

CS/RESET

PB2

3

MOSI

PB3

4

MISO

PB4

5

SCK

PB5

6

GND



Sériová linka:

1

Vcc

2

TxD

PD1

3

RxD

PD0

4

GND



I2C:

1

Vcc

2

SCL

PC5

3

SDA

PC4

4

GND



PWM:

1

Vcc

2

PWMdir

PB0

3

PWM0

PB1

4

GND



ADC:

1

Vcc

2

ADC0

ADC6

3

ADC1

ADC7

4

GND



Paralelní port:

2

GND

4

D1

PC1

6

D3

PC3

8

D5

PD5

10

D7

PD7

1

Vcc

3

D0

PC0

5

D2

PC2

7

D4

PD4

9

D6

PD6



Obr. 2 - schéma zapojení USB zařízení s ATmega8


Deskriptory zařízení: Device Descriptor

OffsetPopisHodnota
0bLength0x12
1bDescriptorType0x01
2,3bcdUSB0x0200
4bDeviceClass0xEF
5bDeviceSubClass0x02
6bDeviceProtocol0x01
7bMaxPacketSize0x08
8,9idVendor0x065d
10,11idProduct0x1019
12,13bcdDevice0x0004
14iManufacturer0x00
15iProduct0x00
16iSerialNumber0x00
17bNumConfigurations0x01


Configuration Descriptor (spojení Configuration, Interface a Endpoint descriptoru)

OffsetPopisHodnota
Configuration Descriptor
0bLength0x09
1bDescriptorType0x02
2,3wTotalLenght0x0153
4bNumInterfaces0x0a
5bConfigurationValue0x01
6iConfiguration0x00
7bmAttributes0x80
8bMaxPower0x32
Interface Association Descriptor 0
9bLength0x08
10bDescriptorType0x0B
11bFirstInterface0x00
12bInterfaceCount0x02
13bFunctionClass0x02
14bFunctionSubClass0x02
15bFunctionProtocol0x12
16iFunction0x00
Interface Association Descriptor 1
17bLength0x08
18bDescriptorType0x0B
19bFirstInterface0x02
20bInterfaceCount0x02
21bFunctionClass0x02
22bFunctionSubClass0x02
23bFunctionProtocol0x01
24iFunction0x00
Interface Association Descriptor 2
25bLength0x08
26bDescriptorType0x0B
27bFirstInterface0x04
28bInterfaceCount0x02
29bFunctionClass0x02
30bFunctionSubClass0x02
31bFunctionProtocol0x01
32iFunction0x00
Interface Association Descriptor 3
33bLength0x08
34bDescriptorType0x0B
35bFirstInterface0x06
36bInterfaceCount0x02
37bFunctionClass0x02
38bFunctionSubClass0x02
39bFunctionProtocol0x01
40iFunction0x00
Interface Association Descriptor 4
41bLength0x08
42bDescriptorType0x0B
43bFirstInterface0x08
44bInterfaceCount0x02
45bFunctionClass0x02
46bFunctionSubClass0x02
47bFunctionProtocol0x01
48iFunction0x00
Interface 0 Descriptor
49bLength0x09
50bDescriptorType0x04
51bInterfaceNumber0x00
52bAlternateSetting0x00
53bNumEndpoints0x01
54bInterfaceClass0x02
55bInterfaceSubClass0x02
56bInterfaceProtocol0x01
57iInterface0x00
CDC - Header Functional Descriptor
58bLength0x05
59bDescriptorType0x24
60bDescriptorSubtype0x00 - Header Functional Descriptor
61,62bcdCDC0x0110
CDC - Call Management Functional Descriptor
63bLength0x05
64bDescriptorType0x24
65bDescriptorSubtype0x01 - Call Management Functional Descriptor
66bmCapabilities0x01
67bDataInterface0x01
CDC - Abstract Control Management Functional Descriptor
68bLength0x04
69bDescriptorType0x24
70bDescriptorSubtype0x02 - Abstract Control Management Functional Descriptor
71bmCapabilities0x02
CDC - Union Functional Descriptor
72bLength0x05
73bDescriptorType0x24
74bDescriptorSubtype0x06 - Union Functional Descriptor
75bMasterInterface0x00
76bSlaveInterface0x01
Endpoint 3 Descriptor
77bLength0x07
78bDescriptorType0x05
79bEndpointAddress0x83
80bmAttributes0x03
81,82wMaxPacketSize0x0008
83bInterval0xff
Interface 1 Descriptor
84bLength0x09
85bDescriptorType0x04
86bInterfaceNumber0x01
87bAlternateSetting0x00
88bNumEndpoints0x02
89bInterfaceClass0x0A
90bInterfaceSubClass0x00
91bInterfaceProtocol0x00
92iInterface0x00
Endpoint 1 Descriptor
93bLength0x07
94bDescriptorType0x05
95bEndpointAddress0x81
96bmAttributes0x02
97,98wMaxPacketSize0x0002
99bInterval0x00
Endpoint 2 Descriptor
100bLength0x07
101bDescriptorType0x05
102bEndpointAddress0x02
103bmAttributes0x02
104,105wMaxPacketSize0x0001
106bInterval0x00
Interface 2 Descriptor
107bLength0x09
108bDescriptorType0x04
109bInterfaceNumber0x02
110bAlternateSetting0x00
111bNumEndpoints0x01
112bInterfaceClass0x02
113bInterfaceSubClass0x02
114bInterfaceProtocol0x01
115iInterface0x00
CDC - Header Functional Descriptor
116bLength0x05
117bDescriptorType0x24
118bDescriptorSubtype0x00 - Header Functional Descriptor
119,120bcdCDC0x0110
CDC - Call Management Functional Descriptor
121bLength0x05
122bDescriptorType0x24
123bDescriptorSubtype0x01 - Call Management Functional Descriptor
124bmCapabilities0x01
125bDataInterface0x02
CDC - Abstract Control Management Functional Descriptor
126bLength0x04
127bDescriptorType0x24
128bDescriptorSubtype0x02 - Abstract Control Management Functional Descriptor
129bmCapabilities0x02
CDC - Union Functional Descriptor
130bLength0x05
131bDescriptorType0x24
132bDescriptorSubtype0x06 - Union Functional Descriptor
133bMasterInterface0x02
134bSlaveInterface0x03
Endpoint 6 Descriptor
135bLength0x07
136bDescriptorType0x05
137bEndpointAddress0x86
138bmAttributes0x03
139,140wMaxPacketSize0x0008
141bInterval0xff
Interface 3 Descriptor
142bLength0x09
143bDescriptorType0x04
144bInterfaceNumber0x03
145bAlternateSetting0x00
146bNumEndpoints0x02
147bInterfaceClass0x0A
148bInterfaceSubClass0x00
149bInterfaceProtocol0x00
150iInterface0x00
Endpoint 4 Descriptor
151bLength0x07
152bDescriptorType0x05
153bEndpointAddress0x84
154bmAttributes0x02
155,156wMaxPacketSize0x0002
157bInterval0x00
Endpoint 5 Descriptor
158bLength0x07
159bDescriptorType0x05
160bEndpointAddress0x05
161bmAttributes0x02
162,163wMaxPacketSize0x0001
164bInterval0x00
Interface 4 Descriptor
165bLength0x09
166bDescriptorType0x04
167bInterfaceNumber0x04
168bAlternateSetting0x00
169bNumEndpoints0x01
170bInterfaceClass0x02
171bInterfaceSubClass0x02
172bInterfaceProtocol0x01
173iInterface0x00
CDC - Header Functional Descriptor
174bLength0x05
175bDescriptorType0x24
176bDescriptorSubtype0x00 - Header Functional Descriptor
177,178bcdCDC0x0110
CDC - Call Management Functional Descriptor
179bLength0x05
180bDescriptorType0x24
181bDescriptorSubtype0x01 - Call Management Functional Descriptor
182bmCapabilities0x01
183bDataInterface0x02
CDC - Abstract Control Management Functional Descriptor
184bLength0x04
185bDescriptorType0x24
186bDescriptorSubtype0x02 - Abstract Control Management Functional Descriptor
187bmCapabilities0x02
CDC - Union Functional Descriptor
188bLength0x05
189bDescriptorType0x24
190bDescriptorSubtype0x06 - Union Functional Descriptor
191bMasterInterface0x04
192bSlaveInterface0x05
Endpoint 9 Descriptor
193bLength0x07
194bDescriptorType0x05
195bEndpointAddress0x89
196bmAttributes0x03
197,198wMaxPacketSize0x0008
199bInterval0xff
Interface 5 Descriptor
200bLength0x09
201bDescriptorType0x04
202bInterfaceNumber0x05
203bAlternateSetting0x00
204bNumEndpoints0x02
205bInterfaceClass0x0A
206bInterfaceSubClass0x00
207bInterfaceProtocol0x00
208iInterface0x00
Endpoint 7 Descriptor
209bLength0x07
210bDescriptorType0x05
211bEndpointAddress0x87
212bmAttributes0x02
213,214wMaxPacketSize0x0002
215bInterval0x00
Endpoint 8 Descriptor
216bLength0x07
217bDescriptorType0x05
218bEndpointAddress0x08
219bmAttributes0x02
220,221wMaxPacketSize0x0001
222bInterval0x00
Interface 6 Descriptor
223bLength0x09
224bDescriptorType0x04
225bInterfaceNumber0x06
226bAlternateSetting0x00
227bNumEndpoints0x01
228bInterfaceClass0x02
229bInterfaceSubClass0x02
230bInterfaceProtocol0x01
231iInterface0x00
CDC - Header Functional Descriptor
232bLength0x05
233bDescriptorType0x24
234bDescriptorSubtype0x00 - Header Functional Descriptor
235,236bcdCDC0x0110
CDC - Call Management Functional Descriptor
237bLength0x05
238bDescriptorType0x24
239bDescriptorSubtype0x01 - Call Management Functional Descriptor
240bmCapabilities0x01
241bDataInterface0x02
CDC - Abstract Control Management Functional Descriptor
242bLength0x04
243bDescriptorType0x24
244bDescriptorSubtype0x02 - Abstract Control Management Functional Descriptor
245bmCapabilities0x02
CDC - Union Functional Descriptor
246bLength0x05
247bDescriptorType0x24
248bDescriptorSubtype0x06 - Union Functional Descriptor
249bMasterInterface0x06
250bSlaveInterface0x07
Endpoint 12 Descriptor
251bLength0x07
252bDescriptorType0x05
253bEndpointAddress0x8c
254bmAttributes0x03
255,256wMaxPacketSize0x0008
257bInterval0xff
Interface 7 Descriptor
258bLength0x09
259bDescriptorType0x04
260bInterfaceNumber0x07
261bAlternateSetting0x00
262bNumEndpoints0x02
263bInterfaceClass0x0A
264bInterfaceSubClass0x00
265bInterfaceProtocol0x00
266iInterface0x00
Endpoint 10 Descriptor
267bLength0x07
268bDescriptorType0x05
269bEndpointAddress0x8a
270bmAttributes0x02
271,272wMaxPacketSize0x0002
273bInterval0x00
Endpoint 11 Descriptor
274bLength0x07
275bDescriptorType0x05
276bEndpointAddress0x0b
277bmAttributes0x02
278,279wMaxPacketSize0x0001
280bInterval0x00
Interface 8 Descriptor
281bLength0x09
282bDescriptorType0x04
283bInterfaceNumber0x08
284bAlternateSetting0x00
285bNumEndpoints0x01
286bInterfaceClass0x02
287bInterfaceSubClass0x02
288bInterfaceProtocol0x01
289iInterface0x00
CDC - Header Functional Descriptor
290bLength0x05
291bDescriptorType0x24
292bDescriptorSubtype0x00 - Header Functional Descriptor
293,294bcdCDC0x0110
CDC - Call Management Functional Descriptor
295bLength0x05
296bDescriptorType0x24
297bDescriptorSubtype0x01 - Call Management Functional Descriptor
298bmCapabilities0x01
299bDataInterface0x02
CDC - Abstract Control Management Functional Descriptor
300bLength0x04
301bDescriptorType0x24
302bDescriptorSubtype0x02 - Abstract Control Management Functional Descriptor
303bmCapabilities0x02
CDC - Union Functional Descriptor
304bLength0x05
305bDescriptorType0x24
306bDescriptorSubtype0x06 - Union Functional Descriptor
307bMasterInterface0x08
308bSlaveInterface0x09
Endpoint 15 Descriptor
309bLength0x07
310bDescriptorType0x05
311bEndpointAddress0x8f
312bmAttributes0x03
313,314wMaxPacketSize0x0008
315bInterval0xff
Interface 9 Descriptor
316bLength0x09
317bDescriptorType0x04
318bInterfaceNumber0x09
319bAlternateSetting0x00
320bNumEndpoints0x02
321bInterfaceClass0x0A
322bInterfaceSubClass0x00
323bInterfaceProtocol0x00
324iInterface0x00
Endpoint 13 Descriptor
325bLength0x07
326bDescriptorType0x05
327bEndpointAddress0x8d
328bmAttributes0x02
329,330wMaxPacketSize0x0002
331bInterval0x00
Endpoint 14 Descriptor
332bLength0x07
333bDescriptorType0x05
334bEndpointAddress0x0e
335bmAttributes0x02
336,337wMaxPacketSize0x0001
338bInterval0x00


Deskriptory budou odeslány v následujících paketech:

Device Descriptor:
80 4B 12 01 00 02 EF 02 01 08 C3 63
80 C3 5D 06 19 10 04 00 00 00 DF AB
80 4B 00 01 3F 8F
Configuration Descriptor:
80 4B 09 02 53 01 0A 01 00 80 3E 45
80 C3 32 08 0B 00 02 02 02 12 94 97
80 4B 00 08 0B 02 02 02 02 01 2E 57
80 C3 00 08 0B 04 02 02 02 01 A6 57

80 4B 00 08 0B 06 02 02 02 01 DF 97
80 C3 00 08 0B 08 02 02 02 01 B6 56
80 4B 00 09 04 00 00 01 02 02 F6 11
80 C3 01 00 05 24 00 10 01 05 CE 3C

80 4B 24 01 01 01 04 24 02 02 51 54
80 C3 05 24 06 00 01 07 05 83 E9 63
80 4B 03 08 00 FF 09 04 01 00 21 F8
80 C3 02 0A 00 00 00 07 05 81 E6 DC

80 4B 02 02 00 00 07 05 02 02 8C 39
80 C3 01 00 00 09 04 02 00 01 C3 09
80 4B 02 02 01 00 05 24 00 10 5D 37
80 C3 01 05 24 01 01 02 04 24 B2 FB

80 4B 02 02 05 24 06 02 03 07 8D C5
80 C3 05 86 03 08 00 FF 09 04 4E 52
80 4B 03 00 02 0A 00 00 00 07 27 C0
80 C3 05 84 02 02 00 00 07 05 01 D2

80 4B 05 02 01 00 00 09 04 04 8E DB
80 C3 00 01 02 02 01 00 05 24 D5 A1
80 4B 00 10 01 05 24 01 01 02 B8 85
80 C3 04 24 02 02 05 24 06 04 E0 83

80 4B 05 07 05 89 03 08 00 FF 15 47
80 C3 09 04 05 00 02 0A 00 00 1B B1
80 4B 00 07 05 87 02 02 00 00 DD 07
80 C3 07 05 08 02 01 00 00 09 12 60

80 4B 04 06 00 01 02 02 01 00 44 2F
80 C3 05 24 00 10 01 05 24 01 11 37
80 4B 01 02 04 24 02 02 05 24 8F 48
80 C3 06 06 07 07 05 8C 03 08 2D B8

80 4B 00 FF 09 04 07 00 02 0A C1 B1
80 C3 00 00 00 07 05 8A 02 02 AB B3
80 4B 00 00 07 05 0B 02 01 00 D0 37
80 C3 00 09 04 08 00 01 02 02 17 D0

80 4B 01 00 05 24 00 10 01 05 CE 3C
80 C3 24 01 01 02 04 24 02 02 15 54
80 4B 05 24 06 08 09 07 05 8F 0A C7
80 C3 03 08 00 FF 09 04 09 00 26 38

80 4B 02 0A 00 00 00 07 05 8D E6 D9
80 C3 02 02 00 00 07 05 0E 02 89 39
80 4B 01 00 00 DF FF