USB Device - Joystick/Mouse  1.0
usb.h
Go to the documentation of this file.
1 //---------------------------------------------
10 //---------------------------------------------
11 
12 #ifndef _USB_H_
13 #define _USB_H_
14 
15 #include <stdint.h>
16 
17 #ifndef SWAPBYTE
18  #define SWAPBYTE(addr) (((uint16_t)(*((uint8_t *)(addr)))) + \
19  (((uint16_t)(*(((uint8_t *)(addr)) + 1))) << 8))
20 #endif
21 
22 #ifndef LOWBYTE
23  #define LOWBYTE(x) ((uint8_t)(x & 0x00FF))
24 #endif
25 
26 #ifndef HIGHBYTE
27  #define HIGHBYTE(x) ((uint8_t)((x & 0xFF00) >>8))
28 #endif
29 
30 #define VENDOR_ID (0x1212)
31 #define PRODUCT_ID (0x1313)
32 
33 #define USB_CONFIG_DESC_SIZ (34)
34 #define USB_SIZ_DEVICE_DESC (18)
35 
36 #define USB_HID_DESC_SIZ 9
37 #define HID_MOUSE_REPORT_DESC_SIZE 74
38 
39 #define HID_DESCRIPTOR_TYPE 0x21
40 #define HID_REPORT_DESC 0x22
41 
42 #define HID_REQ_SET_PROTOCOL 0x0B
43 #define HID_REQ_GET_PROTOCOL 0x03
44 
45 #define HID_REQ_SET_IDLE 0x0A
46 #define HID_REQ_GET_IDLE 0x02
47 
48 //=== USB states
49 enum EDevState{
57 };
58 
59 //=== Dev status
60 enum EDevStatus {
65 };
66 
67 //=== bmRequestType recipient
69  EBM_DEVICE = 0,
72  EBM_OTHER = 3,
73 };
74 
75 //=== bRequest
76 enum EbRequest {
77  EBR_GET_STATUS = 0x00,
79  EBR_SET_FEATURE = 0x03,
80  EBR_SET_ADDRESS = 0x05,
87 };
88 
89 //=== bRequest pro INTERFACE
95 };
96 
97 //=== wValue
98 //--- Descriptor
99 enum EwValDesc {
108  EVD_OTG = 9,
109 };
110 
111 //=== String
112 //enum EwValStr {
113 // USBD_LANGID_STR = 0x00,
114 // USBD_MFC_STR = 0x01,
115 // USBD_PRODUCT_STR = 0x02,
116 // USBD_SERIAL_STR = 0x03,
117 // USBD_CONFIG_STR = 0x04,
118 // USBD_INTERFACE_STR = 0x05,
119 //};
120 
121 
122 //=== SETUP packet
123 struct SUsbSetupPckt {
124  uint8_t bmRequest;
125  uint8_t bRequest;
126  uint16_t wValue;
127  uint16_t wIndex;
128  uint16_t wLength;
129 };
130 
131 //=== Struktura nastaveni user EP
132 struct SUsbEP
133 {
134  uint8_t num;
135  uint8_t is_in;
136  uint8_t type;
137  uint16_t txFifoNum;
138  uint32_t maxPacketSize;
139  volatile uint8_t *xferBuff;
140  uint32_t xferLen;
141  uint32_t xferCnt;
142  uint32_t remDataLen;
143 };
144 
145 void USBInit();
146 void USBSendMouseMove(uint8_t *_mouseStat, uint16_t _len);
147 
148 #endif //_USB_H_
EbRequest
Definition: usb.h:76
Jiny.
Definition: usb.h:72
Definition: usb.h:51
Definition: usb.h:53
Definition: usb.h:93
Definition: usb.h:50
Typ bmRequestType pro deskriptor.
Definition: usb.h:100
uint16_t wIndex
Definition: usb.h:127
void USBInit()
Vlastni inicializace USB Funkce nastavi GPIO piny.
Definition: usb.cpp:329
uint32_t xferLen
Velikost pro preneseni.
Definition: usb.h:140
Definition: usb.h:105
Dotaz na endpoint.
Definition: usb.h:71
Definition: usb.h:54
Definition: usb.h:82
uint32_t maxPacketSize
maximalni velikost paketu
Definition: usb.h:138
EBmRqtTRecip
Definition: usb.h:68
EbRequestConf
Definition: usb.h:90
Definition: usb.h:91
Definition: usb.h:79
Definition: usb.h:84
Definition: usb.h:107
uint8_t bmRequest
< USB Setup packet
Definition: usb.h:124
Definition: usb.h:86
uint16_t txFifoNum
Cislo FIFO fronty.
Definition: usb.h:137
Definition: usb.h:85
uint8_t num
Cislo endpointu.
Definition: usb.h:134
USB adresovano.
Definition: usb.h:62
uint16_t wLength
Definition: usb.h:128
USB suspendovano.
Definition: usb.h:64
Definition: usb.h:101
uint16_t wValue
Definition: usb.h:126
Dotaz na interface.
Definition: usb.h:70
Definition: usb.h:102
Definition: usb.h:103
Definition: usb.h:56
void USBSendMouseMove(uint8_t *_mouseStat, uint16_t _len)
Uzivatelska funkce pro odeslani pohybu mysi.
Definition: usb.cpp:1642
Nastav adresu.
Definition: usb.h:80
Definition: usb.h:104
USB konfigurovano.
Definition: usb.h:63
uint32_t remDataLen
Velikost pro HOST.
Definition: usb.h:142
Definition: usb.h:92
uint32_t xferCnt
Pocet k prenosu.
Definition: usb.h:141
Definition: usb.h:123
volatile uint8_t * xferBuff
Buffer.
Definition: usb.h:139
EDevStatus
Definition: usb.h:60
EwValDesc
Definition: usb.h:99
Dotaz na device.
Definition: usb.h:69
Definition: usb.h:55
EDevState
Definition: usb.h:49
Definition: usb.h:94
Dotaz na konfiguraci.
Definition: usb.h:83
Definition: usb.h:77
Definition: usb.h:78
USB ve vychozim nastaveni.
Definition: usb.h:61
Definition: usb.h:106
Definition: usb.h:108
Definition: usb.h:52
uint8_t bRequest
Definition: usb.h:125
< Vlastni struktura pro EP
Definition: usb.h:132
uint8_t type
Typ EP. kontrolni ...
Definition: usb.h:136
uint8_t is_in
Je IN / OUT.
Definition: usb.h:135
Dotaz na descriptor.
Definition: usb.h:81