使用 Lufa 的示例,作为 MIDI 的参考
USB Composite Device Connection Status | Device connected | Current Configuration | 1 | Speed | Full (12 Mbit/s) | Device Address | 4 | Number Of Open Pipes | 2 |
Device Descriptor LUFAMIDI Demo Offset | Field | Size | Value | Description | 0 | bLength | 1 | 12h | | 1 | bDescriptorType | 1 | 01h | Device | 2 | bcdUSB | 2 | 0110h | USB Spec 1.1 | 4 | bDeviceClass | 1 | 00h | Class info in Ifc Descriptors | 5 | bDeviceSubClass | 1 | 00h | | 6 | bDeviceProtocol | 1 | 00h | | 7 | bMaxPacketSize0 | 1 | 08h | 8 bytes | 8 | idVendor | 2 | 03EBh | | 10 | idProduct | 2 | 2048h | | 12 | bcdDevice | 2 | 0001h | 0.01 | 14 | iManufacturer | 1 | 01h | "Dean Camera" | 15 | iProduct | 1 | 02h | "LUFA MIDI Demo" | 16 | iSerialNumber | 1 | 00h | | 17 | bNumConfigurations | 1 | 01h | |
Configuration Descriptor1 Offset | Field | Size | Value | Description | 0 | bLength | 1 | 09h | | 1 | bDescriptorType | 1 | 02h | Configuration | 2 | wTotalLength | 2 | 0065h | | 4 | bNumInterfaces | 1 | 02h | | 5 | bConfigurationValue | 1 | 01h | | 6 | iConfiguration | 1 | 00h | | 7 | bmAttributes | 1 | C0h | Self Powered | | 4..0: Reserved | | ...00000 | | | 5: Remote Wakeup | | ..0..... | No | | 6: Self Powered | | .1...... | Yes | | 7: Reserved (set to one)
(bus-powered for 1.0) | | 1....... | | 8 | bMaxPower | 1 | 32h | 100 mA |
Interface Descriptor 0/0 Audio,0 Endpoints Offset | Field | Size | Value | Description | 0 | bLength | 1 | 09h | | 1 | bDescriptorType | 1 | 04h | Interface | 2 | bInterfaceNumber | 1 | 00h | | 3 | bAlternateSetting | 1 | 00h | | 4 | bNumEndpoints | 1 | 00h | | 5 | bInterfaceClass | 1 | 01h | Audio | 6 | bInterfaceSubClass | 1 | 01h | Audio Control | 7 | bInterfaceProtocol | 1 | 00h | | 8 | iInterface | 1 | 00h | |
Audio Control InterfaceHeader Descriptor Offset | Field | Size | Value | Description | 0 | bLength | 1 | 09h | | 1 | bDescriptorType | 1 | 24h | Audio Control Interface Header | 2 | | 7 | 01 00 01 09 00 01 01 | |
Interface Descriptor 1/0 Audio,2 Endpoints Offset | Field | Size | Value | Description | 0 | bLength | 1 | 09h | | 1 | bDescriptorType | 1 | 04h | Interface | 2 | bInterfaceNumber | 1 | 01h | | 3 | bAlternateSetting | 1 | 00h | | 4 | bNumEndpoints | 1 | 02h | | 5 | bInterfaceClass | 1 | 01h | Audio | 6 | bInterfaceSubClass | 1 | 03h | MIDI Streaming | 7 | bInterfaceProtocol | 1 | 00h | | 8 | iInterface | 1 | 00h | |
MIDI Streaming InterfaceHeader Descriptor Offset | Field | Size | Value | Description | 0 | bLength | 1 | 07h | | 1 | bDescriptorType | 1 | 24h | MIDI Streaming Interface Header | 2 | | 5 | 01 00 01 41 00 | |
MIDI In Jack Descriptor Offset | Field | Size | Value | Description | 0 | bLength | 1 | 06h | | 1 | bDescriptorType | 1 | 24h | MIDI In Jack | 2 | | 4 | 02 01 01 00 | |
MIDI In Jack Descriptor Offset | Field | Size | Value | Description | 0 | bLength | 1 | 06h | | 1 | bDescriptorType | 1 | 24h | MIDI In Jack | 2 | | 4 | 02 02 02 00 | |
MIDI Out Jack Descriptor Offset | Field | Size | Value | Description | 0 | bLength | 1 | 09h | | 1 | bDescriptorType | 1 | 24h | MIDI Out Jack | 2 | | 7 | 03 01 03 01 02 01 00 | |
MIDI Out Jack Descriptor Offset | Field | Size | Value | Description | 0 | bLength | 1 | 09h | | 1 | bDescriptorType | 1 | 24h | MIDI Out Jack | 2 | | 7 | 03 02 04 01 01 01 00 | |
Endpoint Descriptor 01 1Out, Bulk, 64 bytes Offset | Field | Size | Value | Description | 0 | bLength | 1 | 09h | | 1 | bDescriptorType | 1 | 05h | Endpoint | 2 | bEndpointAddress | 1 | 01h | 1 Out | 3 | bmAttributes | 1 | 02h | Bulk | | 1..0: Transfer Type | | ......10 | Bulk | | 7..2: Reserved | | 000000.. | | 4 | wMaxPacketSize | 2 | 0040h | 64 bytes | 6 | bInterval | 1 | 05h | | 7 | bRefresh | 1 | 00h | | 8 | bSynchAddress | 1 | 00h | |
Unrecognized AudioClass-Specific Descriptor Offset | Field | Size | Value | Description | 0 | bLength | 1 | 05h | | 1 | bDescriptorType | 1 | 25h | Unrecognized Audio Class-Specific | 2 | | 3 | 01 01 01 | |
Endpoint Descriptor 82 2In, Bulk, 64 bytes Offset | Field | Size | Value | Description | 0 | bLength | 1 | 09h | | 1 | bDescriptorType | 1 | 05h | Endpoint | 2 | bEndpointAddress | 1 | 82h | 2 In | 3 | bmAttributes | 1 | 02h | Bulk | | 1..0: Transfer Type | | ......10 | Bulk | | 7..2: Reserved | | 000000.. | | 4 | wMaxPacketSize | 2 | 0040h | 64 bytes | 6 | bInterval | 1 | 05h | | 7 | bRefresh | 1 | 00h | | 8 | bSynchAddress | 1 | 00h | |
Unrecognized AudioClass-Specific Descriptor Offset | Field | Size | Value | Description | 0 | bLength | 1 | 05h | | 1 | bDescriptorType | 1 | 25h | Unrecognized Audio Class-Specific | 2 | | 3 | 01 01 03 | |
代码上和之前的串口非常类似(MIDI 可以看作是波特率特殊的串口)
USB_MIDI.zip
(376.72 KB, 下载次数: 2)
|