# usb_defs

USB constant definitions

Author | Albert Faber, Copyright © 2008..2021, all rights reserved.
Adapted-by | Rob Jansen
Compiler | 2.5r5

Description

    Constants for configurting the USB interface

Sources

    http://www.usb.org for USB specifications

Dependencies

No dependency found

## Summary

### Global variables/contants

- `const byte USB_DT_HID = 0x21`
- `const byte USB_BDSTATUS_DTSEN = 3`
- `const byte USB_REQUEST_SET_CONFIGURATION = 0x09`
- `const byte USB_BDSTATUS_UOWN = 7`
- `const byte USB_REQUEST_GET_DESCRIPTOR = 0x06`
- `var volatile word usb_bd1in_addr at usb_bd1in[2]`
- `var volatile bit EP2STALL at UEP2:0`
- `var volatile byte usb_bd1out_cnt at usb_bd1out[1]`
- `var volatile byte usb_bd2in_stat at usb_bd2in[0]`
- `var volatile byte usb_bd3in_stat at usb_bd3in[0]`
- `const byte USB_PID_DATA0 = 0b00000011`
- `var volatile byte usb_sdp_request_type at usb_sdp_loc`
- `const byte USB_STATE_DEFAULT = 1`
- `const USB_REQUEST_TYPE1_BIT = 6`
- `var volatile word usb_bd0in_addr at usb_bd0in[2]`
- `const byte USB_BOOT_INTF_SUBCLASS = 0x01`
- `const byte USB_STATUS_IDLE = 0`
- `var volatile byte usb_bd1out_addrl at usb_bd1out[2]`
- `const byte USB_EP_IN = 0x0A`
- `const byte USB_BD_CNT_IDX = 0x01`
- `var volatile byte usb_bd2in_addrl at usb_bd2in[2]`
- `const byte USB_BDSTATUS_KEN = 5`
- `const byte USB_PID_DATA1 = 0b00001011`
- `var volatile byte usb_bd0out[4] at ( USB_BASE_ADDRESS + 0x0000 )`
- `const byte USB_DT_HID_REPORT = 0x22`
- `var volatile bit EP1OUTEN at UEP1:2`
- `var volatile word usb_bd2out_addr at usb_bd2out[2]`
- `var volatile byte usb_sdp_request at usb_sdp_loc + 1`
- `var volatile byte usb_bd2in[4] at ( USB_BASE_ADDRESS + 0x0014 )`
- `const byte USB_CDC_DEVICE = 0x02`
- `const byte USB_CM_CTRL_WRITE_DATA_STAGE_CLASS = 2`
- `const byte USB_DT_ENDPOINT = 0x05`
- `const byte USB_FULL_SPEED = 0x04`
- `var volatile bit EP1HSHK at UEP1:4`
- `var volatile byte usb_bd1in_addrh at usb_bd1in[3]`
- `const byte USB_ABSTRACT_CONTROL_MODEL = 0x02`
- `var volatile byte usb_bd1in[4] at ( USB_BASE_ADDRESS + 0x000C )`
- `const byte USB_EXTERNAL_TRANSCEIVER = 0x08`
- `var volatile byte usb_bd2in_cnt at usb_bd2in[1]`
- `const byte USB_BDSTATUS_BSTALL = 2`
- `const byte USB_COMM_INTF = 0x02`
- `var byte usb_delivery_buffer[USB_DELIVERY_BUFFER_MAX_SIZE] at USB_IN_DELIVERY_BUFFER_LOC`
- `var volatile byte usb_sdp[8] at usb_sdp_loc`
- `const byte USB_DT_DEBUG = 0x0a`
- `var volatile byte usb_bd0out_cnt at usb_bd0out[1]`
- `const byte USB_REQUEST_SET_ADDRESS = 0x05`
- `const byte USB_PING_PONG__NO_PING_PONG = 0x00`
- `var volatile byte usb_bd1out[4] at ( USB_BASE_ADDRESS + 0x0008 )`
- `const byte USB_DT_OTG = 0x09`
- `const byte USB_BDSTATUS_INCDIS = 4`
- `const byte USB_PID_STALL = 0b00001110`
- `const byte USB_EPT_BULK = 0x02`
- `const byte USB_HID_PROTOCOL_NONE = 0x00`
- `var volatile byte usb_bd0out_addrl at usb_bd0out[2]`
- `var volatile word usb_sdp_length at usb_sdp_loc + 6`
- `const byte USB_BDSTATUS_BC8 = 0`
- `var volatile word usb_bd3in_addr at usb_bd3in[2]`
- `var volatile byte usb_bd0in_cnt at usb_bd0in[1]`
- `const byte USB_PID_IN = 0b00001001`
- `var volatile bit EP2OUTEN at UEP2:2`
- `var volatile byte usb_bd3out[4] at ( USB_BASE_ADDRESS + 0x0018 )`
- `var volatile bit EP3HSHK at UEP3:4`
- `const byte USB_CM_CTRL_READ_AWAITING_STATUS = 5`
- `const byte USB_DT_OTHER_SPEED_CONFIG = 0x07`
- `var volatile byte usb_bd0in_stat at usb_bd0in[0]`
- `const byte USB_PULLUP_ENABLE = 0x10`
- `const byte USB_CM_CTRL_READ_DATA_STAGE_CLASS = 4`
- `const byte USB_PID_SETUP = 0b00001101`
- `const byte USB_REQUEST_GET_CONFIGURATION = 0x08`
- `const byte USB_REQUEST_REQ_SYNCH_FRAME = 0x0c`
- `const byte USB_HSHK_EN = 0x10`
- `const byte USB_PID_ACK = 0b00000010`
- `var volatile byte usb_bd2in_addrh at usb_bd2in[3]`
- `var volatile byte usb_bd0in_addrl at usb_bd0in[2]`
- `var volatile byte usb_bd3in_cnt at usb_bd3in[1]`
- `var volatile byte usb_bd3out_stat at usb_bd3out[0]`
- `const byte USB_EP_OUT_IN = 0x0E`
- `var volatile byte usb_bd3out_cnt at usb_bd3out[1]`
- `var volatile byte usb_bd0out_addrh at usb_bd0out[3]`
- `var volatile byte usb_bd0in[4] at ( USB_BASE_ADDRESS + 0x0004 )`
- `var volatile word usb_bd2in_addr at usb_bd2in[2]`
- `const byte USB_HID_INTF = 0x03`
- `const bit USB_SELF_POWERED = 1`
- `const byte USB_DT_CONFIGURATION = 0x02`
- `const byte USB_BD_ADDRL_IDX = 0x03`
- `const byte USB_DT_DEVICE_QUALIFIER = 0x06`
- `var volatile byte usb_bd3in[4] at ( USB_BASE_ADDRESS + 0x001C )`
- `var volatile byte usb_bd1in_addrl at usb_bd1in[2]`
- `const byte USB_BDSTATUS_DTS = 6`
- `const byte USB_DT_CS_INTERFACE = 0x24`
- `var volatile byte usb_bd1in_cnt at usb_bd1in[1]`
- `const byte USB_EPT_CTRL = 0x00`
- `const byte USB_DT_INTERFACE = 0x04`
- `const byte USB_PULLUP_DISABLED = 0x00`
- `const byte USB_REQUEST_GET_INTERFACE = 0x0a`
- `const byte USB_CM_CTRL_WRITE_DATA_STAGE = 1`
- `const byte USB_STATE_CONFIGURED = 3`
- `const byte USB_DT_INTERFACE_ASSOC = 0x0b`
- `const byte USB_HID_PROTOCOL_MOUSE = 0x02`
- `var byte usb_delivery_bytes_max_send`
- `const byte USB_BD_ADDRH_IDX = 0x02`
- `var volatile word usb_sdp_value at usb_sdp_loc + 2`
- `const byte USB_PING_PONG__EP0_OUT_ONLY = 0x01`
- `const byte USB_EPT_INT = 0x03`
- `var volatile byte usb_bd3out_addrh at usb_bd3out[3]`
- `const byte USB_PID_NAK = 0b00001010`
- `const byte USB_REQUEST_SET_DESCRIPTOR = 0x07`
- `var volatile byte usb_bd3out_addrl at usb_bd3out[2]`
- `var volatile byte usb_bd2out_cnt at usb_bd2out[1]`
- `var volatile word usb_bd1out_addr at usb_bd1out[2]`
- `const byte USB_REQUEST_SET_FEATURE = 0x03`
- `var volatile bit EP3CONDIS at UEP3:3`
- `var volatile bit EP1STALL at UEP1:0`
- `var volatile bit EP3INEN at UEP3:1`
- `const byte USB_PID_MDATA = 0b00001111`
- `const byte USB_PID_OUT = 0b00000001`
- `var byte usb_state = USB_STATE_POWERED`
- `const byte USB_DELIVERY_BUFFER_MAX_SIZE = 80`
- `const byte USB_BDSTATUS_BC9 = 1`
- `const byte USB_STATE_ADDRESS = 2`
- `const byte USB_CM_IDLE = 0`
- `const USB_DEVICE_DESCRIPTOR_SIZE = 18`
- `var byte usb_delivery_buffer_size`
- `const byte USB_DT_INTERFACE_POWER = 0x08`
- `var volatile byte usb_bd2out[4] at ( USB_BASE_ADDRESS + 0x0010 )`
- `const byte USB_EP_CTRL = 0x06`
- `var volatile word usb_bd0out_addr at usb_bd0out[2]`
- `var volatile bit EP3STALL at UEP3:0`
- `var volatile byte usb_bd2out_stat at usb_bd2out[0]`
- `const byte USB_EP_OUT = 0x0C`
- `var byte usb_delivery_bytes_to_send`
- `var byte usb_address = 0`
- `var volatile byte usb_bd3in_addrh at usb_bd3in[3]`
- `var volatile byte usb_bd1out_addrh at usb_bd1out[3]`
- `var volatile word usb_sdp_index at usb_sdp_loc + 4`
- `const byte USB_DT_DEVICE = 0x01`
- `const byte USB_HIGHEST_EP = 3`
- `const byte USB_EPT_ISO = 0x01`
- `var volatile byte usb_bd2out_addrl at usb_bd2out[2]`
- `const byte USB_CM_CTRL_WRITE_SENDING_STATUS = 6`
- `var volatile bit EP2CONDIS at UEP2:3`
- `const byte USB_V25TER = 0x01`
- `var volatile byte usb_bd3in_addrl at usb_bd3in[2]`
- `var volatile byte usb_bd0out_stat at usb_bd0out[0]`
- `var volatile byte usb_bd1in_stat at usb_bd1in[0]`
- `const byte USB_VENDOR_INTF = 0xFF`
- `const byte USB_PING_PONG__ALL_BUT_EP0 = 0x03`
- `const byte USB_PID_NYET = 0b00000110`
- `const byte USB_REQUEST_CLEAR_FEATURE = 0x01`
- `const byte USB_REQUEST_SET_INTERFACE = 0x0b`
- `const USB_DATA_STAGE_DIR_BIT = 7`
- `var volatile byte usb_bd1out_stat at usb_bd1out[0]`
- `const byte USB_INTERNAL_TRANSCEIVER = 0x00`
- `const byte USB_STATE_POWERED = 0`
- `var volatile bit EP2HSHK at UEP2:4`
- `const byte USB_PID_SOF = 0b00000101`
- `const USB_REQUEST_TYPE0_BIT = 5`
- `var volatile byte usb_bd0in_addrh at usb_bd0in[3]`
- `const byte USB_CM_CTRL_READ_DATA_STAGE = 3`
- `var volatile word usb_bd3out_addr at usb_bd3out[2]`
- `var byte usb_control_mode = USB_CM_IDLE`
- `var byte usb_delivery_bytes_sent`
- `var volatile byte usb_bd2out_addrh at usb_bd2out[3]`
- `const byte USB_PING_PONG__FULL_PING_PONG = 0x02`
- `const byte USB_LOW_SPEED = 0x00`
- `var volatile bit EP2INEN at UEP2:1`
- `const byte USB_PID_DATA2 = 0b00000111`
- `const byte USB_BD_STAT_IDX = 0x00`
- `var volatile bit EP3OUTEN at UEP3:2`
- `const byte USB_REQUEST_GET_STATUS = 0x00`
- `const byte USB_HID_PROTOCOL_KEYBOARD = 0x01`
- `var byte usb_status = USB_STATUS_IDLE`
- `const byte USB_STATUS_SET_ADDRESS = 1`
- `var volatile bit EP1CONDIS at UEP1:3`
- `const byte USB_DT_STRING = 0x03`
- `var volatile bit EP1INEN at UEP1:1`

