Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
USB18.inc
Package: USBFM.zip [view]
Upload User: wang202020
Upload Date: 2021-02-07
Package Size: 182k
Code Size: 9k
Category:
SCM
Development Platform:
HTML/CSS
- ; MUID = Microchip USB Class ID
- ; Used to identify which of the USB classes owns the current
- ; session of control transfer over EP0
- #define MUID_NULL 0
- #define MUID_USB9 1
- #define MUID_HID 2
- #define MUID_CDC 3
- #define MUID_MSD 4
- ; Buffer Descriptor Status Register Initialization Parameters
- #define _BSTALL 0x04 ; Buffer Stall enable
- #define _DTSEN 0x08 ; Data Toggle Synch enable
- #define _INCDIS 0x10 ; Address increment disable
- #define _KEN 0x20 ; SIE keeps buff descriptors enable
- #define _DAT0 0x00 ; DATA0 packet expected next
- #define _DAT1 0x40 ; DATA1 packet expected next
- #define _DTSMASK 0x40 ; DTS Mask
- #define _USIE 0x80 ; SIE owns buffer
- #define _UCPU 0x00 ; CPU owns buffer
- ; USB Device States - To be used with [byte usb_device_state]
- #define DETACHED_STATE 0
- #define ATTACHED_STATE 1
- #define POWERED_STATE 2
- #define DEFAULT_STATE 3
- #define ADR_PENDING_STATE 4
- #define ADDRESS_STATE 5
- #define CONFIGURED_STATE 6
- ; Memory Types for Control Transfer - used in USB_DEVICE_STATUS
- ;#define _RAM 0
- ;#define _ROM 1
- ; From usbdefs_std_dsc.h
- ; Descriptor Types
- #define DSC_DEV 0x01
- #define DSC_CFG 0x02
- #define DSC_STR 0x03
- #define DSC_INTF 0x04
- #define DSC_EP 0x05
- ; USB Endpoint Definitions
- #define _EP01_OUT 0x01
- #define _EP01_IN 0x81
- #define _EP02_OUT 0x02
- #define _EP02_IN 0x82
- #define _EP03_OUT 0x03
- #define _EP03_IN 0x83
- #define _EP04_OUT 0x04
- #define _EP04_IN 0x84
- #define _EP05_OUT 0x05
- #define _EP05_IN 0x85
- #define _EP06_OUT 0x06
- #define _EP06_IN 0x86
- #define _EP07_OUT 0x07
- #define _EP07_IN 0x87
- #define _EP08_OUT 0x08
- #define _EP08_IN 0x88
- #define _EP09_OUT 0x09
- #define _EP09_IN 0x89
- #define _EP10_OUT 0x0A
- #define _EP10_IN 0x8A
- #define _EP11_OUT 0x0B
- #define _EP11_IN 0x8B
- #define _EP12_OUT 0x0C
- #define _EP12_IN 0x8C
- #define _EP13_OUT 0x0D
- #define _EP13_IN 0x8D
- #define _EP14_OUT 0x0E
- #define _EP14_IN 0x8E
- #define _EP15_OUT 0x0F
- #define _EP15_IN 0x8F
- ; Configuration Attributes
- ;#define _DEFAULT 0x01<<7 ; Default Value (Bit 7 is set)
- ;#define _SELF 0x01<<6 ; Self-powered (Supports if set)
- ;#define _RWU 0x01<<5 ; Remote Wakeup (Supports if set)
- ; Endpoint Transfer Type
- ;#define _CTRL 0x00 ; Control Transfer
- ;#define _ISO 0x01 ; Isochronous Transfer
- ;#define _BULK 0x02 ; Bulk Transfer
- ;#define _INT 0x03 ; Interrupt Transfer
- ; Isochronous Endpoint Synchronization Type
- ;#define _NS 0x00<<2 ; No Synchronization
- ;#define _AS 0x01<<2 ; Asynchronous
- ;#define _AD 0x02<<2 ; Adaptive
- ;#define _SY 0x03<<2 ; Synchronous
- ; Isochronous Endpoint Usage Type
- ;#define _DE 0x00<<4 ; Data endpoint
- ;#define _FE 0x01<<4 ; Feedback endpoint
- ;#define _IE 0x02<<4 ; Implicit feedback Data endpoint
- ; From usb9.h
- ; Standard Request Codes
- ; USB 2.0 Spec Ref Table 9-4
- #define GET_STATUS 0
- #define CLR_FEATURE 1
- #define SET_FEATURE 3
- #define SET_ADR 5
- #define GET_DSC 6
- #define SET_DSC 7
- #define GET_CFG 8
- #define SET_CFG 9
- #define GET_INTF 10
- #define SET_INTF 11
- #define SYNCH_FRAME 12
- ; Standard Feature Selectors
- #define DEVICE_REMOTE_WAKEUP 0x01
- #define ENDPOINT_HALT 0x00
- ; From hid.h
- ; Class-Specific Requests
- #define GET_REPORT 0x01
- #define GET_IDLE 0x02
- #define GET_PROTOCOL 0x03
- #define SET_REPORT 0x09
- #define SET_IDLE 0x0A
- #define SET_PROTOCOL 0x0B
- ; Class Descriptor Types
- #define DSC_HID 0x21
- #define DSC_RPT 0x22
- #define DSC_PHY 0x23
- ; Protocol Selection
- #define BOOT_PROTOCOL 0x00
- #define RPT_PROTOCOL 0x01
- ; HID Interface Class Code
- #define HID_INTF 0x03
- ; HID Interface Class SubClass Codes
- #define BOOT_INTF_SUBCLASS 0x01
- ; HID Interface Class Protocol Codes
- #define HID_PROTOCOL_NONE 0x00
- #define HID_PROTOCOL_KEYBOAD 0x01
- #define HID_PROTOCOL_MOUSE 0x02
- ; HID Report codes used in GET_REPORT and SET_REPORT requests
- #define HID_INPUT_REPORT 1
- #define HID_OUTPUT_REPORT 2
- #define HID_FEATURE_REPORT 3
- ; From cdc.h
- ; Class-Specific Requests
- #define SEND_ENCAPSULATED_COMMAND 0x00
- #define GET_ENCAPSULATED_RESPONSE 0x01
- #define SET_COMM_FEATURE 0x02
- #define GET_COMM_FEATURE 0x03
- #define CLEAR_COMM_FEATURE 0x04
- #define SET_LINE_CODING 0x20
- #define GET_LINE_CODING 0x21
- #define SET_CONTROL_LINE_STATE 0x22
- #define SEND_BREAK 0x23
- ; Notifications
- ; Note: Notifications are polled over
- ; Communication Interface (Interrupt Endpoint)
- #define NETWORK_CONNECTION 0x00
- #define RESPONSE_AVAILABLE 0x01
- #define SERIAL_STATE 0x20
- ; Device Class Code
- #define CDC_DEVICE 0x02
- ; Communication Interface Class Code
- #define COMM_INTF 0x02
- ; Communication Interface Class SubClass Codes
- #define ABSTRACT_CONTROL_MODEL 0x02
- ; Communication Interface Class Control Protocol Codes
- #define V25TER 0x01 ; Common AT commands ("Hayes(TM)")
- ; Data Interface Class Codes
- #define DATA_INTF 0x0A
- ; Data Interface Class Protocol Codes
- #define NO_PROTOCOL 0x00 ; No class specific protocol required
- ; Communication Feature Selector Codes
- #define ABSTRACT_STATE 0x01
- #define COUNTRY_SETTING 0x02
- ; Functional Descriptors
- ; Type Values for the bDscType Field
- #define CS_INTERFACE 0x24
- #define CS_ENDPOINT 0x25
- ; bDscSubType in Functional Descriptors
- #define DSC_FN_HEADER 0x00
- #define DSC_FN_CALL_MGT 0x01
- #define DSC_FN_ACM 0x02 ; ACM - Abstract Control Management
- #define DSC_FN_DLM 0x03 ; DLM - Direct Line Managment
- #define DSC_FN_TELEPHONE_RINGER 0x04
- #define DSC_FN_RPT_CAPABILITIES 0x05
- #define DSC_FN_UNION 0x06
- #define DSC_FN_COUNTRY_SELECTION 0x07
- #define DSC_FN_TEL_OP_MODES 0x08
- #define DSC_FN_USB_TERMINAL 0x09
- ; more.... see Table 25 in USB CDC Specification 1.1
- ; CDC Bulk IN transfer states
- #define CDC_TX_READY 0
- #define CDC_TX_BUSY 1
- #define CDC_TX_BUSY_ZLP 2 ; ZLP: Zero Length Packet
- #define CDC_TX_COMPLETING 3
- #define LINE_CODING_LENGTH 0x07
- #define dummy_length 0x08
- ; From usbctrltrf.h
- ; Control Transfer States
- #define WAIT_SETUP 0
- #define CTRL_TRF_TX 1
- #define CTRL_TRF_RX 2
- ; USB PID: Token Types - See chapter 8 in the USB specification
- #define SETUP_TOKEN 0x0d
- #define OUT_TOKEN 0x01
- #define IN_TOKEN 0x09
- ; bmRequestType Definitions
- #define HOST_TO_DEV 0
- #define DEV_TO_HOST 1
- #define STANDARD 0x00
- #define CLASS 0x01
- #define VENDOR 0x02
- #define RCPT_DEV 0
- #define RCPT_INTF 1
- #define RCPT_EP 2
- #define RCPT_OTH 3
- ; From usbdrv.h
- ; UCFG Initialization Parameters
- #define _PPBM0 0x00 ; Pingpong Buffer Mode 0
- #define _PPBM1 0x01 ; Pingpong Buffer Mode 1
- #define _PPBM2 0x02 ; Pingpong Buffer Mode 2
- #define _LS 0x00 ; Use Low-Speed USB Mode
- #define _FS 0x04 ; Use Full-Speed USB Mode
- #define _TRINT 0x00 ; Use internal transceiver
- #define _TREXT 0x08 ; Use external transceiver
- #define _PUEN 0x10 ; Use internal pull-up resistor
- #define _OEMON 0x40 ; Use SIE output indicator
- #define _UTEYE 0x80 ; Use Eye-Pattern test
- ; UEPn Initialization Parameters
- #define EP_CTRL 0x06 ; Cfg Control pipe for this ep
- #define EP_OUT 0x0C ; Cfg OUT only pipe for this ep
- #define EP_IN 0x0A ; Cfg IN only pipe for this ep
- #define EP_OUT_IN 0x0E ; Cfg both OUT & IN pipes for this ep
- #define HSHK_EN 0x10 ; Enable handshake packet
- #define OUT 0
- #define IN 1
- #define PIC_EP_NUM_MASK 0b01111000
- #define PIC_EP_DIR_MASK 0b00000100
- #define EP00_OUT ((0x00<<3)|(OUT<<2))
- #define EP00_IN ((0x00<<3)|(IN<<2))
- #define EP01_OUT ((0x01<<3)|(OUT<<2))
- #define EP01_IN ((0x01<<3)|(IN<<2))
- #define EP02_OUT ((0x02<<3)|(OUT<<2))
- #define EP02_IN ((0x02<<3)|(IN<<2))
- #define EP03_OUT ((0x03<<3)|(OUT<<2))
- #define EP03_IN ((0x03<<3)|(IN<<2))
- #define EP04_OUT ((0x04<<3)|(OUT<<2))
- #define EP04_IN ((0x04<<3)|(IN<<2))
- #define EP05_OUT ((0x05<<3)|(OUT<<2))
- #define EP05_IN ((0x05<<3)|(IN<<2))
- #define EP06_OUT ((0x06<<3)|(OUT<<2))
- #define EP06_IN ((0x06<<3)|(IN<<2))
- #define EP07_OUT ((0x07<<3)|(OUT<<2))
- #define EP07_IN ((0x07<<3)|(IN<<2))
- #define EP08_OUT ((0x08<<3)|(OUT<<2))
- #define EP08_IN ((0x08<<3)|(IN<<2))
- #define EP09_OUT ((0x09<<3)|(OUT<<2))
- #define EP09_IN ((0x09<<3)|(IN<<2))
- #define EP10_OUT ((0x0A<<3)|(OUT<<2))
- #define EP10_IN ((0x0A<<3)|(IN<<2))
- #define EP11_OUT ((0x0B<<3)|(OUT<<2))
- #define EP11_IN ((0x0B<<3)|(IN<<2))
- #define EP12_OUT ((0x0C<<3)|(OUT<<2))
- #define EP12_IN ((0x0C<<3)|(IN<<2))
- #define EP13_OUT ((0x0D<<3)|(OUT<<2))
- #define EP13_IN ((0x0D<<3)|(IN<<2))
- #define EP14_OUT ((0x0E<<3)|(OUT<<2))
- #define EP14_IN ((0x0E<<3)|(IN<<2))
- #define EP15_OUT ((0x0F<<3)|(OUT<<2))
- #define EP15_IN ((0x0F<<3)|(IN<<2))