ATMEL: conf_usb.h Source File

- Main Page
- Modules
- Data Structures
- Files
- Related Pages

# 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_hid.h"
    00049 #include "modules/usb/usb_commun_ms.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 #define PIPE_HID_IN    pipe_hid_in
    00097 #define PIPE_HID_OUT   pipe_hid_out
    00098
    00099 extern U8  pipe_mouse_in;
    00100
    00101 extern U8 dfu_connected;
    00102 #define Is_dfu_connected()          (  dfu_connected ? TRUE : FALSE )
    00103 extern U8 hid_connected;
    00104 #define Is_hid_connected()          (  (hid_connected && Is_host_not_suspended()) ? TRUE : FALSE )
    00105
    00106
    00115    #define VID_PID_TABLE            {VID_ATMEL, 2, PID_MegaHIDMouse, 0x2014 \
    00116                                     ,0x0123, 3, 0x2000, 0x2100, 0x1258}
    00117
    00128    #define CLASS_SUBCLASS_PROTOCOL     {\
    00129                                        0x00, 0x00, 0x00,\
    00130                                        HUB_CLASS, 0x00, 0x00,\
    00131                                        MS_CLASS, MS_SUB_CLASS2, MS_PROTOCOL,\
    00132                                        MS_CLASS, MS_SUB_CLASS5, MS_PROTOCOL,\
    00133                                        MS_CLASS, MS_SUB_CLASS6, MS_PROTOCOL,\
    00134                                        HID_CLASS, NO_SUBCLASS, HID_PROTOCOL_MOUSE,\
    00135                                        HID_CLASS, HID_SUB_CLASS_BOOT, HID_PROTOCOL_MOUSE,\
    00136                                        HID_CLASS, NO_SUBCLASS, NO_PROTOCOL,\
    00137                                        }
    00138
    00140    #define SIZEOF_DATA_STAGE        250
    00141
    00143    #define DEVICE_BASE_ADDRESS      0x05
    00144
    00146    #define MAX_EP_PER_INTERFACE     3
    00147
    00149    #define MAX_INTERFACE_FOR_DEVICE 3
    00150
    00152    #define MAX_DEVICE_IN_USB_TREE   4
    00153
    00154 #define SAVE_INTERRUPT_PIPE_FOR_DMS_INTERFACE   ENABLE
    00155
    00157 #if (MAX_DEVICE_IN_USB_TREE>1)
    00158    #define USB_HUB_SUPPORT          ENABLE
    00159    #define USB_MAX_HUB_NUMBER       4
    00160    #define HUB_MAX_NB_PORT          4
    00161 #else
    00162    #define USB_HUB_SUPPORT          DISABLE
    00163 #endif
    00164
    00168    #define HOST_STRICT_VID_PID_TABLE      DISABLE
    00169
    00171    #define HOST_AUTO_CFG_ENDPOINT         ENABLE
    00172
    00174    #define HOST_CONTINUOUS_SOF_INTERRUPT  DISABLE
    00175
    00177    #define HOST_ERROR_RESTART             ENABLE
    00178
    00180    #define USB_HOST_PIPE_INTERRUPT_TRANSFER  ENABLE
    00181
    00183    #define ID_PIN_CHANGE_GENERATE_RESET   DISABLE
    00184
    00186    #define TIMEOUT_DELAY_ENABLE           ENABLE
    00187
    00189    #define TIMEOUT_DELAY               10
    00190
    00192    #define NAK_TIMEOUT_ENABLE          DISABLE
    00193
    00195    #define NAK_SEND_TIMEOUT            0x0FFF
    00196
    00198    #define NAK_RECEIVE_TIMEOUT         0x0FFF
    00199
    00201    #define SOFTWARE_VBUS_CTRL          ENABLE
    00202
    00203    #if (HOST_AUTO_CFG_ENDPOINT==FALSE)
    00205       #define        User_configure_endpoint()
    00206    #endif
    00207
    00211    // write here the action to associate to each USB host event
    00212    // be carefull not to waste time in order not disturbing the functions
    00213    #define Usb_id_transition_action()
    00214    #define Host_device_disconnection_action()
    00215    #define Host_device_connection_action()
    00216    #define Host_sof_action()                          host_sof_action()
    00217    #define Host_suspend_action()
    00218    #define Host_hwup_action()
    00219    #define Host_device_not_supported_action()
    00220    #define Host_device_class_not_supported_action()
    00221    #define Host_device_supported_action()
    00222    #define Host_device_error_action()
    00224
    00225 extern void set_power_down_mode(void);
    00226 extern void host_sof_action(void);
    00228
    00229
    00230 // _________________ DEVICE MODE CONFIGURATION __________________________
    00231
    00235
    00236 #define USB_DEVICE_SN_USE          ENABLE             // Must be enable to see all disks under Windows in USB device MS mode
    00237 #define USE_DEVICE_SN_UNIQUE       DISABLE            // ignore if USB_DEVICE_SN_USE = DISABLE
    00238
    00239 #define EP_MOUSE_IN           1
    00240 #define EP_MS_IN              2
    00241 #define EP_MS_OUT             3
    00242 #define EP_HID_IN             4
    00243 #define EP_HID_OUT            5
    00244
    00245 #define Usb_unicode(a)         ((U16)(a))
    00246
    00247 #define USB_REMOTE_WAKEUP_FEATURE   DISABLE
    00248
    00252    // write here the action to associate to each USB event
    00253    // be carefull not to waste time in order not disturbing the functions
    00254 #define Usb_sof_action()         sof_action();
    00255 #define Usb_wake_up_action()
    00256 #define Usb_resume_action()
    00257 #define Usb_suspend_action()
    00258 #define Usb_reset_action()
    00259 #define Usb_vbus_on_action()
    00260 #define Usb_vbus_off_action()
    00261 #define Usb_set_configuration_action()
    00263
    00264 extern void sof_action(void);
    00266
    00270    // write here the action to associate to each SCSI commands
    00271    // be carefull not to waste time in order not disturbing the functions
    00272 #define Scsi_start_read_action()    Led2_on()
    00273 #define Scsi_stop_read_action()     Led2_off()
    00274 #define Scsi_start_write_action()   Led3_on()
    00275 #define Scsi_stop_write_action()    Led3_off()
    00277
    00279
    00280 #endif // _CONF_USB_H_