### Procedures

### Functions

## API details

### Global variables/contants

- `const byte USB_DT_HID = 0x21`

  No documentation found

- `const byte USB_BDSTATUS_DTSEN = 3`

      1 data toggle sync on, 0 data toggle sync off

- `const byte USB_REQUEST_SET_CONFIGURATION = 0x09`

  No documentation found

- `const byte USB_BDSTATUS_UOWN = 7`

      Bits of BDnstat when UOWN = 0, that is CPU mode (data written from MCU to the Host)

- `const byte USB_REQUEST_GET_DESCRIPTOR = 0x06`

  No documentation found

- `var volatile word usb_bd1in_addr at usb_bd1in[2]`

  No documentation found

- `var volatile bit EP2STALL at UEP2:0`

  No documentation found

- `var volatile byte usb_bd1out_cnt at usb_bd1out[1]`

  No documentation found

- `var volatile byte usb_bd2in_stat at usb_bd2in[0]`

  No documentation found

- `var volatile byte usb_bd3in_stat at usb_bd3in[0]`

  No documentation found

- `const byte USB_PID_DATA0 = 0b00000011`

      Data

- `var volatile byte usb_sdp_request_type at usb_sdp_loc`

  No documentation found

- `const byte USB_STATE_DEFAULT = 1`

      USB device is now negotiating

