⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_descriptors.h

📁 Contiki是一个开源
💻 H
📖 第 1 页 / 共 2 页
字号:
/* This file has been prepared for Doxygen automatic documentation generation.*//*! \file  usb_descriptors.h *************************************************** * * \brief *      This file contains the usb parameters that uniquely identify the *      application through descriptor tables. * * \addtogroup usbstick * * \author *      Atmel Corporation: http://www.atmel.com * \author *      Colin O'Flynn <coflynn@newae.com> * ******************************************************************************//* Copyright (c) 2008  ATMEL Corporation   Copyright (c) 2008 Colin O'Flynn   All rights reserved.   Redistribution and use in source and binary forms, with or without   modification, are permitted provided that the following conditions are met:   * Redistributions of source code must retain the above copyright     notice, this list of conditions and the following disclaimer.   * Redistributions in binary form must reproduce the above copyright     notice, this list of conditions and the following disclaimer in     the documentation and/or other materials provided with the     distribution.   * Neither the name of the copyright holders nor the names of     contributors may be used to endorse or promote products derived     from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  POSSIBILITY OF SUCH DAMAGE.*//**  \addtogroup usbconf  @{  */#ifndef _USB_USERCONFIG_H_#define _USB_USERCONFIG_H_//_____ I N C L U D E S ____________________________________________________#include "config.h"#include "usb_standard_request.h"#include "conf_usb.h"#include <avr/pgmspace.h>//_____ M A C R O S ________________________________________________________//_____ U S B    D E F I N E _______________________________________________                  // USB Device descriptor#define USB_SPECIFICATION     0x0200#define COMPOSITE_DEVICE_CLASS       0xEF      // Misc#define COMPOSITE_DEVICE_SUB_CLASS   0x02      // Common#define COMPOSITE_DEVICE_PROTOCOL    0x01      // IAD#define NETWORK_DEVICE_CLASS          0x02      // CDC ACM#define NETWORK_DEVICE_SUB_CLASS      0x02      // #define NETWORK_DEVICE_PROTOCOL       0xFF      // Vendor-specific#define MASS_DEVICE_CLASS            0x00      //#define MASS_DEVICE_SUB_CLASS        0x00      //#define MASS_DEVICE_PROTOCOL         0x00      //#define EP_CONTROL_LENGTH     64#define VENDOR_ID             0x03EB // Atmel vendor ID = 03EBh#define COMPOSITE_PRODUCT_ID  0x2021 //Product ID for composite device#define NETWORK_PRODUCT_ID    0x2019 //Product ID for just RNDIS device#define MASS_PRODUCT_ID       0x202F //Product ID for mass storage#define RELEASE_NUMBER        0x1000#define MAN_INDEX             0x01#define PROD_INDEX            0x02#define SN_INDEX              0x03#define NB_CONFIGURATION      1#define NETWORK_NB_INTERFACE         2#define COMPOSITE_NB_INTERFACE       4#define MASS_NB_INTERFACE            1#define CONF_NB            1#define CONF_INDEX         0#define CONF_ATTRIBUTES    USB_CONFIG_BUSPOWERED#define MAX_POWER          50          // 100 mA/*** CDC RNDIS CONFIGURATION CONFIGURATION ***/// Interface 0 descriptor#define INTERFACE0_NB        0#define ALTERNATE0           0#define NB_ENDPOINT0         1#define INTERFACE0_CLASS     0x02    // CDC ACM Com#define INTERFACE0_SUB_CLASS 0x02#define INTERFACE0_PROTOCOL  0xFF	 // Vendor specific#define INTERFACE0_INDEX     0// Interface 1 descriptor#define INTERFACE1_NB        1#define ALTERNATE1           0#define NB_ENDPOINT1         2#define INTERFACE1_CLASS     0x0A    // CDC ACM Data#define INTERFACE1_SUB_CLASS 0#define INTERFACE1_PROTOCOL  0#define INTERFACE1_INDEX     0             // USB Endpoint 1 descriptor				 // Interrupt IN#define ENDPOINT_NB_1       0x80 | INT_EP#define EP_ATTRIBUTES_1     0x03          // BULK = 0x02, INTERUPT = 0x03#define EP_SIZE_1           0x08#define EP_INTERVAL_1       0x01 //ms interrupt pooling from host             // USB Endpoint 1 descriptor				 // Bulk IN#define ENDPOINT_NB_2       0x80 | TX_EP#define EP_ATTRIBUTES_2     0x02          // BULK = 0x02, INTERUPT = 0x03#define EP_SIZE_2           0x40  //64 byte max size#define EP_INTERVAL_2       0x00             // USB Endpoint 2 descriptor				 //Bulk OUT  RX endpoint#define ENDPOINT_NB_3       RX_EP#define EP_ATTRIBUTES_3     0x02          // BULK = 0x02, INTERUPT = 0x03#define EP_SIZE_3           0x40  //64 byte max size#define EP_INTERVAL_3       0x00/*** CDC Virtual Serial Port ***/             // Interface 2 descriptor#define INTERFACE2_NB        2#define ALTERNATE2           0#define NB_ENDPOINT2         1#define INTERFACE2_CLASS     0x02    // CDC ACM Com#define INTERFACE2_SUB_CLASS 0x02#define INTERFACE2_PROTOCOL  0x01#define INTERFACE2_INDEX     0             // Interface 3 descriptor#define INTERFACE3_NB        3#define ALTERNATE3           0#define NB_ENDPOINT3         2#define INTERFACE3_CLASS     0x0A    // CDC ACM Data#define INTERFACE3_SUB_CLASS 0#define INTERFACE3_PROTOCOL  0#define INTERFACE3_INDEX     0             // USB Endpoint 4 descriptor				 // Interrupt IN#define TX_EP_SIZE          0x20#define ENDPOINT_NB_4       0x80 | VCP_INT_EP#define EP_ATTRIBUTES_4     0x03          // BULK = 0x02, INTERUPT = 0x03#define EP_SIZE_4           TX_EP_SIZE#define EP_INTERVAL_4       0xFF //ms interrupt pooling from host             // USB Endpoint 5 descriptor				 // Bulk IN#define ENDPOINT_NB_5       0x80 | VCP_TX_EP#define EP_ATTRIBUTES_5     0x02          // BULK = 0x02, INTERUPT = 0x03#define EP_SIZE_5           0x20#define EP_INTERVAL_5       0x00             // USB Endpoint 6 descriptor				 // Bulk OUT#define ENDPOINT_NB_6       VCP_RX_EP#define EP_ATTRIBUTES_6     0x02          // BULK = 0x02, INTERUPT = 0x03#define EP_SIZE_6           0x20#define EP_INTERVAL_6       0x00/*** Mass Storage ***/#define MS_INTERFACE_NB        0#define MS_ALTERNATE           0#define MS_NB_ENDPOINT         2#define MS_INTERFACE_CLASS     0x08   		// Mass Storage Class#define MS_INTERFACE_SUB_CLASS 0x06			// SCSI transparent Command Set#define MS_INTERFACE_PROTOCOL  0x50			// Bulk-Only Transport#define MS_INTERFACE_INDEX     0// USB Endpoint 1 descriptor FS#define MS_ENDPOINT_NB_1       (MS_IN_EP | 0x80)#define MS_EP_ATTRIBUTES_1     0x02          // BULK = 0x02, INTERUPT = 0x03#define MS_EP_IN_LENGTH        64#define MS_EP_SIZE_1           MS_EP_IN_LENGTH#define MS_EP_INTERVAL_1       0x00 			// USB Endpoint 2 descriptor FS#define MS_ENDPOINT_NB_2       MS_OUT_EP#define MS_EP_ATTRIBUTES_2     0x02          // BULK = 0x02, INTERUPT = 0x03#define MS_EP_IN_LENGTH        64#define MS_EP_SIZE_2           MS_EP_IN_LENGTH#define MS_EP_INTERVAL_2       0x00 			#define DEVICE_STATUS         0x00 // TBD#define INTERFACE_STATUS      0x00 // TBD#define LANG_ID               0x00#define USB_MN_LENGTH         5#define USB_MANUFACTURER_NAME \{ Usb_unicode('A') \, Usb_unicode('t') \, Usb_unicode('m') \, Usb_unicode('e') \, Usb_unicode('l') \}#define USB_PN_LENGTH         16

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -