MassStorageKeyboard.txt 3.16 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/** \file
 *
 *  This file contains special DoxyGen information for the generation of the main page and other special
 *  documentation pages. It is not a project source file.
 */
 
/** \mainpage Combined Mass Storage and Keyboard Device Demo
 *
 *  \section SSec_Compat Demo Compatibility:
 *
 *  The following list indicates what microcontrollers are compatible with this demo.
 *
 *  - Series 7 USB AVRs
 *  - Series 6 USB AVRs
 *  - Series 4 USB AVRs
 *  - Series 2 USB AVRs
 *
 *  \section SSec_Info USB Information:
 *
 *  The following table gives a rundown of the USB utilization of this demo.
 *
 *  <table>
 *   <tr>
 *    <td><b>USB Mode:</b></td>
 *    <td>Device</td>
 *   </tr>
 *   <tr>
 *    <td><b>USB Classes:</b></td>
 *    <td>Mass Storage Device \n
 *        Human Interface Device</td>
 *   </tr>
 *   <tr> 
 *    <td><b>USB Subclasses:</b></td>
 *    <td>Bulk-Only Transport \n
 *        Keyboard Subclass</td>
 *   </tr>
 *   <tr>
 *    <td><b>Relevant Standards:</b></td>
 *    <td>USBIF Mass Storage Standard \n
 *        USB Bulk-Only Transport Standard \n
 *        SCSI Primary Commands Specification \n
 *        SCSI Block Commands Specification \n
 *        USBIF HID Specification \n
 *        USBIF HID Usage Tables</td>
 *   </tr>
 *   <tr>
 *    <td><b>Usable Speeds:</b></td>
 *    <td>Full Speed Mode</td>
 *   </tr>
 *  </table>
 *
 *  \section SSec_Description Project Description: 
 *
 *  Combined Mass Storage and Keyboard demonstration application. This gives a
 *  simple reference application for implementing a dual class USB Mass Storage
 *  and USB HID Keyboard device using the basic USB UFI and HID drivers in all
 *  modern OSes (i.e. no special drivers required).
 *  
 *  On start-up the system will automatically enumerate and function as an
 *  external mass storage device (which may be formatted and used in the same
 *  manner as commercial USB Mass Storage devices) and a USB keyboard.
 *  	
 *  You will need to format the mass storage drive upon first run of this
 *  demonstration - as the device acts only as a data block transport between
 *  the host and the storage media, it does not matter what file system is used,
 *  as the data interpretation is performed by the host and not the USB device.
 *
 *  Keys on the USB keyboard can be pressed by moving the board's Joystick.
 *  
 *  The USB control endpoint is managed entirely by the library using endpoint
 *  interrupts, as the INTERRUPT_CONTROL_ENDPOINT option is enabled. This allows for
 *  the host to reset the Mass Storage device state during long transfers without
 *  the need for complicated polling logic.
 *
 *  \section SSec_Options Project Options
 *
77
 *  The following defines can be found in this demo, which can control the demo behaviour when defined, or changed in value.
78
79
80
81
82
83
84
85
86
87
 *
 *  <table>
 *   <tr>
 *    <td><b>Define Name:</b></td>
 *    <td><b>Location:</b></td>
 *    <td><b>Description:</b></td>
 *   </tr>
 *   <tr>
 *    <td>TOTAL_LUNS</td>
 *    <td>MassStorage.h</td>
88
89
 *    <td>Total number of Logical Units (drives) in the device. The total device capacity is shared equally between each drive -
 *        this can be set to any positive non-zero amount.</td>
90
91
92
 *   </tr>
 *  </table>
 */