- `const USB_REQUEST_TYPE1_BIT = 6`

      00 = USB standard request

- `var volatile word usb_bd0in_addr at usb_bd0in[2]`

  No documentation found

- `const byte USB_BOOT_INTF_SUBCLASS = 0x01`

  No documentation found

- `const byte USB_STATUS_IDLE = 0`

      USB_STATUS

- `var volatile byte usb_bd1out_addrl at usb_bd1out[2]`

  No documentation found

- `const byte USB_EP_IN = 0x0A`

      Cfg IN only pipe for this ep

- `const byte USB_BD_CNT_IDX = 0x01`

  No documentation found

- `var volatile byte usb_bd2in_addrl at usb_bd2in[2]`

  No documentation found

- `const byte USB_BDSTATUS_KEN = 5`

      1 USB will keep buffer indefinately, 0 USB will hand back buffer

- `const byte USB_PID_DATA1 = 0b00001011`

  No documentation found

- `var volatile byte usb_bd0out[4] at ( USB_BASE_ADDRESS + 0x0000 )`

      Buffer descriptors.

- `const byte USB_DT_HID_REPORT = 0x22`

  No documentation found

- `var volatile bit EP1OUTEN at UEP1:2`

  No documentation found

- `var volatile word usb_bd2out_addr at usb_bd2out[2]`

  No documentation found

