conf_usb.h

Go to the documentation of this file.
00001 /*This file is prepared for Doxygen automatic documentation generation.*/
00013 
00014 /* Copyright (c) 2009 Atmel Corporation. All rights reserved.
00015  *
00016  * Redistribution and use in source and binary forms, with or without
00017  * modification, are permitted provided that the following conditions are met:
00018  *
00019  * 1. Redistributions of source code must retain the above copyright notice,
00020  * this list of conditions and the following disclaimer.
00021  *
00022  * 2. Redistributions in binary form must reproduce the above copyright notice,
00023  * this list of conditions and the following disclaimer in the documentation
00024  * and/or other materials provided with the distribution.
00025  *
00026  * 3. The name of Atmel may not be used to endorse or promote products derived
00027  * from this software without specific prior written permission.
00028  *
00029  * 4. This software may only be redistributed and used in connection with an Atmel
00030  * AVR product.
00031  *
00032  * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
00033  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
00034  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY AND
00035  * SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT,
00036  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00037  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00038  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00039  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00040  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
00041  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00042  */
00043 #ifndef _CONF_USB_H_
00044 #define _CONF_USB_H_
00045 
00046 
00047 #include "modules/usb/usb_commun.h"
00048 #include "modules/usb/usb_commun_ms.h"
00049 #include "modules/usb/usb_commun_hid.h"
00050 
00054 
00055 
00056    // _________________ USB MODE CONFIGURATION ____________________________
00057    //
00062 
00066       #define USB_HOST_FEATURE            ENABLED
00067 
00071       #define USB_DEVICE_FEATURE          ENABLED
00072 
00074 
00075    // _________________ USB REGULATOR CONFIGURATION _______________________
00076    //
00079 
00084 #ifndef USE_USB_PADS_REGULATOR
00085    #define USE_USB_PADS_REGULATOR   ENABLE      // Possible values ENABLE or DISABLE
00086 #endif
00088 
00089    // _________________ HOST MODE CONFIGURATION ____________________________
00090    //
00094 
00095 #define PIPE_MOUSE_IN  pipe_mouse_in
00096 extern U8  pipe_mouse_in;
00097 
00098 extern U8 dfu_connected;
00099 #define Is_dfu_connected()          (  dfu_connected ? TRUE : FALSE )
00100 
00109    #define VID_PID_TABLE            {VID_ATMEL, 2, PID_MegaHIDMouse, 0x2014 \
00110                                     ,0x0123, 3, 0x2000, 0x2100, 0x1258}
00111 
00122    #define CLASS_SUBCLASS_PROTOCOL     {\
00123                                        0x00, 0x00, 0x00,\
00124                                        HUB_CLASS, 0x00, 0x00,\
00125                                        MS_CLASS, MS_SUB_CLASS2, MS_PROTOCOL,\
00126                                        MS_CLASS, MS_SUB_CLASS5, MS_PROTOCOL,\
00127                                        MS_CLASS, MS_SUB_CLASS6, MS_PROTOCOL,\
00128                                        HID_CLASS, NO_SUBCLASS, HID_PROTOCOL_MOUSE,\
00129                                        HID_CLASS, HID_SUB_CLASS_BOOT, HID_PROTOCOL_MOUSE,\
00130                                        HID_CLASS, NO_SUBCLASS, NO_PROTOCOL,\
00131                                        }
00132 
00134    #define SIZEOF_DATA_STAGE        250
00135 
00137    #define DEVICE_BASE_ADDRESS      0x05
00138 
00140    #define MAX_EP_PER_INTERFACE     3
00141 
00143    #define MAX_INTERFACE_FOR_DEVICE 3
00144 
00146    #define MAX_DEVICE_IN_USB_TREE   4
00147 
00148 #define SAVE_INTERRUPT_PIPE_FOR_DMS_INTERFACE   ENABLE
00149 
00151 #if (MAX_DEVICE_IN_USB_TREE>1)
00152    #define USB_HUB_SUPPORT          ENABLE
00153    #define USB_MAX_HUB_NUMBER       4
00154    #define HUB_MAX_NB_PORT          4
00155 #else
00156    #define USB_HUB_SUPPORT          DISABLE
00157 #endif
00158 
00162    #define HOST_STRICT_VID_PID_TABLE      DISABLE
00163 
00165    #define HOST_AUTO_CFG_ENDPOINT         ENABLE
00166 
00168    #define HOST_CONTINUOUS_SOF_INTERRUPT  ENABLE
00169 
00171    #define HOST_ERROR_RESTART             ENABLE
00172 
00174    #define USB_HOST_PIPE_INTERRUPT_TRANSFER  ENABLE
00175 
00177    #define ID_PIN_CHANGE_GENERATE_RESET   DISABLE
00178 
00180    #define TIMEOUT_DELAY_ENABLE           ENABLE
00181 
00183    #define TIMEOUT_DELAY               10
00184 
00186    #define NAK_TIMEOUT_ENABLE          DISABLE
00187 
00189    #define NAK_SEND_TIMEOUT            0x0FFF
00190 
00192    #define NAK_RECEIVE_TIMEOUT         0x0FFF
00193 
00195    #define SOFTWARE_VBUS_CTRL          ENABLE
00196 
00197    #if (HOST_AUTO_CFG_ENDPOINT==FALSE)
00199       #define        User_configure_endpoint()
00200    #endif
00201 
00205    // write here the action to associate to each USB host event
00206    // be carefull not to waste time in order not disturbing the functions
00207    #define Usb_id_transition_action()
00208    #define Host_device_disconnection_action()
00209    #define Host_device_connection_action()
00210    #define Host_sof_action()                          host_sof_action()
00211    #define Host_suspend_action()
00212    #define Host_hwup_action()
00213    #define Host_device_not_supported_action()
00214    #define Host_device_class_not_supported_action()
00215    #define Host_device_supported_action()
00216    #define Host_device_error_action()
00218 
00219 extern void host_sof_action(void);
00221 
00222 
00223 // _________________ DEVICE MODE CONFIGURATION __________________________
00224 
00228 
00229 #define USB_DEVICE_SN_USE          ENABLE             // Must be enable to see all disks under Windows in USB device MS mode
00230 #define USE_DEVICE_SN_UNIQUE       DISABLE            // ignore if USB_DEVICE_SN_USE = DISABLE
00231 
00232 #define EP_MOUSE_IN           1  
00233 #define EP_MS_IN              2
00234 #define EP_MS_OUT             3
00235 #define EP_HID_IN             4
00236 #define EP_HID_OUT            5
00237 
00238 #define Usb_unicode(a)         ((U16)(a))
00239 
00240 #define USB_REMOTE_WAKEUP_FEATURE   DISABLE
00241 
00245    // write here the action to associate to each USB event
00246    // be carefull not to waste time in order not disturbing the functions
00247 #define Usb_sof_action()         sof_action();
00248 #define Usb_wake_up_action()
00249 #define Usb_resume_action()
00250 #define Usb_suspend_action()
00251 #define Usb_reset_action()
00252 #define Usb_vbus_on_action()
00253 #define Usb_vbus_off_action()
00254 #define Usb_set_configuration_action()
00256 
00257 extern void sof_action(void);
00259 
00263    // write here the action to associate to each SCSI commands
00264    // be carefull not to waste time in order not disturbing the functions
00265 #define Scsi_start_read_action()    Led2_on()
00266 #define Scsi_stop_read_action()     Led2_off()
00267 #define Scsi_start_write_action()   Led3_on()
00268 #define Scsi_stop_write_action()    Led3_off()
00270 
00272 
00273 #endif // _CONF_USB_H_

Generated on Wed Sep 23 09:49:34 2009 for ATMEL by  doxygen 1.5.3