00001 00004 #ifndef USB_H 00005 #define USB_H 00006 00007 #define USB_SET_ADDRESS_ENA 0xD0 00008 #define USB_SET_ENDP_ENA 0xD8 00009 #define USB_SET_MODE 0xF3 00010 #define USB_SET_DMA 0xFB 00011 #define USB_READ_INT 0xF4 00012 #define USB_SELECT_ENDP_CO 0x00 00013 #define USB_SELECT_ENDP_CI 0x01 00014 #define USB_SELECT_ENDP_E1O 0x02 00015 #define USB_SELECT_ENDP_E1I 0x03 00016 #define USB_SELECT_ENDP_E2O 0x04 00017 #define USB_SELECT_ENDP_E2I 0x05 00018 #define USB_ENDP_ST_CO 0x40 00019 #define USB_ENDP_ST_CI 0x41 00020 #define USB_ENDP_ST_E1O 0x42 00021 #define USB_ENDP_ST_E1I 0x43 00022 #define USB_ENDP_ST_E2O 0x44 00023 #define USB_ENDP_ST_E2I 0x45 00024 #define USB_ACCESS_BUF 0xF0 00025 #define USB_ACK_SETUP 0xF1 00026 #define USB_CLEAR_BUF 0xF2 00027 #define USB_VALIDATE_BUF 0xFA 00028 #define USB_SEND_RESUME 0xF6 00029 #define USB_READ_FRAME_NUMBER 0xF5 00030 00031 #define D12_INT_EOT 0x100 00032 #define D12_INT_SUSPENDCHANGE 0x80 00033 #define D12_INT_BUSRESET 0x40 00034 #define D12_INT_ENDP2IN 0x20 00035 #define D12_INT_ENDP2OUT 0x10 00036 #define D12_INT_ENDP1IN 0x08 00037 #define D12_INT_ENDP1OUT 0x04 00038 #define D12_INT_ENDP0IN 0x02 00039 #define D12_INT_ENDP0OUT 0x01 00040 00041 #define USB_ENDPOINT_HALT 0 00042 #define USB_ENDPOINT_DIRECTION_MASK 0x80 00043 #define USB_MAX_ENDPOINTS 0x03 00044 00045 00046 00047 #define D12_FULLEMPTY 0x01 00048 #define D12_STALL 0x02 00049 00050 #define D12_SETUPPACKET 0x20 00051 00052 #define EP0_TX_FIFO_SIZE 16 00053 #define EP0_RX_FIFO_SIZE 16 00054 #define EP0_PACKET_SIZE 16 00055 00056 #define EP1_TX_FIFO_SIZE 16 00057 #define EP1_RX_FIFO_SIZE 16 00058 #define EP1_PACKET_SIZE 16 00059 00060 #define EP2_TX_FIFO_SIZE 64 00061 #define EP2_RX_FIFO_SIZE 64 00062 #define EP2_PACKET_SIZE 64 00063 00064 00065 #define USB_REQUEST_MASK 0x0F 00066 #define USB_REQUEST_GET_STATUS 0x00 00067 #define USB_REQUEST_CLEAR_FEATURE 0x01 00068 #define USB_REQUEST_SET_FEATURE 0x03 00069 #define USB_REQUEST_SET_ADDRESS 0x05 00070 #define USB_REQUEST_GET_DESCRIPTOR 0x06 00071 #define USB_REQUEST_SET_DESCRIPTOR 0x07 00072 #define USB_REQUEST_GET_CONFIGURATION 0x08 00073 #define USB_REQUEST_SET_CONFIGURATION 0x09 00074 #define USB_REQUEST_GET_INTERFACE 0x0A 00075 #define USB_REQUEST_SET_INTERFACE 0x0B 00076 #define USB_REQUEST_SYNC_FRAME 0x0C 00077 00078 #define USB_REQUEST_TYPE_MASK 0x60 00079 #define USB_STANDARD_REQUEST 0x00 00080 #define USB_INTERFACE_REQUEST 0x01 00081 #define USB_ENDPOINT_REQUEST 0x02 00082 00083 #define USB_CLASS_REQUEST 0x20 00084 #define USB_VENDOR_REQUEST 0x40 00085 00086 #define USB_DEVICE_DESCRIPTOR_TYPE 0x01 00087 #define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02 00088 #define USB_STRING_DESCRIPTOR_TYPE 0x03 00089 #define USB_INTERFACE_DESCRIPTOR_TYPE 0x04 00090 #define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05 00091 #define USB_POWER_DESCRIPTOR_TYPE 0x06 00092 00093 #define USB_CLASS_CODE_TEST_CLASS_DEVICE 0xDC 00094 #define USB_SUBCLASS_CODE_TEST_CLASS_D12 0xA0 00095 #define USB_PROTOCOL_CODE_TEST_CLASS_D12 0xB0 00096 00097 #define USB_RECIPIENT 0x1f 00098 #define USB_RECIPIENT_DEVICE 0x00 00099 #define USB_RECIPIENT_INTERFACE 0x01 00100 #define USB_RECIPIENT_ENDPOINT 0x02 00101 00102 #define USB_SP_REQUEST 0 00103 #define USB_SP_VALUE 1 00104 #define USB_SP_INDEX 2 00105 #define USB_SP_LENGTH 3 00106 00107 00108 #endif