- `var volatile byte usb_sdp_request at usb_sdp_loc + 1`

  No documentation found

- `var volatile byte usb_bd2in[4] at ( USB_BASE_ADDRESS + 0x0014 )`

  No documentation found

- `const byte USB_CDC_DEVICE = 0x02`

      Device Class Code

- `const byte USB_CM_CTRL_WRITE_DATA_STAGE_CLASS = 2`

      Device receiving data during the data stage destined for the class

- `const byte USB_DT_ENDPOINT = 0x05`

  No documentation found

- `const byte USB_FULL_SPEED = 0x04`

  No documentation found

- `var volatile bit EP1HSHK at UEP1:4`

  No documentation found

- `var volatile byte usb_bd1in_addrh at usb_bd1in[3]`

  No documentation found

- `const byte USB_ABSTRACT_CONTROL_MODEL = 0x02`

      Communication Interface Class SubClass Codes

- `var volatile byte usb_bd1in[4] at ( USB_BASE_ADDRESS + 0x000C )`

  No documentation found

- `const byte USB_EXTERNAL_TRANSCEIVER = 0x08`

  No documentation found

- `var volatile byte usb_bd2in_cnt at usb_bd2in[1]`

  No documentation found

- `const byte USB_BDSTATUS_BSTALL = 2`

      1 buffer stall enabled, 0 buffer stall disabled

- `const byte USB_COMM_INTF = 0x02`

      Communication Interface Class Code

- `var byte usb_delivery_buffer[USB_DELIVERY_BUFFER_MAX_SIZE] at USB_IN_DELIVERY_BUFFER_LOC`

  No documentation found

- `var volatile byte usb_sdp[8] at usb_sdp_loc`

      Definitions for the buffer for storage of the SETUP package data. The
      SETUP package is 8 bytes long.

- `const byte USB_DT_DEBUG = 0x0a`

  No documentation found

- `var volatile byte usb_bd0out_cnt at usb_bd0out[1]`

  No documentation found

- `const byte USB_REQUEST_SET_ADDRESS = 0x05`

  No documentation found

- `const byte USB_PING_PONG__NO_PING_PONG = 0x00`

      0b00

- `var volatile byte usb_bd1out[4] at ( USB_BASE_ADDRESS + 0x0008 )`

  No documentation found

- `const byte USB_DT_OTG = 0x09`

  No documentation found

- `const byte USB_BDSTATUS_INCDIS = 4`

      1 Address increment disabled (for SPP), 0 address increment enabled

- `const byte USB_PID_STALL = 0b00001110`

  No documentation found

- `const byte USB_EPT_BULK = 0x02`

      Bulk Transfer

- `const byte USB_HID_PROTOCOL_NONE = 0x00`

      HID Interface Class Protocol Codes

- `var volatile byte usb_bd0out_addrl at usb_bd0out[2]`

  No documentation found

- `var volatile word usb_sdp_length at usb_sdp_loc + 6`

  No documentation found

- `const byte USB_BDSTATUS_BC8 = 0`

      bit 8 of buffer count

- `var volatile word usb_bd3in_addr at usb_bd3in[2]`

  No documentation found

- `var volatile byte usb_bd0in_cnt at usb_bd0in[1]`

  No documentation found

- `const byte USB_PID_IN = 0b00001001`

  No documentation found

- `var volatile bit EP2OUTEN at UEP2:2`

  No documentation found

- `var volatile byte usb_bd3out[4] at ( USB_BASE_ADDRESS + 0x0018 )`

  No documentation found

- `var volatile bit EP3HSHK at UEP3:4`

  No documentation found

- `const byte USB_CM_CTRL_READ_AWAITING_STATUS = 5`

      Device is awaiting reception of status after sending data

- `const byte USB_DT_OTHER_SPEED_CONFIG = 0x07`

  No documentation found

- `var volatile byte usb_bd0in_stat at usb_bd0in[0]`

  No documentation found

- `const byte USB_PULLUP_ENABLE = 0x10`

  No documentation found

- `const byte USB_CM_CTRL_READ_DATA_STAGE_CLASS = 4`

      Device class is sending data during the data stage

- `const byte USB_PID_SETUP = 0b00001101`

  No documentation found

- `const byte USB_REQUEST_GET_CONFIGURATION = 0x08`

  No documentation found

- `const byte USB_REQUEST_REQ_SYNCH_FRAME = 0x0c`

  No documentation found

- `const byte USB_HSHK_EN = 0x10`

      Enable handshake packet

- `const byte USB_PID_ACK = 0b00000010`

      Handshake

- `var volatile byte usb_bd2in_addrh at usb_bd2in[3]`

  No documentation found

- `var volatile byte usb_bd0in_addrl at usb_bd0in[2]`

  No documentation found

- `var volatile byte usb_bd3in_cnt at usb_bd3in[1]`

  No documentation found

- `var volatile byte usb_bd3out_stat at usb_bd3out[0]`

  No documentation found

- `const byte USB_EP_OUT_IN = 0x0E`

      Cfg both OUT & IN pipes for this ep

- `var volatile byte usb_bd3out_cnt at usb_bd3out[1]`

  No documentation found

- `var volatile byte usb_bd0out_addrh at usb_bd0out[3]`

  No documentation found

- `var volatile byte usb_bd0in[4] at ( USB_BASE_ADDRESS + 0x0004 )`

  No documentation found

- `var volatile word usb_bd2in_addr at usb_bd2in[2]`

  No documentation found

- `const byte USB_HID_INTF = 0x03`

  No documentation found

- `const bit USB_SELF_POWERED = 1`

      Use can select self powered or bus powered.

- `const byte USB_DT_CONFIGURATION = 0x02`

  No documentation found

- `const byte USB_BD_ADDRL_IDX = 0x03`

  No documentation found

- `const byte USB_DT_DEVICE_QUALIFIER = 0x06`

  No documentation found

- `var volatile byte usb_bd3in[4] at ( USB_BASE_ADDRESS + 0x001C )`

  No documentation found

- `var volatile byte usb_bd1in_addrl at usb_bd1in[2]`

  No documentation found

- `const byte USB_BDSTATUS_DTS = 6`

      1 data 1 packet, 0 data 0 packet

- `const byte USB_DT_CS_INTERFACE = 0x24`

  No documentation found

- `var volatile byte usb_bd1in_cnt at usb_bd1in[1]`

  No documentation found

- `const byte USB_EPT_CTRL = 0x00`

      Endpoint Transfer Type

- `const byte USB_DT_INTERFACE = 0x04`

  No documentation found

- `const byte USB_PULLUP_DISABLED = 0x00`

  No documentation found

- `const byte USB_REQUEST_GET_INTERFACE = 0x0a`

  No documentation found

- `const byte USB_CM_CTRL_WRITE_DATA_STAGE = 1`

      Device receiving data during the data stage

- `const byte USB_STATE_CONFIGURED = 3`

      USB device is completely configured and ready to rock and roll

- `const byte USB_DT_INTERFACE_ASSOC = 0x0b`

  No documentation found

- `const byte USB_HID_PROTOCOL_MOUSE = 0x02`

  No documentation found

- `var byte usb_delivery_bytes_max_send`

  No documentation found

- `const byte USB_BD_ADDRH_IDX = 0x02`

  No documentation found

- `var volatile word usb_sdp_value at usb_sdp_loc + 2`

  No documentation found

- `const byte USB_PING_PONG__EP0_OUT_ONLY = 0x01`

      0b01

- `const byte USB_EPT_INT = 0x03`

      Interrupt Transfer

- `var volatile byte usb_bd3out_addrh at usb_bd3out[3]`

  No documentation found

- `const byte USB_PID_NAK = 0b00001010`

  No documentation found

- `const byte USB_REQUEST_SET_DESCRIPTOR = 0x07`

  No documentation found

- `var volatile byte usb_bd3out_addrl at usb_bd3out[2]`

  No documentation found

- `var volatile byte usb_bd2out_cnt at usb_bd2out[1]`

  No documentation found

- `var volatile word usb_bd1out_addr at usb_bd1out[2]`

  No documentation found

- `const byte USB_REQUEST_SET_FEATURE = 0x03`

  No documentation found

- `var volatile bit EP3CONDIS at UEP3:3`

  No documentation found

- `var volatile bit EP1STALL at UEP1:0`

      Endpoint control bit definitions.

- `var volatile bit EP3INEN at UEP3:1`

  No documentation found

- `const byte USB_PID_MDATA = 0b00001111`

  No documentation found

- `const byte USB_PID_OUT = 0b00000001`

       Packet ID's (PID) ----------
      Token

- `var byte usb_state = USB_STATE_POWERED`

      Internal states and modes. These are (re)set by a USB reset but also
      initialzed here at startup.

- `const byte USB_DELIVERY_BUFFER_MAX_SIZE = 80`

      Although defined with a size of 8 bytes in the initial driver version
      using only the POSTINC function, this usb_delivery_buffer must be much
      larger since it is also used to transmit the device descriptor which is 67
      bytes long. So it has been re-declared to 80 bytes in size.

- `const byte USB_BDSTATUS_BC9 = 1`

      bit 9 of buffer count

- `const byte USB_STATE_ADDRESS = 2`

      USB device now has an address

- `const byte USB_CM_IDLE = 0`

      USB COMMAND MODES

- `const USB_DEVICE_DESCRIPTOR_SIZE = 18`

      USB descriptor types.

- `var byte usb_delivery_buffer_size`

  No documentation found

- `const byte USB_DT_INTERFACE_POWER = 0x08`

  No documentation found

- `var volatile byte usb_bd2out[4] at ( USB_BASE_ADDRESS + 0x0010 )`

  No documentation found

- `const byte USB_EP_CTRL = 0x06`

      Cfg Control pipe for this ep

- `var volatile word usb_bd0out_addr at usb_bd0out[2]`

  No documentation found

- `var volatile bit EP3STALL at UEP3:0`

  No documentation found

- `var volatile byte usb_bd2out_stat at usb_bd2out[0]`

  No documentation found

- `const byte USB_EP_OUT = 0x0C`

      Cfg OUT only pipe for this ep

- `var byte usb_delivery_bytes_to_send`

  No documentation found

- `var byte usb_address = 0`

  No documentation found

- `var volatile byte usb_bd3in_addrh at usb_bd3in[3]`

  No documentation found

- `var volatile byte usb_bd1out_addrh at usb_bd1out[3]`

  No documentation found

- `var volatile word usb_sdp_index at usb_sdp_loc + 4`

  No documentation found

- `const byte USB_DT_DEVICE = 0x01`

  No documentation found

- `const byte USB_HIGHEST_EP = 3`

  No documentation found

- `const byte USB_EPT_ISO = 0x01`

      Isochronous Transfer

- `var volatile byte usb_bd2out_addrl at usb_bd2out[2]`

  No documentation found

- `const byte USB_CM_CTRL_WRITE_SENDING_STATUS = 6`

      Device is sending status after receiving data

- `var volatile bit EP2CONDIS at UEP2:3`

  No documentation found

- `const byte USB_V25TER = 0x01`

      Communication Interface Class Control Protocol Codes

- `var volatile byte usb_bd3in_addrl at usb_bd3in[2]`

  No documentation found

- `var volatile byte usb_bd0out_stat at usb_bd0out[0]`

  No documentation found

- `var volatile byte usb_bd1in_stat at usb_bd1in[0]`

  No documentation found

- `const byte USB_VENDOR_INTF = 0xFF`

      Vendor specific interface code

- `const byte USB_PING_PONG__ALL_BUT_EP0 = 0x03`

      0b11

- `const byte USB_PID_NYET = 0b00000110`

  No documentation found

- `const byte USB_REQUEST_CLEAR_FEATURE = 0x01`

  No documentation found

- `const byte USB_REQUEST_SET_INTERFACE = 0x0b`

  No documentation found

- `const USB_DATA_STAGE_DIR_BIT = 7`

      SETUP request type constant definitions.

- `var volatile byte usb_bd1out_stat at usb_bd1out[0]`

  No documentation found

- `const byte USB_INTERNAL_TRANSCEIVER = 0x00`

  No documentation found

- `const byte USB_STATE_POWERED = 0`

      USB STATE

- `var volatile bit EP2HSHK at UEP2:4`

  No documentation found

- `const byte USB_PID_SOF = 0b00000101`

  No documentation found

- `const USB_REQUEST_TYPE0_BIT = 5`

      01 = Request for a specific class

- `var volatile byte usb_bd0in_addrh at usb_bd0in[3]`

  No documentation found

- `const byte USB_CM_CTRL_READ_DATA_STAGE = 3`

      Device sending data during the data stage

- `var volatile word usb_bd3out_addr at usb_bd3out[2]`

  No documentation found

- `var byte usb_control_mode = USB_CM_IDLE`

  No documentation found

- `var byte usb_delivery_bytes_sent`

  No documentation found

- `var volatile byte usb_bd2out_addrh at usb_bd2out[3]`

  No documentation found

- `const byte USB_PING_PONG__FULL_PING_PONG = 0x02`

      0b10

- `const byte USB_LOW_SPEED = 0x00`

  No documentation found

- `var volatile bit EP2INEN at UEP2:1`

  No documentation found

- `const byte USB_PID_DATA2 = 0b00000111`

  No documentation found

- `const byte USB_BD_STAT_IDX = 0x00`

  No documentation found

- `var volatile bit EP3OUTEN at UEP3:2`

  No documentation found

- `const byte USB_REQUEST_GET_STATUS = 0x00`

      USB REQUESTS from the SETUP package.

- `const byte USB_HID_PROTOCOL_KEYBOARD = 0x01`

  No documentation found

- `var byte usb_status = USB_STATUS_IDLE`

  No documentation found

- `const byte USB_STATUS_SET_ADDRESS = 1`

  No documentation found

- `var volatile bit EP1CONDIS at UEP1:3`

  No documentation found

- `const byte USB_DT_STRING = 0x03`

  No documentation found

- `var volatile bit EP1INEN at UEP1:1`

  No documentation found

### Procedures

### Functions

## Related samples

Here are the list of samples which use this library:

16f1455 | 16f1455_usb_hid_mouse.jal
16f1455 | 16f1455_usb_hid_generic.jal
18f14k50 | 18f14k50_usb_bootloader.jal
18f14k50 | 18f14k50_usb_hid_mouse.jal
18f14k50 | 18f14k50_usb_hid_generic.jal
18f14k50 | 18f14k50_usb_bootloader_autostart.jal
18f2450 | 18f2450_usb_bootloader.jal
18f2450 | 18f2450_usb_bootloader_autostart.jal
18f2450 | 18f2450_usb_hid_generic.jal
18f2450 | 18f2450_usb_hid_mouse.jal
18f2550 | 18f2550_usb_bootloader_autostart.jal
18f2550 | 18f2550_usb_hid_mouse.jal
18f2550 | 18f2550_usb_hid_generic.jal
18f4550 | 18f4550_usb_bootloader_autostart.jal
18f4550 | 18f4550_usb_hid_mouse.jal
18f4550 | 18f4550_usb_hid_generic.jal
18f4550 | 18f4550_usb_bootloader.jal
18f67j50 | 18f67j50_usb_hid_mouse.jal
18f67j50 | 18f67j50_usb_bootloader_autostart.jal
18f67j50 | 18f67j50_usb_hid_generic.jal